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的Zato发送AMQP消息的教程
Apr 16 Python
详细解读Python的web.py框架下的application.py模块
May 02 Python
python查找指定具有相同内容文件的方法
Jun 28 Python
Python中的字典与成员运算符初步探究
Oct 13 Python
Python部署web开发程序的几种方法
May 05 Python
python爬虫中get和post方法介绍以及cookie作用
Feb 08 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
Mar 19 Python
python十进制和二进制的转换方法(含浮点数)
Jul 07 Python
python之cv2与图像的载入、显示和保存实例
Dec 05 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
Jun 19 Python
python字符串分割及字符串的一些常规方法
Jul 24 Python
pycharm实现print输出保存到txt文件
Jun 01 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定时计划任务与fsockopen持续进程实例
2014/05/23 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
一个JS翻页效果
2007/07/23 Javascript
Domino中运用jQuery读取视图内容的方法
2009/10/21 Javascript
JQuery实现表格中相同单元格合并示例代码
2013/06/26 Javascript
node.js中的fs.lchown方法使用说明
2014/12/16 Javascript
JavaScript中常见的字符串操作函数及用法汇总
2015/05/04 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
jQuery之简单的表单验证实例
2016/07/07 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
2016/09/20 Javascript
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
vue 做移动端微信公众号采坑经验记录
2018/04/26 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
JavaScript实现简单动态表格
2020/12/02 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
[01:34]2014DOTA2展望TI 剑指西雅图VG战队专访
2014/06/30 DOTA
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
Python网站验证码识别
2016/01/25 Python
Python 爬虫多线程详解及实例代码
2016/10/08 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
2017/12/09 Python
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
Python实现的计算马氏距离算法示例
2018/04/03 Python
Python global全局变量函数详解
2018/09/18 Python
python 的 openpyxl模块 读取 Excel文件的方法
2019/09/09 Python
Python对称的二叉树多种思路实现方法
2020/02/28 Python
详解CSS3阴影 box-shadow的使用和技巧总结
2016/12/03 HTML / CSS
The Athlete’s Foot新西兰:新西兰最大的运动鞋零售商
2019/12/23 全球购物
教育专业个人求职信
2013/12/02 职场文书
学校门卫工作职责
2013/12/07 职场文书
管事部库房保管员岗位职责
2014/02/21 职场文书
益达广告词
2014/03/14 职场文书
个人综合鉴定材料
2014/05/23 职场文书
保密工作目标责任书
2014/07/28 职场文书
食品安全承诺书范文
2014/08/29 职场文书
2016元旦主持人经典开场白台词
2015/12/03 职场文书
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python