在做数据分析的时候有些数据是从图片上去获取的,这就需要去识别图片上的文字。Python有很多库可以很方便的实现OCR识别图片中的文字。这里介绍用EasyOCR库进行图片文字识别。easyocr是一个比较流行的库,支持超过80种语言,识别率高,速度也比较快。
一、图片识别文字
1、导包
1 | pip install easyocr |
2、代码实现
1 | import easyocr |
3、运行效果
可以看到图片中的中文“防火墙”和”Web应用防火墙”都正确识别出来了。
注意:文件名和文件路径都不能有中文,否则会报错。如:如果将waf.png改成web应用防火墙.png就会报如下的错误。
[WARN:0@11.296] global loadsave.cpp:248 cv::findDecoder imread_(‘web应用防火墙.png’): can’t open/read file: check file path/integrity
在进行图片识别的时候发现如果是avif格式的也会报错。如从京东商品详情页下载的图片都是avif格式的,进行识别的时候就会报错。
但是这个图片用看图软件是可以正常显示的。
用画图软件另存为png或jpg格式后可以用easyocr正常识别出图片中的文字。
注意:直接将.avif的后缀名直接改成.jpg虽然可以用看图软件可以打开,但是用easyocr识别同样会报错,所以我们需要用程序来实现将avif格式的文件转成jpg或png文件格式。
二、avif格式图片转jpg格式
用python来实现将avif格式的文件转成jpg也很简单,但也有些注意事项。
1、导包
1 | pip install pillow-avif-plugin Pillow |
2、代码实现
1 | import pillow_avif #注意一定要引入pillow_avif否则会抛异常'cannot identify image file 'XXX'' |
3、运行效果
可以看到正常将avif文件转成了jpg格式的文件。
4、注意事项
import pillow_avif #注意一定要引入pillow_avif否则会抛异常’cannot identify image file ‘XXX’’
虽然代码没有用到pillow_avif但是一定要显示的用import pillow_avif否则在运行的时候会抛异常’cannot identify image file ‘XXX’’
三、Python实现avif图片转jpg格式并识别文字全部代码
所有代码用easyocrUtil.py实现
1 | import easyocr |
博客地址:http://xiejava.ishareread.com/
关注微信公众号,一起学习、成长!