python2.7 ocr 文本识别 应该怎么弄

发布网友 发布时间:2022-04-22 00:48

我来回答

2个回答

懂视网 时间:2022-04-18 07:18

python如何识别图片中的文字,这里给个案例并附上详细步骤:

模块包的安装:

1、安装PIL:pip install Pillow

2、安装pytesser3:pip install pytesser3

3、安装pytesseract:pip install pytesseract

4、安装autopy3:

先安装wheel:pip install wheel

下载autopy3-0.51.1-cp36-cp36m-win_amd.whl【点击打开链接】

执行命令:pip install E:360安全浏览器下载autopy3-0.51.1-cp36-cp36m-win_amd.whl

5、安装Tesseract-OCR:百度直接搜索Tesseract-OCR下载即可

这里要说明的是安装Tesseract-OCR后,其不会被默认添加至环境变量path中

解决办法有两种:(先找到Tesseract-OCR安装文件夹,再找到tesseract.exe文件)

我这里的绝对路径是:D:pythonTesseract-OCR esseract.exe

①将此路径添加至环境变量path中(不过我是这么做的,但是PyCharm仍旧报错)

②找到pytesseract.py文件

我这里是C:UsersadminAppDataLocalProgramsPythonPython36Libsite-packagespytesseractpytesseract.py

将文件中的tesseract_cmd修改为上方的绝对路径

进入正题,如何识别图像中文字

上原图:(这句是海上钢琴师中的一句经典台词)

20180117224126792.png

接下来我们要通过python的pytesseract来识别图片中的字符了

# _*_ coding:utf-8 _*_
import pytesseract
from PIL import Image
__author__ = 'admin'
im = Image.open(r'C:UsersadminDesktopexample.png')
print(pytesseract.image_to_string(im))

效果图

20180117225601730.png

热心网友 时间:2022-04-18 04:26

Python图片文本识别使用的工具是PIL和pytesser。因为他们使用到很多的python库文件,为了避免一个个工具的安装,建议使用pythonxy
pytesser是OCR开源项目的一个模块,在Python中导入这个模块即可将图片中的文字转换成文本。pytesser调用了tesseract。当在Python中调用pytesser模块时,pytesser又用tesseract识别图片中的文字。pytesser的使用步骤如下:

首先,安装Python2.7版本,这个版本比较稳定,建议使用这个版本。
其次,安装pythoncv。
然后,安装PIL工具,pytesser的使用需要PIL库的支持。
接着下载pytesser
最后,将pytesser解压,这个是免安装的,可以将解压后的文件cut到Python安装目录的Lib\site-packages下直接使用,比如我的安装目录是:C:\Python27\Lib\site-packages,同时把这个目录添加到环境变量之中。
完成以上步骤之后,就可以编写图片文本识别的Python脚本了。参考脚本如下:
from pytesser import *
import ImageEnhance
image = Image.open('D:\\workspace\\python\\5.png')
#使用ImageEnhance可以增强图片的识别率
enhancer = ImageEnhance.Contrast(image)
image_enhancer = enhancer.enhance(4)
print image_to_string(image_enhancer)

tesseract是谷歌的一个对图片进行识别的开源框架,免费使用,现在已经支持中文,而且识别率非常高,这里简要来个helloworld级别的认识
下载之后进行安装,不再演示。
在tesseract目录下,有个tesseract.exe文件,主要调用这个执行文件,用cmd运行到这个目录下,在这个目录下同时放置一张需要识别的图片,这里是123.jpg
然后运行:tesseract 123.jpg result
会把123.jpg自动识别并转换为txt文件到result.txt
但是此时中文识别不好
然后找到tessdata目录,把eng.traineddata替换为chi_sim.traineddata,并且把chi_sim.traineddata重命名为eng.traineddata
ok,现在中文识别基本达到90%以上了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com