cqwcns 发表于 2022-8-3 11:06

python pytesseract识别成功率低的问题

图片是这样的:


我的代码:
import pytesseract
from PIL import Image
import requests
from io import BytesIO

print('开始')
# img = Image.open("D:\\Files\\python\\img_to_str\\test2.jpg")

# 打开
img1 = Image.open(BytesIO(requests.get(
    "https://img.alicdn.com/bao/uploaded/i4/6000000004395/O1CN015dL7Fj1iKxTvPBQ7Z_!!6000000004395-0-picassoopen.jpg").content))
img2 = Image.open(BytesIO(requests.get(
    "http://img.alicdn.com/bao/uploaded/i2/6000000002419/O1CN01peQiCX1Tjwr6pAt1z_!!6000000002419-0-picassoopen.jpg").content))

# 剪裁出右下角
img1 = img1.crop((586, 680, 800, 800))
img2 = img2.crop((586, 680, 800, 800))

# # 尝试调整图片对比度,但测试对识别结果没有帮助
# img1 = img1.convert("L")
# img2 = img2.convert("L")

# 保存
img1.save('D:\\Files\\python\\img_to_str\\img1.jpg')
img2.save('D:\\Files\\python\\img_to_str\\img2.jpg')

# 识别结果输出
print('img1:', pytesseract.image_to_string(img1, lang="chi_sim"))
print('img2:', pytesseract.image_to_string(img2, lang="chi_sim"))
print('完成')


结果是这样的:
49.3只识别出49.
111无法识别出任何数字


所以,如果要提高识别成功率,各位大佬有什么优化建议?谢谢

weiekko 发表于 2022-8-3 11:17

我猜是语言问题?安装的时候安装中文了吗?
(小白,不一定对)

wuxin9749 发表于 2022-8-3 11:22

直接换个库,推荐ddddocr

cqwcns 发表于 2022-8-3 11:26

weiekko 发表于 2022-8-3 11:17
我猜是语言问题?安装的时候安装中文了吗?
(小白,不一定对)

我本来就不需要识别中文,而且现在中文识别反而没有问题,是数字有问题。

Prozacs 发表于 2022-8-3 11:36

接有道的ocr识别吧

cqwcns 发表于 2022-8-3 11:42

wuxin9749 发表于 2022-8-3 11:22
直接换个库,推荐ddddocr

无法识别出小数点,有什么办法处理。
例如49.3,只识别出493,没有小数点。
有没有办法解决,感谢

import ddddocr
ocr = ddddocr.DdddOcr()
with open('D:\\Files\\python\\img_to_str\\img1.jpg', 'rb') as f:
    img_bytes = f.read()
res = ocr.classification(img_bytes)
print(res)

HappyCrazy 发表于 2022-8-3 11:48

weiekko 发表于 2022-8-3 11:17
我猜是语言问题?安装的时候安装中文了吗?
(小白,不一定对)

这个是python吧{:1_907:}

jsnjfz 发表于 2022-8-3 11:55

可以用百度的paddleOCR,开源,而且识别率还可以,pytesseract之前用过不太行,就算用了中文字库也一般

weiekko 发表于 2022-8-3 12:32

HappyCrazy 发表于 2022-8-3 11:48
这个是python吧

我是说安装的pytesseract内置的语言。。。。。。。。。。。。。。。。。。。。。
默认应该是英语,需要安装中文

weiekko 发表于 2022-8-3 12:39

搞个在线识别的吧,百度ocr什么的,但是可能要花钱
页: [1] 2 3
查看完整版本: python pytesseract识别成功率低的问题