Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
310 views
in Technique[技术] by (71.8m points)

python PIL 图片放大的问题

尝试用pytesseract来识别一些图片:
图片描述

原始图片尺寸较小,用pytesseract无法识别,开始尝试用 Mac 自带的预览工具来放大尺寸 ,发现可以正常识别了,然后尝试用 PIL 来放大图片,代码如下:

images.resize((1985, 336),Image.ANTIALIAS).save('/images', quality=95,dpi=(72, 72))

问题是,通过 PIL 放大的图片不能被pytesseract 正常识别,我对比了两张图片的信息,如下图:
图片描述

发现除了图片尺寸不同外,其他信息都是相同的,但是就是无法被pytesseract正常识别,所以求教如何用 PIL 放大出可以正常被pytesseract识别的图片(其他工具也可以)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

你可以尝试改变tesseract的-psm参数:

image = Image.open('ocr.png')
image.show()
for p in range(4,14):
    print(p, '-', pytesseract.image_to_string(image, config="-psm {}".format(p)))

输出如下:

4 - 3 4'1 4'1 I] I]
5 - D
D
d.
d.
_...I._
6 - 3 4'1 4'1 I] I]
7 - 3 4'1 4'1 I] I]
8 - 34400
9 - 34400
10 - W
11 - 3

£1

I1

I]

I]
12 - 
13 - 34400

如果图片只有数字你也能尝试用tessedit_char_whitelist:

pytesseract.image_to_string(image, config="-psm 8 -c tessedit_char_whitelist=1234567890")

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...