首页 > 解决方案 > Xamarin tesseract OCR 返回错误的输出和乱码

问题描述

我正在Xamarin.tesseract为我的 ocr 使用 nuget 包。我已经正确设置了所有内容,包括 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"

这是图片: 在此处输入图像描述

标签: xamarinocrtesseract

解决方案


推荐阅读