У меня проблема с распознаванием текста по квитанциям с использованием Microsoft Oxford Vision с Xamarin.Forms.
Вот код:
private async void BtnTake_Clicked(object sender, EventArgs e)
{
try
{
var photo = await TakePic();
Image = ImageSource.FromStream(() => photo.GetStream());
var result = client.RecognizeTextAsync(photo.GetStream()).Result;
var words = from r in result.Regions
from l in r.Lines
from w in l.Words
select w.Text;
OutputText = string.Join(" ", words.ToArray());
await Navigation.PushAsync(new TextFromPhoto(OutputText, Image));
}
catch (Exception ex)
{
OutputText = "Ops! Something wrong!" + ex.ToString();
await Navigation.PushAsync(new TextFromPhoto(OutputText, Image));
}
}
private async Task<MediaFile> TakePic()
{
var file = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions
{
SaveToAlbum = true,
PhotoSize = PhotoSize.Medium
});
return file;
}
Код отлично работает с обычным текстом, например со страницей с фотографией книги, которую я взял в приложении, но когда я пытаюсь использовать это для сканирования текста из квитанции программа не знает, что делать и на выходе мы можем увидеть "513nlkm nlmnl l1mk 531" или что-то в этом роде.
Фото, когда у меня есть "нормальный" текст:
Фото, когда у меня есть текст квитанции:
Есть ли проверенные способы исправить это?