我尝试在多张带有数字的扫描纸上运行 OCR,如下图所示(所有纸都有相同的背景,只有数字):
但所有尝试都失败了!我尝试了离线 OCR:gocr、tesseract 和几个在线 OCR;但都彻底失败了!
我应该怎么办?
答案1
首先你必须调整这些图片。我推荐使用批处理工具,例如视窗多媒体它是免费的并且支持多平台。
它有一个文件资源管理器。选择所有图片,然后转到工具-批量转换. 像我一样添加操作:
以下是我的操作:
- HLSS- 使其变为灰度:
- 色相:0
- 亮度:0
- 饱和度:-127
- 级别- 稍微降低黑色水平,这样灰色噪音就会消失
- 黑点:0
- 白点:212 - 可能因图像而异
- 减少噪音筛选
- 调整增加对比度
- 亮度:0
- 对比度:127- 这很重要
- 伽马:1.06
- 最低限度使黑色更浓
- 过滤器尺寸:5x5 - 可能因图像而异
不要忘记另存为tiff
(参见输出选项卡)。之后我运行tesseract
:
tesseract test.tif text -psm 7
注意我选择了 PSM 模式 7:将图像视为一行文本。如果有多行文本,您可能需要使用模式 6 或 3。
text.txt
输出文件的内容如下:
570 394 666 638 043
答案2
我试图用ABBYY 的 OCR 技术:
有关 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')))