[英]making image ready for Tesseract_OCR
我是计算机视觉领域的新手。 我试图让我的图像很容易被 OCR 识别。 我已经做了很多步骤来让 Tesseract_OCR 更容易识别,但都是徒劳的。 请有人帮助我。
这是我的原始图像input.jpg
对不起,我不擅长这个,但任何帮助将不胜感激谢谢
那是代码
gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
alpha = 3.0
beta = -150
new = alpha * gray + beta
new = np.clip(new, 0, 255).astype(np.uint8)
blur = cv2.GaussianBlur(new, (3, 3), 0)
dst = cv2.fastNlMeansDenoising(blur, None, 3, 7, 21)
se=cv2.getStructuringElement(cv2.MORPH_RECT , (1,1))
bg=cv2.morphologyEx(dst, cv2.MORPH_DILATE, se)
这是我的 output 图片,但它仍然没有达到我的预期output.jpg
我也这样做了..
gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
alpha = 4.0
beta = -200
new = alpha * gray + beta
new = np.clip(new, 0, 255).astype(np.uint8)
blur = cv2.GaussianBlur(new, (3, 3), 0)
dst = cv2.fastNlMeansDenoising(blur, None, 3, 7, 21)
th1 = cv2.adaptiveThreshold(dst, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 2)
se=cv2.getStructuringElement(cv2.MORPH_RECT , (1,1))
bg=cv2.morphologyEx(th1, cv2.MORPH_OPEN, se)
output 是这个output.jpg
在任何其他处理之前,您可以在 Python/OpenCV 中对图像进行除法归一化。
输入:
import cv2
import numpy as np
# read the image
img = cv2.imread('text_img.jpg')
# convert to gray
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# blur
smooth = cv2.GaussianBlur(gray, None, sigmaX=30, sigmaY=30)
# divide gray by morphology image
division = cv2.divide(gray, smooth, scale=255)
# save results
cv2.imwrite('text_img_division.jpg',division)
# show results
cv2.imshow('smooth', smooth)
cv2.imshow('division', division)
cv2.waitKey(0)
cv2.destroyAllWindows()
结果图像:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.