【发布时间】:2015-09-16 20:49:27
【问题描述】:
我正在使用 OpenCV 2.4 和 Tesseract 3
我正在尝试通过网络摄像头在 14 段显示器上进行 OCR。
问题在于,当我训练 Tesseract 时,我必须进行足够的侵蚀/膨胀来填补每个片段的空白。但是,我从网络摄像头读取的图像需要进行预处理以消除噪音。为此,我使用腐蚀和膨胀,生成的图片没有链接其片段:
我训练 tesseract 的内容(即“V”字母):http://i.imgur.com/NbmVqkb.png(所有片段都已链接)
我使用 tesseract 提供的内容:http://i.imgur.com/0E4iXXk.png(有些片段已链接,有些则没有)
OCR-ing 的结果总是不同的,可以是“OVO”也可以是“EB”。我想也许如果我用与我实际阅读的内容(非链接段)更相似的版本来训练 tesseract,它可能会更好地工作,但无法用这样的空格训练 Tesseract(它说“空页”)。
有人知道如何解决这个问题吗?
我尝试增加腐蚀/膨胀的大小,但随后无法识别其他字母(B 和 D 令人困惑)并且总体结果较低。
谢谢!
编辑:基本上,我需要一种将段链接在一起的方法,以使 tesseract 更容易读取字符,或者用未链接的段训练 tesseract 的方法(据我所见,可以'不会发生)
【问题讨论】:
-
@user2950911 我刚试过这个:获取骨架,然后扩大结果,对于“V”字母,这似乎很好,但随后“B”和“D”变得 99% 相似.我相信,如果我们能够以某种方式移除靠近角落的小树枝(对于矩形,骨架是这样的:>---
-
实际上,我尝试了一种细化算法,它不会在角落附近出现小分支,但问题仍然存在。如果我为了将字母“V”的片段链接在一起而过度扩张,其他字符将无法像“B”和“D”那样工作。