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 匹配任意字符(包括换行符)的正则表达式写法
Oct 29 Python
跟老齐学Python之从格式化表达式到方法
Sep 28 Python
python关键字and和or用法实例
May 28 Python
python通过cookie模拟已登录状态的初步研究
Nov 09 Python
用python 批量更改图像尺寸到统一大小的方法
Mar 31 Python
Python Xml文件添加字节属性的方法
Mar 31 Python
Python 实现大整数乘法算法的示例代码
Sep 17 Python
详解使用django-mama-cas快速搭建CAS服务的实现
Oct 30 Python
Python中join()函数多种操作代码实例
Jan 13 Python
python开发一个解析protobuf文件的简单编译器
Nov 17 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
Nov 17 Python
【超详细】八大排序算法的各项比较以及各自特点
Mar 31 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和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
2014/05/04 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
jQuery方法简洁实现隔行换色及toggleClass的使用
2013/03/15 Javascript
js网页版计算器的简单实现
2013/07/02 Javascript
Extjs NumberField后面加单位实现思路
2013/07/30 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
JavaScript中的console.time()函数详细介绍
2014/12/29 Javascript
深入理解Node.js 事件循环和回调函数
2016/11/02 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
JavaScript实现计数器基础方法
2017/10/10 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
动态加载、移除js/css文件的示例代码
2018/03/20 Javascript
使用RN Animated做一个“添加购物车”动画的方法
2018/09/12 Javascript
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
极简的Python入门指引
2015/04/01 Python
详解Python编程中基本的数学计算使用
2016/02/04 Python
Python简单格式化时间的方法【strftime函数】
2016/09/18 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
如何利用python生成MD5并去重
2020/12/07 Python
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
医药工作者的求职信范文
2013/09/21 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
三关爱志愿服务活动方案
2014/08/17 职场文书
社区党员志愿服务活动方案
2014/08/18 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
房产分割协议书范文
2014/11/21 职场文书
基于python实现银行管理系统
2021/04/20 Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python
Python实现拼音转换
2021/06/07 Python