我正在做一个项目,我应该在一些文件上申请和 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),但结果并不像我想要的那样清晰。
有没有办法制定一个更好的阈值,以便只保持黑色和白色的写作?