Я использую пакет Xamarin.tesseract
nuget для моего ocr.Я настроил все правильно, включая папку tessdata.см. приведенную ниже команду, которая подключается к нажатию кнопки
public ICommand OCRCommand => new Command(async () => await ocrcard());
private async Task ocrcard()
{
try
{
var ocr = Resolver.Resolve<ITesseractApi>();
if (!ocr.Initialized)
{
var initialised = await ocr.Init("eng");
if (!initialised)
return;
}
var photo = await UtilityService.GetPhotoBase64StringAsync(false);
var isReadSuccess = await ocr.SetImage(Convert.FromBase64String(photo));
if (!isReadSuccess) return;
var texts = ocr.Text;
var words = ocr.Results(PageIteratorLevel.Word);
var symbols = ocr.Results(PageIteratorLevel.Symbol);
var blocks = ocr.Results(PageIteratorLevel.Block);
var paragraphs = ocr.Results(PageIteratorLevel.Paragraph);
var lines = ocr.Results(PageIteratorLevel.Textline);
//DialogService.ShowAlertAsync(texts, "ocr text", "ok");
//var ocrService = Tesseract.
//s.Elapsed()
}
catch(Exception ex)
{
throw ex;
}
}
await UtilityService.GetPhotoBase64StringAsync(false)
- это пользовательский метод, который я написал для получения фотографии с камеры с помощью плагина CrossMedia.
У меня естьперепробовал все три варианта, которые SetImage
предоставляет.Я попытался передать байтовый массив, поток и путь к файлу.Все три варианта возвращают бессмысленные результаты.
Это результат в ocr.Text
"l 1 'u 17 \ n \ nm Hume \ vnsm Paguayom Rdtrentes Mamngs mew vuw \ n\ n (m A .7 .7, 7 r-w \ n5 Calmnlfinny) v72 ~ AA Aa \ "% :: ';:': p'EEEE'él'VA \ nqacwv \ n \ n:V:.,z 2 2 5 :, V, '\ nVmeatwamuM n IL, “5“!xz -A- Eff: v: Q 7 '”\ nummm 4 mw Абзац: 3 \ nM \ nJ I \ n \ n"
, и это изображение: ![enter image description here](https://i.stack.imgur.com/R3TYW.jpg)