【发布时间】:2021-05-01 03:15:45
【问题描述】:
在预处理之后,这就是我将它提供给 Tesseract OCR 的方式
text = pytesseract.image_to_string(img, lang='eng')
但是 ocr'ed text 是空的。
编辑:
我加载完整图像并将其裁剪为此。裁剪后,我对其应用锐化滤镜,然后去除盐和胡椒
pages = convert_from_path("../data/2.pdf", fmt='JPEG',
poppler_path=r"D:\poppler-0.68.0\bin")
reader = easyocr.Reader(['en']) # need to run only once to load model into memory
for page in pages:
page.save('image.jpg', 'JPEG')
image = cv2.imread('image.jpg')
img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
img = img[cord[2]:cord[3], cord[0]:cord[1]]
kernel = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]])
img = cv2.filter2D(img, -1, kernel)
img = cv2.medianBlur(img, 3)
text = pytesseract.image_to_string(img)
此图像是 PDF 的一部分。 PDF 转换为 jpg 然后再次加载,然后通过给出 BB 坐标将这部分裁剪掉。
但它打印的 ocr'ed text 输出仍然关闭:
AQ@O FCI
【问题讨论】:
-
这个问题正在Meta Stack Overflow cc @GinoMempin 上讨论
-
你的代码会给你一个 IndentationError - 所以这不是你正在运行的。
-
这对 SO 来说真的不是一个好问题。您的代码有效 - 只是 tesseract 完成的 OCR 并没有达到您的大脑可以做的“标准” - 大惊喜。要进行的预处理的选择高度依赖于输入 - 对一张图像有效的方法可能适用于其他图像,也可能不适用于其他图像。讨论预处理要做的事情更像是一个教程,而不是可以/应该在这里完成的事情。我建议研究预处理图像方法 - 甚至还有更早的帖子这样做:tesseract ocr
-
其他一些可能对您有所帮助的 ocr 问题:stackoverflow.com/questions/54940022/…,stackoverflow.com/questions/60624019/…,stackoverflow.com/questions/64099248/…,stackoverflow.com/questions/9480013/…,...(谷歌与:ocr dilatate erode 改进网站: stackoverflow.com)
-
已编辑:重新包含斑点图像(没有此 Q 没有意义)并修复了 IndentationError(早期版本没有它 - 所以可能是由编辑引起的)