使用tesseract在图像上进行OCR之前使用opencv进行图像处理

时间:2015-11-12 09:54:39

标签: android opencv image-processing ocr tesseract

我一直在尝试将tesseract引擎训练为使用七种数字字体编写数字的ocr图像。

Seven digital font

并且,经过搜索,结果证明tesseract赢得了分段字体,除非这些片段以某种方式连接。

所以,我在图像上使用了侵蚀,这是一个opencv函数来连接段。 http://www.tutorialspoint.com/java_dip/eroding_dilating.htm

然后,在将图像处理到tesseract之前,我使用阈值将图像转换为二进制(此步骤是多余的,因为tesseract内部进行图像二值化)。 http://docs.opencv.org/2.4/doc/tutorials/imgproc/threshold/threshold.html

我的主要问题是数字在深绿色背景上用黑色书写。 结果如下

原始图片:

Original Image to be ocred

方法1: 侵蚀和二值化之后(我尝试了各种阈值最大值) Image after binarization

方法2: 我尝试使用k-means或c-means算法,但结果没有那么好。

方法3: 我也尝试过自适应高斯阈值处理 Adaptive Gaussian threshold

方法4: 自适应均值 Just adaptive mean

方法5: 将原始图像传递给tesseract而不进行任何图像处理并输出结果图像(Tesseract使用leptonica在内部进行图像处理)。 Tesseract image processing

我也尝试了各种样本而不是这个样本并尝试使用Gimp image processing中的步骤来增强图像,但是没有任何对我有用。 有什么建议? 谢谢!

0 个答案:

没有答案