python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法


Posted in Python onFebruary 26, 2020

1.安装Pillow

pip install Pillow

2.安装tesseract-ocr

github地址: https://github.com/tesseract-ocr/tesseract

或本地下载地址:https://3water.com/softs/538925.html

windows:

The latest installer can be downloaded here: tesseract-ocr-setup-3.05.01.exe and tesseract-ocr-setup-4.00.00dev.exe (experimental). 

ubuntu:

sudo apt-get install tesseract-ocr
traineddata文件路径: /usr/share/tesseract-ocr/tessdata/

3.安装pytesseract

pip install pytesseract

如不能使用pip直接安装可取搜索模块文件直接安装

遇到问题及解决:

1.FileNotFoundError: [WinError 2] 系统找不到指定的文件

解决办法:

方法1[推荐]: 将tesseract.exe添加到环境变量PATH中,

例如: D:\Tesseract-OCR,默认路径为C:\Program Files (x86)\Tesseract-OCR

注意: 为了使环境变量生效,需要关闭cmd窗口或是关闭pycharm等ide重新启动

方法2: 修改pytesseract.py文件,指定tesseract.exe安装路径

# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
tesseract_cmd = 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract.exe‘

方法3:  在实际运行代码中指定

pytesseract.pytesseract.tesseract_cmd = 'D:\\Tesseract-OCR\\tesseract.exe'

2.pytesseract.pytesseract.TesseractError: (1, 'Error opening data file \\Tesseract-OCR\\tessdata/eng.traineddata')

 解决方法:

方法1[推荐]: 

将tessdata目录的上级目录所在路径(默认为tesseract-ocr安装目录)添加至TESSDATA_PREFIX环境变量中

例如: C:\Program Files (x86)\Tesseract-OCR

Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory. 

方法2:  在.py文件配置中指定tessdata-dir

tessdata_dir_config = '--tessdata-dir "D:\\Tesseract-OCR\\tessdata"'
# tessdata_dir_config = '--tessdata-dir "'C:\\Program Files (x86)\\Tesseract-OCR\\tessdata"'
pytesseract.image_to_string(image, config=tessdata_dir_config)

trainedata下载地址: the latest from github.com

示例:

# -*-coding:utf-8-*- 
from PIL import Image 
import sys 
import os 
import pytesseract
from selenium import webdriver 
sys.path.append('C:\Python27\Lib\site-packages\pytesser') 
import pytesser 
url='http://192.168.24.189/system/code?0.6824490785056669' 
driver = webdriver.Firefox() 
driver.maximize_window() #将浏览器最大化 
driver.get(url) 
imgelement = driver.find_element_by_id('codeImg') #定位验证码 
location = imgelement.location #获取验证码x,y轴坐标 
size=imgelement.size #获取验证码的长宽 
rangle=(int(location['x']),int(location['y']),int(location['x']+size['width']),int(location['y']+size['height'])) #写成我们需要截取的位置坐标 
name="code.jpg"  
driver.find_element_by_id("codeImg").click() 
driver.save_screenshot(name) #截取当前网页,该网页有我们需要的验证码 
aa=Image.open(name) #打开截图 
frame4=aa.crop(rangle) #使用Image的crop函数,从截图中再次截取我们需要的区域 
frame4.save(name) 
im = Image.open(name)
#转化到灰度图
imgry = im.convert('L')
#保存图像
imgry.save('g'+name)
#二值化,采用阈值分割法,threshold为分割点
threshold = 140
table = []
for j in range(256):
  if j < threshold:
    table.append(0)
  else:
    table.append(1)
out = imgry.point(table, '1')
out.save('b'+name)
#识别
text = pytesseract.image_to_string(out)
#识别对吗
text = text.strip()
text = text.upper();
print (text)
text = pytesseract.image_to_string(Image.open('code.png'), lang="eng")
print(text)

 以上就是python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法的详细内容,更多关于python3 图片识别的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
Jul 20 Python
python 3.7.0 安装配置方法图文教程
Aug 27 Python
python使用pygame框架实现推箱子游戏
Nov 20 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
Dec 05 Python
对python:循环定义多个变量的实例详解
Jan 20 Python
python 处理telnet返回的More,以及get想要的那个参数方法
Feb 14 Python
详解Django+uwsgi+Nginx上线最佳实战
Mar 14 Python
python实现视频分帧效果
May 31 Python
Python中格式化字符串的四种实现
May 26 Python
Python基于httpx模块实现发送请求
Jul 07 Python
python3中数组逆序输出方法
Dec 01 Python
python实现对doc、txt、xls等文档的读写操作
Apr 02 Python
python解释器pycharm安装及环境变量配置教程图文详解
Feb 26 #Python
Python如何使用turtle库绘制图形
Feb 26 #Python
Python解释器以及PyCharm的安装教程图文详解
Feb 26 #Python
Python定时器线程池原理详解
Feb 26 #Python
python ImageDraw类实现几何图形的绘制与文字的绘制
Feb 26 #Python
Python列表解析操作实例总结
Feb 26 #Python
Python图像处理库PIL的ImageFilter模块使用介绍
Feb 26 #Python
You might like
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
jquery实现点击消失的代码
2014/03/03 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
JavaScript中的原型继承基础学习教程
2016/05/06 Javascript
JS快速实现移动端拼图游戏
2016/09/05 Javascript
浅谈jQuery添加的HTML,JS失效的问题
2016/10/05 Javascript
Angular中ng-options下拉数据默认值的设定方法
2017/06/21 Javascript
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
浅谈关于vue中scss公用的解决方案
2019/12/02 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
Python开发WebService系列教程之REST,web.py,eurasia,Django
2014/06/30 Python
Python实用日期时间处理方法汇总
2015/05/09 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
2018/11/21 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
解决python 文本过滤和清理问题
2019/08/28 Python
浅析matlab中imadjust函数
2020/02/27 Python
解决Python数据可视化中文部分显示方块问题
2020/05/16 Python
keras实现调用自己训练的模型,并去掉全连接层
2020/06/09 Python
浅谈Python xlwings 读取Excel文件的正确姿势
2021/02/26 Python
CSS3实战第一波 让我们尽情的圆角吧
2010/08/27 HTML / CSS
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
印尼值得信赖的在线交易网站:Bukalapak
2019/03/11 全球购物
Viking Direct荷兰:购买办公用品
2019/06/20 全球购物
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
学生会主席就职演讲稿
2014/01/14 职场文书
中文专业学生自我评价范文
2014/02/06 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
大学同学会活动方案
2014/08/20 职场文书
小学二年级班主任工作经验交流材料
2015/11/02 职场文书
bose降噪耳机音能消除人声吗
2022/04/19 数码科技
前端canvas中物体边框和控制点的实现示例
2022/08/05 Javascript