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多进程操作实例
Nov 21 Python
python Django批量导入不重复数据
Mar 25 Python
python模拟Django框架实例
May 17 Python
Python 如何访问外围作用域中的变量
Sep 11 Python
centos6.7安装python2.7.11的具体方法
Jan 16 Python
Python之多线程爬虫抓取网页图片的示例代码
Jan 10 Python
从0开始的Python学习016异常
Apr 08 Python
python实现在cmd窗口显示彩色文字
Jun 24 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
May 22 Python
PHP基于phpqrcode类库生成二维码过程解析
May 28 Python
Python实现http接口自动化测试的示例代码
Oct 09 Python
基于OpenCV的网络实时视频流传输的实现
Nov 15 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
json的键名为数字时的调用方式(示例代码)
2013/11/15 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
最近项目写了一些js,水平有待提高
2009/01/31 Javascript
js实现二代身份证号码验证详解
2014/11/20 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
Highcharts使用简例及异步动态读取数据
2015/12/30 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
2016/08/08 Javascript
js设置文字颜色的方法示例
2016/12/30 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
jQuery模拟窗口抖动效果
2017/03/15 Javascript
Angular排序实例详解
2017/06/28 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
基于require.js的使用(实例讲解)
2017/09/07 Javascript
Vue添加请求拦截器及vue-resource 拦截器使用
2017/11/23 Javascript
微信小程序开发常见问题及解决方案
2019/07/11 Javascript
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
Linux下编译安装MySQL-Python教程
2015/02/02 Python
编写简单的Python程序来判断文本的语种
2015/04/07 Python
python实现二叉查找树实例代码
2018/02/08 Python
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
opencv python 图像去噪的实现方法
2018/08/31 Python
python异步实现定时任务和周期任务的方法
2019/06/29 Python
Python matplotlib实时画图案例
2020/04/23 Python
计算Python Numpy向量之间的欧氏距离实例
2020/05/22 Python
PyInstaller的安装和使用的详细步骤
2020/06/02 Python
台湾团购、宅配和优惠券:17Life
2017/08/14 全球购物
内部类的定义、种类以及优点
2013/10/16 面试题
工作自我评价分享
2013/12/01 职场文书
教师研修随笔感言
2014/01/23 职场文书
初中英语教学反思
2014/01/25 职场文书
职称评定自我鉴定
2014/03/18 职场文书
2015年初中生自我评价范文
2015/03/03 职场文书
庆七一晚会主持词
2015/06/30 职场文书
运动会200米广播稿
2015/08/19 职场文书
Java使用jmeter进行压力测试
2021/07/09 Java/Android
Python装饰器详细介绍
2022/03/25 Python