如何从OCR的图像中过滤纹理

时间:2014-09-16 14:12:38

标签: opencv image-processing ocr scikit-image leptonica

我正在尝试对某些形式执行OCR,但是,它们具有如下纹理:

Original Image

此纹理导致OCR程序忽略它将其标记为图像区域。

我考虑过使用形态学。带星形的结束操作最终如下:

Closing operation

这个结果对于OCR来说还不够好。

当我手动擦除'胡椒'并进行自适应阈值处理时,如下图像在OCR上得到了很好的结果:

Edited and thresholded

您对此问题有任何其他想法吗?

感谢

4 个答案:

答案 0 :(得分:1)

对于给定的图像,5x5中值滤波器比闭合效果略好。从那里,具有自适应阈值的二值化可以消除更多的背景。

无论如何,由此产生的质量将在很大程度上取决于图像,并且无法实现完美的结果。

enter image description here

答案 1 :(得分:1)

也许看看这个:https://code.google.com/p/ocropus/source/browse/DIRS?repo=ocroold(参见ocr-doc-clean)。

答案 2 :(得分:1)

背景图案是非常规则和方向性的,因此在傅里叶域中进行过滤必须在这里做得非常好。例如Butterworth filter

使用gimp进行此类过滤的具体示例可以找到here

答案 3 :(得分:1)

考虑到你知道字体大小,你也可以考虑使用连通分量过滤,也许结合形态学操作。为了能够保留逗号,请小心一个较小的连接组件是否接近一个大小与您尝试读取的字符相似的组件。