例如,此图像返回 Sieteary ear虽然此图像返回正确答案两个图像之间的唯一区别是高度为 2 个像素。我尝试过应用一些阈值,但似乎没有帮助......from PIL import Imageimport pytesseractpytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"image = Image.open(path)print(pytesseract.image_to_string(image,))
1 回答
噜噜哒
TA贡献1784条经验 获得超7个赞
您可以使用 OpenCV 执行一些预处理。这个想法是用 imutils 放大图像,使用 Otsu 的阈值获得二值图像,然后添加轻微的高斯模糊。为了获得最佳检测效果,图像的格式应该是,要检测的文本为黑色,背景为白色。这是两张图片的预处理结果:
之前->
之后
两个图像的 Pytesseract 输出结果是相同的
BigBootyHunter2
代码
代码
import cv2
import pytesseract
import imutils
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
image = cv2.imread('1.jpg')
image = imutils.resize(image, width=500)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]
thresh = cv2.GaussianBlur(thresh, (3,3), 0)
data = pytesseract.image_to_string(thresh,,config='--psm 6')
print(data)
cv2.imshow('thresh', thresh)
cv2.waitKey()
添加回答
举报
0/150
提交
取消