在win10(64位)系统下实现python的文字识别功能
2017-11-14 12:59
661 查看
本文参考了https://www.cnblogs.com/syqlp/p/5462459.html,诚挚感谢
试验目标:用python27实现文字识别OCR功能
环境:win10(64位)
Python2.7.9
实现流程:
1. 安装pyocr
到https://pypi.python.org/pypi/pyocr/0.4.1下载pyocr-0.4.1.tar.gz
解压后,进入pyocr-0.4.1.tar.gz目录里执行下面的命令进行安装:
Python setup.py install
2. 安装PIL
针对win64位的PIL,到下面的网址下载 Pillow-2.1.0.win-amd64-py2.7.exe (md5) :
https://pypi.python.org/packages/2.7/P/Pillow/Pillow-2.1.0.win-amd64-py2.7.exe#md5=3abe747fbbcdba151e48255b96639b69 下载后选默认直接安装即可。
如果是32位系统,到http://www.pythonware.com/products/pil/index.htm下载安装
3. 安装tesseract-ocr
到下面网址下载:
http://jaist.dl.sourceforge.net/project/tesseract-ocr-alt/tesseract-ocr-setup-3.02.02.exe
下载后选默认直接安装。
4. 测试
测试代码如下:
#coding=utf-8
__author__ = 'syq'
#https://github.com/tesseract-ocr
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
try:
from pyocr import pyocr
from PIL import Image
except ImportError:
print '模块导入错误,请使用pip安装,pytesseract依赖以下库:'
print 'http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil'
print 'http://code.google.com/p/tesseract-ocr/'
raiseSystemExit
tools = pyocr.get_available_tools()[:]
if len(tools) == 0:
print("No OCR tool found")
sys.exit(1)
print("Using '%s'" %(tools[0].get_name()))
printtools[0].image_to_string(Image.open('D:\\123.png'),lang='eng')
print tools[0].image_to_string(Image.open('D:\\3434.png'),lang='chi_sim')
#printtools[0].image_to_string(Image.open('D:\\3535.png'),lang='chi_sim')
123.png
3434.png
运行结果:
c:\python27\python my_ocr_test.py
Using 'Tesseract (sh)'
7364
Traceback (most recent call last):
File"my_ocr_test.py", line 26, in <module>
printtools[0].image_to_string(Image.open('D:\\3434.png'),lang='chi_sim')
File "build\bdist.win-amd64\egg\pyocr\tesseract.py", line 322,in image_to_string
pyocr.tesseract.TesseractError:(-1073741819, '')
可见,英文可以正确识别,可是中文识别不了。
网上找到的解决方法如下:
1. 下载tesseract-ocr的中文库,地址:https://codeload.github.com/tesseract-ocr/tessdata/zip/master,里面包含tesseract所有的文字库,大约1.1G,chi_sim.traineddata为简体中文库,将该文件放至C:\ProgramFiles (x86)\Tesseract-OCR\tessdata目录下。
2. 控制台切换至C:\ProgramFiles (x86)\Tesseract-OCR\tessdata,使用命令行执行:
combine_tessdata -e chi_sim.traineddatachi_sim.config
执行完后,在目录下出现chi_sim.config的文件,打开该文件;
在allow_blob_division F这一行的前面加#,注释掉
即:#allow_blob_division F
然后,在执行命令行:
combine_tessdata -o chi_sim.traineddata chi_sim.config
到此在使用 chi_sim.traineddata文件就不会报read_params_file: parameternot found: allow_blob_division
当然,要使用上面的命令行,需要安装Tesseract-OCR
以上步骤摘自http://www.cnblogs.com/syqlp/p/5460971.html,不能正确执行。不知是不是系统版本的原因。
至此,文字识别,已实现了英文和数字的正确识别。
试验目标:用python27实现文字识别OCR功能
环境:win10(64位)
Python2.7.9
实现流程:
1. 安装pyocr
到https://pypi.python.org/pypi/pyocr/0.4.1下载pyocr-0.4.1.tar.gz
解压后,进入pyocr-0.4.1.tar.gz目录里执行下面的命令进行安装:
Python setup.py install
2. 安装PIL
针对win64位的PIL,到下面的网址下载 Pillow-2.1.0.win-amd64-py2.7.exe (md5) :
https://pypi.python.org/packages/2.7/P/Pillow/Pillow-2.1.0.win-amd64-py2.7.exe#md5=3abe747fbbcdba151e48255b96639b69 下载后选默认直接安装即可。
如果是32位系统,到http://www.pythonware.com/products/pil/index.htm下载安装
3. 安装tesseract-ocr
到下面网址下载:
http://jaist.dl.sourceforge.net/project/tesseract-ocr-alt/tesseract-ocr-setup-3.02.02.exe
下载后选默认直接安装。
4. 测试
测试代码如下:
#coding=utf-8
__author__ = 'syq'
#https://github.com/tesseract-ocr
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
try:
from pyocr import pyocr
from PIL import Image
except ImportError:
print '模块导入错误,请使用pip安装,pytesseract依赖以下库:'
print 'http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil'
print 'http://code.google.com/p/tesseract-ocr/'
raiseSystemExit
tools = pyocr.get_available_tools()[:]
if len(tools) == 0:
print("No OCR tool found")
sys.exit(1)
print("Using '%s'" %(tools[0].get_name()))
printtools[0].image_to_string(Image.open('D:\\123.png'),lang='eng')
print tools[0].image_to_string(Image.open('D:\\3434.png'),lang='chi_sim')
#printtools[0].image_to_string(Image.open('D:\\3535.png'),lang='chi_sim')
123.png
3434.png
运行结果:
c:\python27\python my_ocr_test.py
Using 'Tesseract (sh)'
7364
Traceback (most recent call last):
File"my_ocr_test.py", line 26, in <module>
printtools[0].image_to_string(Image.open('D:\\3434.png'),lang='chi_sim')
File "build\bdist.win-amd64\egg\pyocr\tesseract.py", line 322,in image_to_string
pyocr.tesseract.TesseractError:(-1073741819, '')
可见,英文可以正确识别,可是中文识别不了。
网上找到的解决方法如下:
1. 下载tesseract-ocr的中文库,地址:https://codeload.github.com/tesseract-ocr/tessdata/zip/master,里面包含tesseract所有的文字库,大约1.1G,chi_sim.traineddata为简体中文库,将该文件放至C:\ProgramFiles (x86)\Tesseract-OCR\tessdata目录下。
2. 控制台切换至C:\ProgramFiles (x86)\Tesseract-OCR\tessdata,使用命令行执行:
combine_tessdata -e chi_sim.traineddatachi_sim.config
执行完后,在目录下出现chi_sim.config的文件,打开该文件;
在allow_blob_division F这一行的前面加#,注释掉
即:#allow_blob_division F
然后,在执行命令行:
combine_tessdata -o chi_sim.traineddata chi_sim.config
到此在使用 chi_sim.traineddata文件就不会报read_params_file: parameternot found: allow_blob_division
当然,要使用上面的命令行,需要安装Tesseract-OCR
以上步骤摘自http://www.cnblogs.com/syqlp/p/5460971.html,不能正确执行。不知是不是系统版本的原因。
至此,文字识别,已实现了英文和数字的正确识别。
相关文章推荐
- win7,64位系统安装Tesseract和pytesseract,用python轻松实现中文识别,超全攻略!
- JAVA实现百度OCR文字识别功能
- python 实现网上商城,转账,存取款等功能的信用卡系统
- 使用shell和python分别实现简单菜单功能--打印当前系统状态信息
- win10 64位系统下 python2.7环境 scrapy的部署
- Android系统自带分享功能的实现(可同时分享文字和图片)
- Win10 64位系统下安装Python3及pip3
- Win10 64位系统下安装Python3及pip3
- python一些模块的exe安装包在windows的64位系统里识别不到已安装Python目录的解决方法
- 运用session实现系统身份识别功能
- Python django实现简单的邮件系统发送邮件功能
- 在HP6510B的FEDORA 8系统上实现指纹识别功能
- Python 40行代码实现人脸识别功能
- 用PythonPi实现门禁系统-功能实现
- Android系统自带分享功能的实现(可同时分享文字和图片)
- Android系统自带分享功能的实现(可同时分享文字和图片)
- JAVA实现百度OCR文字识别功能
- 64位win10系统中无法开启vmware的VT-X嵌套虚拟化功能的解决方法
- python在线神经网络实现手写字符识别系统
- Android系统自带分享功能的实现(可同时分享文字和图片)