Python3.x:如何识别图片上的文字
Python3.x:如何识别图片上的文字
安装pytesseract库,必须先安装其依赖的PIL及tesseract-ocr,其中PIL为图像处理库,而后面的tesseract-ocr则为google的ocr识别引擎;
其中PIL可以用pillow来替代;
一、安装识别引擎tesseract-ocr
下载地址(解压安装):https://sourceforge.net/projects/tesseract-ocr/
这里需要注意这一段话:Currently, there is no official Windows installer for newer versions.意思就是官方不提供最新版windows平台安装包,只有相对略老的3.02.02版本,其下载地址:https://sourceforge.net/projects/tesseract-ocr-alt/files/。

环境变量配置(path):D:\Program Files (x86)\Tesseract-OCR
设置环境变量:TESSDATA_PREFIX=D:\Program Files (x86)\Tesseract-OCR\tessdata
打开DOS界面,输入tesseract,如下图则标示安装成功:

测试识别功能:
切换到图片的目录:cd \d E:\pydevworkspaces,然后输入tesseract tttt.png result(识别tttt.png结果写入result.txt文件中,输出文件在同级目录下):

tttt.png图片内容:

result.txt文件内容:

识别率貌似不高,第三个数字就识别出错了;
“tesseract OCR 训练样本” --可以提高识别率;
说明安装成功;
tesseract语法:
tesseract code.jpg result -l chi_sim -psm 7 nobatch -l chi_sim 表示用简体中文字库(需要下载中文字库文件,解压后,存放到tessdata目录下去,字库文件扩展名为 .raineddata 简体中文字库文件名为: chi_sim.traineddata) -psm 7 表示告诉tesseract code.jpg图片是一行文本 这个参数可以减少识别错误率. 默认为 3 configfile 参数值为tessdata\configs 和 tessdata\tessconfigs 目录下的文件名
二、安装第三方库(pytesseract、pillow)
#pytesseract安装
pip install pytesseract #Pillow 安装
pip install pillow
注意: 修改 pytesseract 的路径。
(1)路径:D:\Python36\Lib\site-packages\pytesseract\pytesseract.py
(2)修改内容:tesseract_cmd = 'D:/Program Files (x86)/Tesseract-OCR/tesseract.exe'
三、实例代码
# python3
# author lizm
# datetime 2018-01-26 12:00:00
'''
Demo:pytesseract解析图片上的文字
'''
import pytesseract
from PIL import Image
# 指定路径
# pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files/Tesseract-ORC/tesseract'
image = Image.open('tttt.png')
code = pytesseract.image_to_string(image)
print(code)
四、识别中文
1,增加中文库:chi_sim.traineddata
2,将中文库拷贝到:D:\Program Files (x86)\Tesseract-OCR\tessdata目录下
3,代码示例:
# python3
# author lizm
# datetime 2018-09-21 12:00:00
'''
Demo:pytesseract解析图片上的中文文字
'''
import pytesseract
from PIL import Image
code = pytesseract.image_to_string(Image.open('8.jpg'),lang='chi_sim')
print(code)
注意:chi_sim.traineddata必须和安装的tessdata的版本一致,才能生效。
Python3.x:如何识别图片上的文字的更多相关文章
- 如何大批量的识别图片上的文字,批量图片文字识别OCR软件系统
软件不需要安装,直接双击打开就可以用,废话不多说直接上图好了,方便说明问题 批量图片OCR(批量名片识别.批量照片识别等)识别,然后就下来研究了一下,下面是成果 使用步骤:打开单个图片识别,导入文件夹 ...
- 如何去除图片上的文字(PS使用教程)
很多时候由于工作的需要,需要对我们的图片进行修改,修改的同时还想要保存我们的图片背景,所以很多人就不知道怎么弄了,小编跟大家分享一下使用PS如何简单的去掉图片上的文字,希望对大家有所帮助! 方法/步骤 ...
- C#图像处理(1):在图片上加文字和改变文字的方向
C#在图片上加文字,代码如下: /// <summary> /// 图片上方加文字,文字将会被180度反转 /// </summary> /// <param name= ...
- c#实现识别图片上的验证码数字
这篇文章主要介绍了c#实现识别图片上的验证码数字的方法,本文给大家汇总了2种方法,有需要的小伙伴可以参考下. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 ...
- C#实现图片叠加,图片上嵌入文字,文字生成图片的方法
/// <summary> /// 图片叠加 /// </summary> /// <param name="sender"& ...
- python 图片上添加文字
import PIL from PIL import ImageFont from PIL import Image from PIL import ImageDraw #设置字体,如果没有,也可以不 ...
- 使用Qpaint在图片上写文字
开发过程中需要实现在图片上叠加文字,可以采用Qpaint在图片上写文字,然后将图片显示在上面.再将Qlabel加到Qwidget中.效果如下 //创建对象,加载图片 QPixmap pix; pix. ...
- 函数putText()在图片上写文字
#include <iostream> #include <opencv2/opencv.hpp> using namespace std; using namespace c ...
- 把图片上的文字转换成word文字?
转换后的文字不是很如意,但是免费方便. 1.打开Office办公软件自带的OneNote工具.随便新建一个笔记页面,以方便我们接下来的操作. 2.插入图片.在菜单栏里点击[插入],选择插入[图片],找 ...
随机推荐
- post 与get
GET:从服务器上获取数据,也就是所谓的查,仅仅是获取服务器资源,不进行修改. POST:向服务器提交数据,这就涉及到了数据的更新,也就是更改服务器的数据. 补充: PUT:PUT的英文含义是放置,也 ...
- 【BZOJ4146】[AMPPZ2014]Divisors
[BZOJ4146][AMPPZ2014]Divisors Description 给定一个序列a[1],a[2],...,a[n].求满足i!=j且a[i]|a[j]的二元组(i,j)的个数. In ...
- [SharePoint 2010] SharePoint 2010上多人同時編輯Office 2010文件
Office 2010這個版本,提供了一個令人興奮的新功能,那就是它可以讓多人同時編輯一份Office 2010的文件. 這是一個很大的突破. 以往在與SharePoint搭配下的分享環境,檔案只能被 ...
- Zabbix高可用
上一篇:Zabbix数据库表结构 安装两台Zabbix-server 两台均安装MySQL数据库 数据库做双主互相同步 keepalive做vip偏移 to_master.sh脚本 两边都要安装ssh ...
- hdu2094—看似拓扑实际上是一道思维题
HDU2094 产生冠军 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2094 题意:中文题,就不解释了.题意已经非常清楚了. 这道题的看起来像是一 ...
- PHP Version 7.0.13-0ubuntu0.16.04.1 mysql-server-5.7
https://zh.wikipedia.org/wiki/Linux发行版 一个典型的Linux桌面发行版包括一个Linux 内核,来自GNU的工具和库,和附加的软件.文档,还有一个窗口系统,窗口管 ...
- MySQL5.7安装手册
MySQL安装文档 1. 安装依赖包 yum install -y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc-c+ ...
- git学习------> Gitlab如何进行备份恢复与迁移?
前段时间,在某台CenterOS服务器上搭建了Gitlab环境,并且大家陆陆续续的都把代码从svn迁移到了gitlab,但是之前的CenterOS服务器并不是搭建在公司的机房环境,而是搭建在办公室的某 ...
- 初识Java集合框架(Iterator、Collection、Map)
1. Java集合框架提供了一套性能优良.使用方便的接口和类,它们位于java.util包中 注意: 既有接口也有类,图中画实线的是类,画虚线的是接口 使用之前须要到导入java.util包 List ...
- 使用paramiko的SFTP get或put整个目录
在<使用paramiko执行远程linux主机命令>中举例说明了执行远程linux主机命令的方法,其实paramiko还支持SFTP传输文件. 由于get或put方法每次只能传输一个文件, ...