**已关闭。**此问题为not about programming or software development。目前不接受回答。
此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site的主题相关,可以发表评论,说明在何处可以回答此问题。
18天前关门了。
Improve this question的
我试图在python 3.11中使用tesseract将一些图像转换为Windows 11上的文本。我已经尝试过预处理图像,包括变形,放大,灰度和阈值,但似乎都不起作用。
我一直在削减和改变我的代码,但下面是我已经到(路径是每个图像的本地路径)-
import cv2
import pytesseract as tess
tess.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
img = cv2.imread(path)
greyscale = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
threshold = cv2.threshold(greyscale, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]
data = tess.image_to_string(threshold, config='--psm 6')
print(data)
字符串
我愿意使用其他图书馆。
2条答案
按热度按时间u5rb5r591#
您需要调整图像的颜色级别以删除背景。
adjust Color level
字符串
Color levels in OpenCV的
然后,将图像转换为灰度并应用阈值。
greyscale image的
threshold image的
最后,反转你的图像,让tesseract很好地识别你的图像。
inverted image的
型
jq6vz3qz2#
根据超立方体的文档
是否有最小/最大文本大小?(它不会读取屏幕文本!)
有一个合理的准确性的最小文本大小.你必须考虑分辨率以及点大小.精度下降低于10 pt x 300dpi,迅速低于8 pt x 300dpi.一个快速的检查是计算你的字符的x高度的像素.(X-height是小写字母x的高度。)在10 pt x 300dpi时,x-height通常约为20像素,尽管这可能因字体而异。低于10像素的x-height,你几乎没有机会得到准确的结果,在8像素以下,大部分文本将被“去除噪音”。
使用LSTM时,x高度的最大值似乎也在30 px左右。超过这个值,Tesseract不会产生准确的结果。传统引擎似乎不太容易出现这种情况(参见https://groups.google.com/forum/#!msg/tesseract-ocr/Wdh_JJwnw94/24 JHDYQbBQAJ)。
因此,首先要做的是增加输入图像的大小,因为它们在限制的大小之下。然后您可以应用维纳或某种过滤器来再次提高质量。
EasyOCR
也可以是另一种选择,而不是tesseract
。