带有OpenCV的14段显示和Tesseract OCR

时间:2015-06-30 07:09:57

标签: c++ opencv ocr tesseract

我正在使用OpenCV 2.4和Tesseract 3

我正在尝试通过网络摄像头在14段显示器上进行OCR。

问题在于,当我训练Tesseract时,我必须做足够的侵蚀/扩张来填补每个部分的空白。但是,我从网络摄像头读取的图像需要进行预处理以消除噪音。要做到这一点,我使用糜烂和扩张,结果图片没有链接的部分:

OCR的结果总是不同的,可以是“OVO”以及“EB”。我想也许如果我训练tesseract与我实际阅读的更相似的版本(非链接段)它可以更好地工作但是Tesseract不能用这样的空白空间训练(它说“空页”)。

有没有人知道如何解决这个问题?

我试图增加侵蚀/扩张的大小但是其他字母不被识别(B和D令人困惑)并且总体结果较低。

谢谢!

编辑:基本上,我需要的是一种将片段链接在一起的方法,以便使tesseract更容易阅读角色或训练具有未链接片段的tesseract的方式(从我所看到的,可以'发生)

1 个答案:

答案 0 :(得分:0)

不能为此跳过tessaract吗?看起来您已经有了将图像分割成单独字符的方法。然后,您可以对显示的片段进行编号,也许就像在http://www.randomdata.nl/wiki/index.php/Adruino_14_segment_LED_board显示的那样,并确定当前哪些片段正在点亮。然后你可以将它与已知的所有字符组合相匹配,并使用某种形式的最近距离算法来找到最佳匹配。

坚持你V上面链接的方案可能编码如下:

segment number: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
switched on:    0 1 1 0 0 0 1 0 1 0  0  0  0  0