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合并文本文件示例
Feb 07 Python
python实现FTP服务器服务的方法
Apr 11 Python
[原创]pip和pygal的安装实例教程
Dec 07 Python
Python实现检测文件MD5值的方法示例
Apr 11 Python
python读取csv和txt数据转换成向量的实例
Feb 12 Python
对python中的float除法和整除法的实例详解
Jul 20 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
Aug 20 Python
python的scipy实现插值的示例代码
Nov 12 Python
jupyter notebook运行命令显示[*](解决办法)
May 18 Python
利用python控制Autocad:pyautocad方式
Jun 01 Python
Python经纬度坐标转换为距离及角度的实现
Nov 01 Python
Django集成富文本编辑器summernote的实现步骤
May 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+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
解析PHP中一些可能会被忽略的问题
2013/06/21 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
php实现微信发红包功能
2018/07/13 PHP
Linux下 php7安装redis的方法
2018/11/01 PHP
prototype1.4中文手册
2006/09/22 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
2011/08/15 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
详细总结Javascript中的焦点管理
2016/09/17 Javascript
微信小程序  自定义创建详细介绍
2016/10/27 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
JavaScript文件的同步和异步加载的实现代码
2017/08/19 Javascript
分析JS单线程异步io回调的特性
2017/12/01 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
Vue组件跨层级获取组件操作
2020/07/27 Javascript
JS代码简洁方式之函数方法详解
2020/07/28 Javascript
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
Python sys.path详细介绍
2013/10/17 Python
Python3 获取文件属性的方式(时间、大小等)
2020/03/12 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
2020/04/24 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
Pytorch之扩充tensor的操作
2021/03/04 Python
资生堂美国官网:Shiseido美国
2016/09/02 全球购物
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
专科毕业生学习生活的自我评价
2013/10/26 职场文书
公司会计岗位职责
2014/02/13 职场文书
点菜员岗位职责范本
2014/02/14 职场文书
小学毕业典礼演讲稿
2014/09/09 职场文书
政风行风评议工作总结
2014/10/21 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
MySQL中order by的使用详情
2021/11/17 MySQL
配置Kubernetes外网访问集群
2022/03/31 Servers