使用如下代码提取图片中的数字: import tesserocr from PIL import Image img = Image.open('2975e05c-c518-4df8-8677-5b67b5781b05.png')
print(tesserocr.image_to_text(img))
一个显示¥14.80,另一个显示为空
需要设置psm参数,这样写就可以了:
import tesserocr
from PIL import Image
img=Image.open('163.jpg')
print(tesserocr.image_to_text(img,psm=8))
关于有关psm的参数说明,可参考https://blog.csdn.net/huitailangyz/article/details/80390090
你试一下进行二值化处理后再识别图片
image = image.resize((64, 25))#图片大小 remake(image, 145, 6, i)#二值化程度:145 去噪程度:6/9
remake是自己定义的,你加上就行
def remake(guess_img, much_num, n, i):
"""
guess_img:传入图片文件
much_num: 阈值,控制二值化程度,自行调整(不能超过256)
n:九宫格法去除像素点周围点的数量(推荐6和7)
"""
imgry = guess_img.convert('L')
table = get_bin_table(much_num)
binary = imgry.point(table, '1')
noise_point_list = collect_noise_point(binary, n)
remove_noise_pixel(binary, noise_point_list)
binary.save('./image_done/img' + str(i) + '.png')
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632