如何在小图像中使用pytesseract改进手写文本识别?

2024-09-27 07:17:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用pytesseract库进行手写文本识别,以读取平均尺寸为43*45像素的图像中的数字字符。以下示例图像:
image 1image 2image 3

预期结果:

9
1
4

我想从图像中得到一个数字字符

我已经尝试了下面的代码

import pytesseract

# loop through images
print(pytesseract.image_to_string("text.jpg", config='--psm 10 --oem 3 -c tessedit_char_whitelist=0123456789'))

但真正的结果是,我得到的准确率不到50%,甚至更低,一些数字读得很好,一些在一张图像中读到2个字符,一些不读。
当我删除-c tessedit_char_whitelist = 0123456789配置时,我会得到字符4\和字母g
如何使PyteSeract将图像视为唯一的单个数字字符,而不是使用仍将文本读取为字母数字的白名单

PS:我知道OCR不能100%准确。至少精度可以提高


Tags: 代码图像文本import示例尺寸字母数字
1条回答
网友
1楼 · 发布于 2024-09-27 07:17:24

因此,对于this GitHub issue,tesseract 4.0不支持LSTM模型中的白名单字符。您可以通过将Tesseract升级到4.1版本而不是使用旧模型(即 oem标志)来解决此问题

或者,您可以尝试使用this answer中的Robert Harris所建议的标志config='digits',强制PyteSeract只返回数字

This blog article建议创建一个python函数,该函数使用一个简单的正则表达式来提取所有数字,而不是使用多个标志和版本

相关问题 更多 >

    热门问题