具有灰色嘈杂背景的数字的 OCR

具有灰色嘈杂背景的数字的 OCR

我尝试在多张带有数字的扫描纸上运行 OCR,如下图所示(所有纸都有相同的背景,只有数字):

在此处输入图片描述

但所有尝试都失败了!我尝试了离线 OCR:gocr、tesseract 和几个在线 OCR;但都彻底失败了!

我应该怎么办?

答案1

首先你必须调整这些图片。我推荐使用批处理工具,例如视窗多媒体它是免费的并且支持多平台。

它有一个文件资源管理器。选择所有图片,然后转到工具-批量转换. 像我一样添加操作:

XNViewMP - 批量转换 - 操作选项卡

以下是我的操作:

  1. HLSS- 使其变为灰度:
    • 色相:0
    • 亮度:0
    • 饱和度:-127
  2. 级别- 稍微降低黑色水平,这样灰色噪音就会消失
    • 黑点:0
    • 白点:212 - 可能因图像而异
  3. 减少噪音筛选
  4. 调整增加对比度
    • 亮度:0
    • 对比度:127- 这很重要
    • 伽马:1.06
  5. 最低限度使黑色更浓
    • 过滤器尺寸:5x5 - 可能因图像而异

不要忘记另存为tiff(参见输出选项卡)。之后我运行tesseract

tesseract test.tif text -psm 7

注意我选择了 PSM 模式 7:将图像视为一行文本。如果有多行文本,您可能需要使用模式 6 或 3。

text.txt输出文件的内容如下:

570 394 666 638 043

答案2

我试图用ABBYY 的 OCR 技术OCR SDK 结果

有关 ABBYY 产品的更多信息,请访问abbyy.com
我在 ABBYY 工作,如果您有任何问题,我随时准备为您提供帮助。

答案3

  import cv2
  import numpy as np
  import pytesseract

  im= cv2.imread('noisyNumbers.png',cv2.IMREAD_GRAYSCALE)

  cv2.imshow('Gray', im)
  cv2.imwrite('noisyNumbers.jpg', im)

  print(pytesseract.image_to_string(Image.open('noisyNumbers.jpg')))

相关内容