public async Task <RecognizeResponse> ExecuteAsync(CancellationToken token) { var image = await GetFileAsync(token); image = PreProcessor.Process(image); var ocrResult = await OcrClient.RecognizeAsync(image, token).ConfigureAwait(false); switch (ocrResult.Status) { case OcrStatus.Success: var text = PostProcessor.Process(ocrResult.Text); return(new RecognizeResponse(text)); case OcrStatus.Error: throw new Exception(ocrResult.Error); default: throw new ArgumentOutOfRangeException(); } }
public void RecognizesWithLanguage(OcrLanguages language) { // Arrange OcrClient client = new OcrClient(API_KEY, REGION); OcrResponse response; // Act response = Task.Run(() => client.RecognizeAsync(new Uri(@"https://oxfordportal.blob.core.windows.net/vision/doc-vision-overview-ocr01.png"), language: language)).Result; // Assert Assert.NotNull(response); Assert.Null(response.ErrorCode); Assert.Equal(response.Language, "en"); Assert.NotNull(response.Regions); Assert.NotEmpty(response.Regions); Assert.NotEqual(response.Regions.First().BoundingBox.Left, default(int)); Assert.NotEqual(response.Regions.First().BoundingBox.Top, default(int)); Assert.NotEqual(response.Regions.First().BoundingBox.Width, default(int)); Assert.NotEqual(response.Regions.First().BoundingBox.Height, default(int)); Assert.NotNull(response.Regions.First().Lines); Assert.NotEmpty(response.Regions.First().Lines); Assert.NotNull(response.Regions.First().Lines.First().Words); }
public void RecognizesWithByteArray(string imageFileName) { // Arrange byte[] contentBytes = File.ReadAllBytes(@"..\..\..\OcrTests\" + imageFileName); OcrClient client = new OcrClient(API_KEY, REGION); OcrResponse response; // Act response = Task.Run(() => client.RecognizeAsync(contentBytes)).Result; // Assert Assert.NotNull(response); Assert.Null(response.ErrorCode); Assert.NotNull(response.Regions); Assert.NotEmpty(response.Regions); Assert.NotEqual(response.Regions.First().BoundingBox.Left, default(int)); Assert.NotEqual(response.Regions.First().BoundingBox.Top, default(int)); Assert.NotEqual(response.Regions.First().BoundingBox.Width, default(int)); Assert.NotEqual(response.Regions.First().BoundingBox.Height, default(int)); Assert.NotNull(response.Regions.First().Lines); Assert.NotEmpty(response.Regions.First().Lines); Assert.NotNull(response.Regions.First().Lines.First().Words); }