使用opencv对tesseract进行预处理

时间:2016-08-24 06:40:58

标签: opencv xamarin xamarin.android ocr emgucv

我想知道在将图像提供给OCR之前处理图像以获得最佳效果所需的方法。此外,应提供什么字符集以获得最佳结果。目前,我正在开发Xamarin Android应用程序。

以下是我的图像处理代码。

 CvInvoke.CvtColor(img, img, ColorConversion.Bgr2Gray);
 //CvInvoke.Canny(gray, canny, 100, 50, 3, false);
 Size s = new Size(3, 3);
 CvInvoke.GaussianBlur(img, img, s, 0, 0, BorderType.Default);
 //CvInvoke.FastNlMeansDenoising(img, img, 3, 7, 21);
 CvInvoke.AdaptiveThreshold(img, img, 255, AdaptiveThresholdType.MeanC, Emgu.CV.CvEnum.ThresholdType.Binary, 5, 4);
 CvInvoke.Threshold(img, img, 0, 255,  Emgu.CV.CvEnum.ThresholdType.Otsu);

我正在使用EmguCv库进行处理,以及Tesseract。

下面是我列出白名单的字符集。

_ocr.SetVariable("tessedit_char_whitelist", 
    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-1234567890 :$/.?,!@#%^&*()_+=\'\";{}[]+");

我想扫描收据,我对这个概念很新。请让我知道你的想法。

0 个答案:

没有答案