private async Task <AnalysisInDomainResult> UploadAndAnalyzeImage(MediaFile file, Model domainModel) { AnalysisInDomainResult analysisResult = await visionServiceClient.AnalyzeImageInDomainAsync(file.GetStream(), domainModel); return(analysisResult); }
/// <summary> /// Sends a url to Project Oxford and performs analysis against a given domain /// </summary> /// <param name="imageUrl">The url of the image to analyze</param> /// <param name="domainModel">The domain model to analyze against</param> /// <returns></returns> private async Task <AnalysisInDomainResult> AnalyzeInDomainUrl(string imageUrl, Model domainModel) { // ----------------------------------------------------------------------- // KEY SAMPLE CODE STARTS HERE // ----------------------------------------------------------------------- // // Create Project Oxford Vision API Service client // VisionServiceClient VisionServiceClient = new VisionServiceClient(SubscriptionKey, SubscriptionEndpoint); Log("VisionServiceClient is created"); // // Analyze the url against the given domain // Log("Calling VisionServiceClient.AnalyzeImageInDomainAsync()..."); AnalysisInDomainResult analysisResult = await VisionServiceClient.AnalyzeImageInDomainAsync(imageUrl, domainModel); return(analysisResult); // ----------------------------------------------------------------------- // KEY SAMPLE CODE ENDS HERE // ----------------------------------------------------------------------- }
/// <summary> /// Uploads the image to Project Oxford and performs analysis against a given domain /// </summary> /// <param name="imageFilePath">The image file path.</param> /// <param name="domainModel">The domain model to analyze against</param> /// <returns></returns> private async Task <AnalysisInDomainResult> UploadAndAnalyzeInDomainImage(string imageFilePath, Model domainModel) { // ----------------------------------------------------------------------- // KEY SAMPLE CODE STARTS HERE // ----------------------------------------------------------------------- // // Create Project Oxford Vision API Service client // VisionServiceClient VisionServiceClient = new VisionServiceClient(SubscriptionKey, SubscriptionEndpoint); Log("VisionServiceClient is created"); using (Stream imageFileStream = File.OpenRead(imageFilePath)) { // // Analyze the image for the given domain // Log("Calling VisionServiceClient.AnalyzeImageInDomainAsync()..."); AnalysisInDomainResult analysisResult = await VisionServiceClient.AnalyzeImageInDomainAsync(imageFileStream, domainModel); return(analysisResult); } // ----------------------------------------------------------------------- // KEY SAMPLE CODE ENDS HERE // ----------------------------------------------------------------------- }
private async void UploadPictureButton_Clicked(object sender, EventArgs e) { if (!CrossMedia.Current.IsPickPhotoSupported) { await DisplayAlert("No upload", "Picking a photo is not supported.", "OK"); return; } var file = await CrossMedia.Current.PickPhotoAsync(); if (file == null) { return; } this.Indicator1.IsVisible = true; this.Indicator1.IsRunning = true; Image1.Source = ImageSource.FromStream(() => file.GetStream()); AnalysisInDomainResult analysisResult = await AnalyzePictureAsync(file.GetStream()); this.CelebrityName.Text = ParseCelebrityName(analysisResult.Result); this.Indicator1.IsRunning = false; this.Indicator1.IsVisible = false; }
private async Task AnalyzeAndProcessPhoto(MediaFile file) { Indicator1.IsVisible = true; Indicator1.IsRunning = true; Image1.Source = ImageSource.FromStream(() => file.GetStream()); var analysisResult = await AnalyzePictureAsync(file.GetStream()); BindingContext = analysisResult; tags.IsVisible = true; //Text analysis if (analysisResult.Tags.Any(t => t.Name.ToLower() == "text")) { OcrResults ocrResult = await AnalyzePictureTextAsync(file.GetStream()); pnlOcr.IsVisible = true; lblAngel.Text = $"Text Angel: {ocrResult.TextAngle.ToString()}"; lblLanguage.Text = $"Language: {ocrResult.Language}"; PopulateUIWithRegions(ocrResult); } else { pnlOcr.IsVisible = false; } //Detect Celebrity AnalysisInDomainResult analysisDomain = await AnalyzePictureDomainAsync(file.GetStream()); CelebrityName.Text = ParseCelebrityName(analysisDomain.Result); Indicator1.IsRunning = false; Indicator1.IsVisible = false; }
public async void Take() { await CrossMedia.Current.Initialize(); if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported) { await App.Current.MainPage.DisplayAlert("No Camera", "No camera available.", "OK"); return; } var file = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions { SaveToAlbum = true, Name = "test.jpg" }); if (file == null) { return; } IsBusy = true; SourceImage = ImageSource.FromStream(() => file.GetStream()); AnalysisInDomainResult analysisResult = await AnalyzePictureAsync(file.GetStream()); Text = ParseCelebrityName(analysisResult.Result); IsBusy = false; }
public async Task <AnalysisInDomainResult> MakeAnalysisRequest(Stream stream, Model model) { // OcrResults text; VisionServiceClient client = new VisionServiceClient(SubscriptionKey, apiRoot); AnalysisInDomainResult analysisResult = await client.AnalyzeImageInDomainAsync(stream, model); return(analysisResult); }
/// <summary> /// Log the result of an analysis in domain result /// </summary> /// <param name="result"></param> protected void LogAnalysisInDomainResult(AnalysisInDomainResult result) { if (result.Metadata != null) { Log("Image Format : " + result.Metadata.Format); Log("Image Dimensions : " + result.Metadata.Width + " x " + result.Metadata.Height); } if (result.Result != null) { Log("Result : " + result.Result.ToString()); } }
private async Task <AnalysisInDomainResult> AnalyzePictureAsync(Stream inputFile) { if (!CrossConnectivity.Current.IsConnected) { await DisplayAlert("Network error", "Please check your network connection and retry.", "OK"); return(null); } AnalysisInDomainResult analysisResult = await App.visionClient.AnalyzeImageInDomainAsync(inputFile, await GetDomainModel()); return(analysisResult); }
/// <summary> /// Async function to execute FindCelebrity command. Will output celebrities found in image to the UI /// </summary> /// <param name="obj"></param> private async void LoadAndFindCelebrity(object obj) { Uri fileUri = new Uri(ImageUrl); BitmapImage image = new BitmapImage(fileUri); image.CacheOption = BitmapCacheOption.None; image.UriSource = fileUri; ImageSource = image; try { AnalysisInDomainResult celebrityResult = await _visionClient.AnalyzeImageInDomainAsync(ImageUrl, "celebrities"); if (celebrityResult != null) { Celebrity = celebrityResult.Result.ToString(); } } catch (Exception ex) { Debug.WriteLine($"Failed to analyze image: {ex.Message}"); } }
private async void Upload() { if (!CrossMedia.Current.IsPickPhotoSupported) { await App.Current.MainPage.DisplayAlert("No upload", "Picking a photo is not supported.", "OK"); return; } var file = await CrossMedia.Current.PickPhotoAsync(); if (file == null) { return; } IsBusy = true; SourceImage = ImageSource.FromStream(() => file.GetStream()); try { AnalysisInDomainResult analysisResult = await AnalyzePictureAsync(file.GetStream()); Text = (ParseCelebrityName(analysisResult.Result)) == "" ? "not matching" : ParseCelebrityName(analysisResult.Result); } catch (Exception ex) { await App.Current.MainPage.DisplayAlert("Error", ex.Message, "OK"); return; } finally { IsBusy = false; } }