印在金属板上的文字上的OCR

jus*_*gus 5 ocr opencv tesseract computer-vision opencv3.0

我正在进行一个OCR项目,该项目的目的是从金属板上读取压印的序列号:

标记文本示例。

我正在使用OpenCV为OCR准备图像,并为TCR本身使用Tesseract。这是理想的过程:

  1. 在整个印版的图片中,裁剪到序列号的一般位置。
  2. 为OCR准备裁剪的图像。
  3. 应用OCR。

我当前的流程是这样的:

  1. 手动裁剪为序列号。
  2. 转换为灰度。
  3. 锐化。
  4. 使用Canny边缘检测。
  5. 运行Tesseract OCR。

但是,我取得的成功非常有限。我的主要问题是:

  • 哪种处理可以优化OCR?进行边缘检测是否是一个好的开始?
  • 也许我可以使用加盖戳文字的字体吗?
  • 我可以利用文本的“颜色”(而不是金属的灰色或标签的黑/白)来获得优势吗?

Dev*_*sad 1

我觉得这可能不是完整的解决方案,但可以提供帮助 -

我一直在研究类似的场景,我想从浮雕金属中提取文本。

我的方法和你的方法类似 -

  1. 阅读图像
  2. 将其转换为灰度
  3. Canny 边缘检测
  4. 扩张
  5. 寻找轮廓并消除不必要的噪音
  6. 如有必要再次拨号
  7. 反转阈值
  8. 超立方体

我注意到,当文本颜色为黑色且背景为白色时,Tesseract 效果更好。(所以,我正在执行第七步)

您可以在这里查看我的工作代码和结果 - https://github.com/DevashishPrasad/Embossed-Text-Reader

我还想提一下,这完全取决于精明和你的形象。您可以将阈值保持较低以找到更多边缘,将阈值保持较高以找到更少边缘。但是更多的边缘会在图像中引入噪声,而更少的边缘将无法检测到整个数字。所以这一切都取决于精明的阈值和你的图像。