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:如何识别图片上的文字的更多相关文章

  1. 如何大批量的识别图片上的文字,批量图片文字识别OCR软件系统

    软件不需要安装,直接双击打开就可以用,废话不多说直接上图好了,方便说明问题 批量图片OCR(批量名片识别.批量照片识别等)识别,然后就下来研究了一下,下面是成果 使用步骤:打开单个图片识别,导入文件夹 ...

  2. 如何去除图片上的文字(PS使用教程)

    很多时候由于工作的需要,需要对我们的图片进行修改,修改的同时还想要保存我们的图片背景,所以很多人就不知道怎么弄了,小编跟大家分享一下使用PS如何简单的去掉图片上的文字,希望对大家有所帮助! 方法/步骤 ...

  3. C#图像处理(1):在图片上加文字和改变文字的方向

    C#在图片上加文字,代码如下: /// <summary> /// 图片上方加文字,文字将会被180度反转 /// </summary> /// <param name= ...

  4. c#实现识别图片上的验证码数字

    这篇文章主要介绍了c#实现识别图片上的验证码数字的方法,本文给大家汇总了2种方法,有需要的小伙伴可以参考下. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 ...

  5. C#实现图片叠加,图片上嵌入文字,文字生成图片的方法

    /// <summary>     /// 图片叠加     /// </summary>     /// <param name="sender"& ...

  6. python 图片上添加文字

    import PIL from PIL import ImageFont from PIL import Image from PIL import ImageDraw #设置字体,如果没有,也可以不 ...

  7. 使用Qpaint在图片上写文字

    开发过程中需要实现在图片上叠加文字,可以采用Qpaint在图片上写文字,然后将图片显示在上面.再将Qlabel加到Qwidget中.效果如下 //创建对象,加载图片 QPixmap pix; pix. ...

  8. 函数putText()在图片上写文字

    #include <iostream> #include <opencv2/opencv.hpp> using namespace std; using namespace c ...

  9. 把图片上的文字转换成word文字?

    转换后的文字不是很如意,但是免费方便. 1.打开Office办公软件自带的OneNote工具.随便新建一个笔记页面,以方便我们接下来的操作. 2.插入图片.在菜单栏里点击[插入],选择插入[图片],找 ...

随机推荐

  1. CentOS7 minimal下MySQL安装

    http://www.linuxidc.com/Linux/2016-12/137942.htm 首先要使用root用户登录 卸载: 1.卸载原有程序 yum remove mysql mysql-s ...

  2. CSS解决图片缩小不变形

    我会在图片上加: <img style="max-width:80px;max-height:80px;"> 限制其最大宽度和高度

  3. Excel表导出

     前言 分别介绍两种导出Exce表格的方法和读取Excel表格数据方法. 1.在MVC下的表格导出. 2.基于NPOI的表格导出. 3.读取Excel表格数据. 第一种方法:在MVC下的表格导出. 首 ...

  4. Egret微端 创建项目(一)

    开发环境: window7 egret engine:5.0.14 egret wing:4.1.0 微端:v0.0.14 官方教程:http://developer.egret.com/cn/git ...

  5. Imageview如何设置背景颜色

    ImageView.setBackgroundColor(android.graphics.Color.parseColor("#ffffff")); ImageView.setB ...

  6. js 实现table表格拖拽和点击表头升降序排序

    js 实现table表格拖拽和点击表头升降序排序,写的比较乱,用的时候可以把其中的一些模块函数提取出来 样式,由于是可拖拽表格,所以样式 table tr th{cursor:move;} js实现 ...

  7. Spring MVC静态资源访问

    最近在学习servlet的时候发现自己不能访问到css和js, 于是google一番学到不少方法加载,总结如下: 1.对于Spring MVC, 由于我们截获了所有请求<url-pattern& ...

  8. img元素的alt和title的区别?

    alt是图片加载失败时显示在网页上的提示信息: title是鼠标放上面时显示的文字(图片加载失败鼠标放显示的代替文字上时仍然会显示提示信息): 除此之外,alt是img的必要属性,只能用在img.ar ...

  9. Threaten Model

    探测(扫描器,情报搜集)--入侵(vul,exp)--潜伏(RATS,setmft,AFSET)--横向入侵(admin cert,RATS)---信息泄漏(vpn,rats,通讯通道)--删除踪迹( ...

  10. 多线程入门-第五章-线程的调度与控制之yield

    yield与sleep类似,只是不能指定暂停多长时间,并且只能让同优先级的线程有执行的机会,让位时间不固定. /* yield使用 */ public class ThreadTest04 { pub ...