【发布时间】:2014-11-28 21:06:37
【问题描述】:
我正在使用 Tesseract 识别 1bpp 图像中的大而清晰的文本。它非常适合我选择的字体和字体大小。但是,它也可以将一些细线和斑点识别为字母/数字。在附图中,Tesseract 不仅能识别“Ge”、“1”、“2”、“J.”和“Sp”,而且每条线都会额外增加一个“1”,对应于你的那些小垂直线可以看到那里。如何避免 Tesseract 这样做?
提前致谢。
【问题讨论】:
我正在使用 Tesseract 识别 1bpp 图像中的大而清晰的文本。它非常适合我选择的字体和字体大小。但是,它也可以将一些细线和斑点识别为字母/数字。在附图中,Tesseract 不仅能识别“Ge”、“1”、“2”、“J.”和“Sp”,而且每条线都会额外增加一个“1”,对应于你的那些小垂直线可以看到那里。如何避免 Tesseract 这样做?
提前致谢。
【问题讨论】:
您应该首先对图像进行预处理。 OpenCV 提供了一些形态学操作,例如腐蚀或膨胀,可以去除这些斑点和线条 (http://docs.opencv.org/doc/tutorials/imgproc/erosion_dilatation/erosion_dilatation.html)。
【讨论】:
与其他答案一样,一些简单的侵蚀将有助于去除线条。但是,如果线条总是在真实字符所在的区域之外,您可以尝试一个简单的技巧来避免真实字符在腐蚀时退化。 使用强烈腐蚀的图像来找到真实字符的边界框,并使用此 bbox 切出原始图像中有趣的部分。
【讨论】: