7段显示OCR
Posted
技术标签:
【中文标题】7段显示OCR【英文标题】:7-Segment Display OCR 【发布时间】:2012-03-10 19:09:54 【问题描述】:我正在使用 Tesseract(一个 OCR 库)构建一个 ios 应用程序(拍照并在其上运行 OCR),它可以很好地处理书写良好的数字和字符(使用常用字体)。
我遇到的问题是,如果我在 7 段显示器上尝试,它会产生非常非常糟糕的结果。
所以我的问题是:有谁知道我可以如何解决这个问题?有没有办法让 Tesseract 识别这些字符?
【问题讨论】:
有趣的是(不管这个具体的包),识别7段字符要容易得多-简单的图像处理-边缘检测然后找到长度和方向,让你半途而废 【参考方案1】:我也很难让 tesseract 从 LCD 显示器的图像中识别数字。
我通过使用 ImageMagick 预处理图像以在其自身上叠加图像的副本并略微垂直移动以填充片段之间的间隙,从而获得了一些微不足道的成功:
$ composite -compose Multiply -geometry +0+3 foo.tif foo.tif foo2.png
不过,最后,我的可取之处是“七段光学字符识别”二进制:http://www.unix-ag.uni-kl.de/~auerswal/ssocr/
非常感谢作者 Erik Auerswald 提供此代码!
【讨论】:
如何在 iOS 上运行 ssocr? 你是如何在android中使用的?【参考方案2】:我没有尝试过OCRing 7-Segment Display,但我怀疑这个问题可能是由于字符不是连接组件造成的。根据我的经验,Tesseract 不能很好地处理断开连接的字体。
简单的腐蚀(图像预处理)可能有助于连接段,但您必须对其进行测试并使用内核大小来防止过多的失真。
【讨论】:
是的,我知道。我尝试自己为像素着色,只是为了在图片上尝试 OCR(带有连接的数字),但它仍然无法正常工作。可能是因为字体很奇怪,所以我正在尝试处理字体。谢谢你的回答 :) 然后,使用该字体训练 tesseract。在连接段之后使用字体可能会更好,但您最好同时尝试(使用原始字体和连接字体进行训练)看看哪个更好。以上是关于7段显示OCR的主要内容,如果未能解决你的问题,请参考以下文章
使用 OpenCV 为 Tesseract OCR 预处理七段图像
使用 Raspberry Pi Python 使用 74HC595 控制 8 位 7 段显示器