Поиск…


замечания

В этом примере мы использовали пакет Microsoft.ProjectOxford.Vision NuGet: https://www.nuget.org/packages/Microsoft.ProjectOxford.Vision/

Чтобы узнать больше о Microsoft Cognitive Services, обратитесь к официальной документации: 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 Cognitive Services

В этом примере вы узнаете, как использовать Microsoft Cognitive Services с мобильным приложением Xamarin iOS. Мы будем использовать API компьютерного зрения, чтобы определить, что находится на картинке.

После создания проекта Xamarin.iOS добавьте ниже пакет NuGet к проекту:

https://www.nuget.org/packages/Microsoft.ProjectOxford.Vision/

С помощью этой библиотеки мы сможем использовать Cognitive Services в нашем приложении iOS. Я предполагаю, что у вас уже зарегистрирована учетная запись Microsoft, и вы включили Computer Vision Api, как на экране ниже: введите описание изображения здесь

Как только вы нажмете «Подписаться» внизу, появится Api Key:

введите описание изображения здесь

Теперь мы можем начать настраивать доступ к Cognitive Services из приложения iOS. Во-первых, нам нужно получить некоторую картину для анализа. Для этого мы можем использовать компонент Xamarin Media ниже: https://components.xamarin.com/view/mediaplugin

Как только он будет успешно установлен, создадим простой пользовательский интерфейс с изображением и кнопкой, чтобы выбрать изображение из галереи. Размер элементов управления зависит от вас.

Откройте 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 вернет информацию. Добавьте метку под кнопкой «АнализLabel»: введите описание изображения здесь

Пришло время подключить Computer Vision 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 Cognitive Services проанализирует его и вернет результат:

введите описание изображения здесь

Помните, что изображение не может быть слишком большим - в этом случае вы получите информацию, как показано ниже:

введите описание изображения здесь

Есть много других услуг, которые вы можете попробовать использовать. Пожалуйста, обратитесь к официальной документации (ссылка прилагается), чтобы узнать больше.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow