python3安装OCR识别库tesserocr过程图解


Posted in Python onApril 02, 2020

OCR简介

OCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程,对应图形验证码来说,它们都是一些不规则的字符,这些字符是由字符稍加扭曲变换得到的内容,我们可以使用OCR技术来讲其转化为电子文本,然后将结果提取交给服务器,便可以达到自动识别验证码的过程。

window环境

环境材料准备

  • Window10
  • Python-3.7.3.tgz
  • tesserocr安装包

安装tesserocr

1、打开链接,https://digi.bib.uni-mannheim.de/tesseract/,见下图。

python3安装OCR识别库tesserocr过程图解

下载最新版的tesseract-ocr-w64-setup-v5.0.0.20190623.exe,然后安装,本人直接安装在C盘目录下。安装完毕后,如下图。

python3安装OCR识别库tesserocr过程图解

配置环境变量,有两个步骤。

在系统变量里,修改path,如下图。

python3安装OCR识别库tesserocr过程图解

在系统变量里,创建一个新的变量名为:TESSDATA_PREFIX,值为:C:\Program Files\Tesseract-OCR\tessdata(根据自己安装的tesserocr安装路径为准),如下图。

python3安装OCR识别库tesserocr过程图解

检查Tesseract-OCR是否安装完成,如下图。

python3安装OCR识别库tesserocr过程图解

Python3.7加载tesserocr

1、安装Python的OCR识别库

pip install Pillow
pip install pytesseract

2、python加载Window的tesserocr应用,要修改pytesseract三方库的pytesseract.py脚本。
python3安装OCR识别库tesserocr过程图解

打开pytesseract.py,将Window的tesserocr应用的tesserocr.exe绑定好。

python3安装OCR识别库tesserocr过程图解

3、到这里Python的绑定window的tesserocr应用已经完成。

读取验证码图片

python3安装OCR识别库tesserocr过程图解

from PIL import Image
import pytesseract


def read_text(text_path):
  """
  传入文本(jpg、png)的绝对路径,读取文本
  :param text_path:
  :return: 文本内容
  """
  # 验证码图片转字符串
  im = Image.open(text_path)
  # 转化为8bit的黑白图片
  imgry = im.convert('L')
  # 二值化,采用阈值分割算法,threshold为分割点
  threshold = 140
  table = []
  for j in range(256):
    if j < threshold:
      table.append(0)
    else:
      table.append(1)
  out = imgry.point(table, '1')
  # 识别文本
  text = pytesseract.image_to_string(out, lang="eng", config='--psm 6')
  return text


if __name__ == '__main__':
  print(read_text("d://v3.png"))

输出:

python3安装OCR识别库tesserocr过程图解

读取中文文本图片

1、因为OCR读取不同语言需要加载语言包,因此需要下载简体中文语言包。
从这个链接下载:https://github.com/tesseract-ocr/tessdata,下载红圈的简体中文包。然后将此文件放置window的安装目录下。如下两个图。
python3安装OCR识别库tesserocr过程图解
python3安装OCR识别库tesserocr过程图解

现在,我们来读取如下图片的中文文本内容。

python3安装OCR识别库tesserocr过程图解

代码如下:

from PIL import Image
import pytesseract


def read_text(text_path):
  """
  传入文本(jpg、png)的绝对路径,读取文本
  :param text_path:
  :return: 文本内容
  """
  # 验证码图片转字符串
  im = Image.open(text_path)
  # 转化为8bit的黑白图片
  imgry = im.convert('L')
  # 二值化,采用阈值分割算法,threshold为分割点
  threshold = 140
  table = []
  for j in range(256):
    if j < threshold:
      table.append(0)
    else:
      table.append(1)
  out = imgry.point(table, '1')
  # 识别文本,lang参数改为chi_sim,其他代码与上面的读取验证码代码一致。
  text = pytesseract.image_to_string(out, lang="chi_sim", config='--psm 6')
  return text
if __name__ == '__main__':
  print(read_text("d://v7.png"))

python3安装OCR识别库tesserocr过程图解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python中的__init__和__new__
Mar 12 Python
Python常用小技巧总结
Jun 01 Python
Python随机生成手机号、数字的方法详解
Jul 21 Python
Python模块结构与布局操作方法实例分析
Jul 24 Python
Python有序字典简单实现方法示例
Sep 28 Python
python 实现矩阵按对角线打印
Nov 29 Python
基于Python的OCR实现示例
Apr 03 Python
python使用Thread的setDaemon启动后台线程教程
Apr 25 Python
python 数据分析实现长宽格式的转换
May 18 Python
基于python实现坦克大战游戏
Oct 27 Python
TensorFlow的环境配置与安装方法
Feb 20 Python
Python如何配置环境变量详解
May 18 Python
python简单的三元一次方程求解实例
Apr 02 #Python
Python 线性回归分析以及评价指标详解
Apr 02 #Python
Django REST framwork的权限验证实例
Apr 02 #Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
Apr 02 #Python
在 Pycharm 安装使用black的方法详解
Apr 02 #Python
Python Numpy中数据的常用保存与读取方法
Apr 01 #Python
Python PyQt5整理介绍
Apr 01 #Python
You might like
《超神学院》霸气归来, 天使彦上演维多利亚的秘密
2020/03/02 国漫
MyEclipse常用配置图文教程
2014/09/11 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
ThinkPHP框架实现FTP图片上传功能示例
2019/04/08 PHP
js event事件的传递与冒泡处理
2009/12/06 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
基于JavaScript实现 获取鼠标点击位置坐标的方法
2013/04/12 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
使用jQuery实现Web页面换肤功能的要点解析
2016/05/12 Javascript
JavaScript省市级联下拉菜单实例
2017/02/14 Javascript
Angular4学习笔记之根模块与Ng模块
2017/09/09 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
2017/12/22 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
jQuery实现动态加载select下拉列表项功能示例
2018/05/31 jQuery
vue实现form表单与table表格的数据关联功能示例
2019/01/29 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
2019/03/12 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
element-ui table组件如何使用render属性的实现
2019/11/04 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
Django中几种重定向方法
2015/04/28 Python
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
python如何爬取网站数据并进行数据可视化
2019/07/08 Python
Python 异步协程函数原理及实例详解
2019/11/13 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
用Python制作音乐海报
2021/01/26 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
大学生职业生涯规划书模板
2014/01/03 职场文书
给小学生的新年寄语
2014/04/04 职场文书
《九寨沟》教学反思
2014/04/08 职场文书
法学专业毕业实习自我鉴定2014
2014/09/27 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书
学习计划是什么
2019/04/30 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python
Python+Selenium实现读取网易邮箱验证码
2022/03/13 Python