繁体   English   中英

如何提高 python/tesseract 图像到文本的准确性?

[英]How to improve python/tesseract Image to Text accuracy?

如何从某个区域抓取图像并正确使用 tesseract 转换为文本? 我目前得到了这个:

img = ImageGrab.grab(bbox =(1341,182, 1778, 213))
tesstr = pytesseract.image_to_string(np.array(img), lang ='eng')
print (tesstr)

问题是它的翻译非常错误,因为它从中获取文本的区域是蓝色背景的红色,我该如何提高它的准确性? 它试图从图像转换为文本的示例:

  • *问题是它翻译得非常错误,因为它从中获取文本的区域是蓝色背景的红色,我该如何提高它的准确性? *

您应该知道提高 output 的质量 您需要尝试列出的每种建议方法。 如果仍然无法达到预期的效果,则应查看其他方法:

要获得所需的结果,您需要获取图像的二进制掩码。 简单阈值和自适应阈值都不适用于输入图像。

获取二进制掩码

    1. 上采样并将输入图像转换为 HSV 颜色空间
    1. 设置较低和较高的颜色边界。

结果:

在此处输入图像描述

0.37 版本的 OCR output 将是:

Day 20204, 16:03:12: Your ‘Metal Triangle Foundation’
was destroved!

代码:


import cv2
import numpy as np
import pytesseract

# Load the image
img = cv2.imread("b.png")

# Up-sample
img = cv2.resize(img, (0, 0), fx=2, fy=2)

# Convert to HSV color-space
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# Get the binary mask
msk = cv2.inRange(hsv, np.array([0, 0, 123]), np.array([179, 255, 255]))

# OCR
txt = pytesseract.image_to_string(msk)
print(txt)

# Display
cv2.imshow("msk", msk)
cv2.waitKey(0)

Tesseract API 中有一个选项,您可以增加检查图像以检测文本的 DPI。 DPI 越高,精度越高,直到收益递减。需要更多的处理能力。 DPI 不应超过原始图像 DPI。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM