Xamarin.iOS
Microsoft인지 서비스와 연결
수색…
비고
이 예제에서는 Microsoft.ProjectOxford.Vision NuGet 패키지를 사용했습니다. https://www.nuget.org/packages/Microsoft.ProjectOxford.Vision/
Microsoft인지 서비스에 대한 자세한 내용은 공식 설명서 ( https://www.microsoft.com/cognitive-services/en-us/computer-vision-api) 를 참조하십시오.
내 GitHub에서 업로드 된 샘플을 찾으십시오 : https://github.com/Daniel-Krzyczkowski/XamarinIOS/tree/master/XamariniOS_CognitiveServices
또한 Xamarin Forms 애플리케이션에서인지 서비스를 사용하는 방법을 제시 한 블로그 링크를 첨부합니다. http://mobileprogrammer.pl
Microsoft인지 서비스와 연결
이 예에서는 Microsoft인지 서비스를 Xamarin iOS 모바일 응용 프로그램과 함께 사용하는 방법을 학습합니다. 우리는 컴퓨터 비전 API를 사용하여 사진에있는 것을 감지합니다.
Xamarin.iOS 프로젝트를 생성하고 나면 NuGet 패키지를 프로젝트에 추가하십시오.
https://www.nuget.org/packages/Microsoft.ProjectOxford.Vision/
이 라이브러리를 통해 우리는 iOS 앱에서인지 서비스를 이용할 수있게 될 것입니다. 나는 당신이 이미 그것을 사용하기 위해 등록한 Microsoft 계정을 가지고 있고 아래 화면에서 Computer Vision API를 활성화했다고 가정합니다 :
하단의 "Subscribe"를 클릭하면 Api Key가 생성됩니다 :
이제 iOS 앱에서인지 서비스에 대한 액세스를 구성 할 수 있습니다. 먼저 분석을위한 그림을 얻을 필요가 있습니다. 이를 위해 아래에있는 Xamarin Media Component를 사용할 수 있습니다. https://components.xamarin.com/view/mediaplugin
성공적으로 설치되면 이미지와 버튼으로 간단한 UI를 만들어 갤러리에서 사진을 선택하십시오. 컨트롤의 크기는 당신에게 달려 있습니다.
Main.storyboard를 열고 UIImageView와 UIButton 컨트롤을 추가하면 기본 ViewController가됩니다. 이름을 추가하십시오 : "SelectedPictureImageView"및 "SelectButton":
이제 이미지 선택을 처리하는 "Touch Up Inside"이벤트 처리기를 추가해야합니다.
partial void SelectButtonClick(UIButton sender)
{
selectImage();
}
async void selectImage()
{
var selectedImage = await CrossMedia.Current.PickPhotoAsync();
SelectedPictureImageView.Image = new UIImage(NSData.FromStream(selectedImage.GetStream()));
}
이제 Cognitive Services가 정보를 반환하면 분석 정보를 표시하려고합니다. "AnalysisLabel"단추 아래에 레이블을 추가하십시오.
컴퓨터 비전 API를 연결할 때입니다!
선택한 그림에 대한 정보를 얻으려면 아래의 방법을 추가하십시오. API 키를 붙여 넣는 것을 잊지 마십시오!
async Task analyseImage(Stream imageStream)
{
try
{
VisionServiceClient visionClient = new VisionServiceClient("<<YOUR API KEY HERE>>");
VisualFeature[] features = { VisualFeature.Tags, VisualFeature.Categories, VisualFeature.Description };
var analysisResult = await visionClient.AnalyzeImageAsync(imageStream, features.ToList(), null);
AnalysisLabel.Text = string.Empty;
analysisResult.Description.Tags.ToList().ForEach(tag => AnalysisLabel.Text = AnalysisLabel.Text + tag + "\n");
}
catch (Microsoft.ProjectOxford.Vision.ClientException ex)
{
AnalysisLabel.Text = ex.Error.Message;
}
}
이제 "selectImage"메서드에서 호출 할 수 있습니다.
async void selectImage()
{
var selectedImage = await CrossMedia.Current.PickPhotoAsync();
SelectedPictureImageView.Image = new UIImage(NSData.FromStream(selectedImage.GetStream()));
await analyseImage(selectedImage.GetStream());
}
이미지를 선택하면 Microsoft인지 서비스에서이를 분석하고 결과를 반환합니다.
이미지가 너무 클 수 없음을 기억하십시오.이 경우 아래와 같은 정보를 받게됩니다.
당신이 사용할 수있는 많은 다른 서비스가 있습니다. 자세한 내용은 공식 문서 (첨부 된 링크)를 참조하십시오.