【发布时间】:2018-12-21 16:49:00
【问题描述】:
我正在做一个项目,我应该在其中申请和 OCR 处理一些文件。
第一步是对图像进行阈值处理,只让文字(背景变白)。
输入图像示例:(出于 GDPR 和隐私原因,此图像来自互联网)
import cv2
import numpy as np
image = cv2.imread('b.jpg')
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
h = image.shape[0]
w = image.shape[1]
for y in range(0, h):
for x in range(0, w):
if image[y, x] >= 120:
image[y, x] = 255
else:
image[y, x] = 0
cv2.imwrite('output.jpg', image)
这是我得到的结果:
当我将 pytesseract 应用于输出图像时,结果并不令人满意(我知道 OCR 并不完美)。尽管我尝试调整阈值(在此代码中它等于 120),但结果并没有我想要的那么清晰。
有没有办法设置一个更好的阈值,以便只保持黑色和白色的写作?
【问题讨论】:
-
在网上发布您的个人/某人 ID 不是一个好主意。
-
谢谢,我完全知道,这是我从网上下载的图片
-
底部看起来很干净,是你要解码的吗?
-
@MarkRansom,不仅是底部。主要是姓名、姓氏、出生日期和地点
标签: python opencv ocr image-thresholding