python - 从图像中提取文本

标签 python opencv text tesseract text-extraction

二、我要提取的数字类型
Two, the type of number I am trying to extract

另一个样本

Another sample

另一个样本

Another sample

上图是我试图从中提取所有数字的另一张图片的输出。我正在单独选择每个数字,执行图像转换(阈值处理、图像对比、平均然后对比),但似乎没有一个能提供可靠和稳健的输出。

使用阈值效果很好,但提取数字的亮度并不总是相同,因此需要调整阈值以使其准确。我需要每次都能正常工作的东西。我正在寻找的输出类似于下图。执行图像转换后,图像通过 Tesseract OCR 运行。当通过 Tesseract 放置下图等时,输出几乎总是正确的。

图像变换后的所需图像:
The desired image after image transformations

此外,并非所有数字的大小都相同。无论数字的大小如何,我都需要它来工作。谁能帮忙?

最佳答案

不,你可能不需要自己做所有这些,OpenCV 已经实现了 OTSU 二值化方法,这完全适合你的情况。基本上它假设输入强度分布是双峰的。因此试图找到最佳阈值。您可以阅读更多 here .这是小代码以及生成的输出。

import cv2

img = cv2.imread("/home/abc/Downloads/1ltYB.png", 0)
ret, thresh = cv2.threshold(img, 10, 255, cv2.THRESH_OTSU)

print "Threshold selected : ", ret
cv2.imwrite("./debug.png", thresh)

输入:(我裁剪了图像以移除多余的填充)

enter image description here

输出:

enter image description here

关于python - 从图像中提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41969502/

相关文章:

python - 当类状态无效时会引发什么错误?

python - 如何从轮廓矢量转换为MAT?

opencv - 如何获取用于 HaarCascade 训练的汽车样本图像?

opencv - 在VS2013 Express Desktop上运行C++程序时出现“opencv_highgui249.dll is missing”消息

html - 相对于图像定位文本

python - 根据标点符号区分文本大小写

python - 为什么int.__eq__在python2中似乎没有实现

python - 如何从嵌套生成器函数中产生结果?

python - 删除图像python opencv周围的白色边框

html - 我的文本在 div 中的每个新行之间有很大的垂直空间?