为了账号安全,请及时绑定邮箱和手机立即绑定

Python - pytesseract 对于相似图像不一致

Python - pytesseract 对于相似图像不一致

LEATH 2022-07-12 10:32:48
例如,此图像返回 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()


查看完整回答
反对 回复 2022-07-12
  • 1 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信