使用Tesseract检测黑色背景上的白色字符

Cha*_*ran 7 tesseract

我是Tesseract OCR的新手.这个问题可能很简单,但我似乎无法使用Google找到答案.

基本上,我有一个包含两个部分的图像:第一部分位于图像的顶部,黑色背景,文本为白色; 第二部分位于图像的底部,具有白色背景,文本为黑色.

我在图像上运行了tesseract,它正确识别了底部的所有字符,但顶部没有.我确信顶部的字符非常清晰,并且应该很容易被Tesseract识别.唯一的区别是它有黑色背景.

有没有办法使用Tesseract同时识别黑白背景中的文本?

小智 7

T. Kasar,J.Kumar和AG Ramakrishnan的论文描述了该问题的一种解决方案:"字体和背景颜色独立文本二值化".这篇论文可以在这里找到.Jason Funk实现了该算法.他的实施可以在这里找到.我在算法上取得了一些成功.我认为这种解决方案正是您所寻求的.

您可能还会发现查看有关背景消除的最近询问的问题(OpenCV for OCR:如何计算灰度图像OCR的阈值水平)及其答案是有帮助的.您可以通过背景颜色分离感兴趣的区域,然后将每个区域交给tesseract进行处理.或者,在二值化后,您可以在图像的黑色背景部分(或副图对比)中反转8x8像素区域(在上面的答案中描述),以创建均匀的背景.

最后,您可以通过搜索车牌识别问题(或车牌)的解决方案找到一些有用的信息.许多车牌(牌照)具有可能干扰识别的背景图像或照明伪影.更普遍的问题是背景消除.