Tesseract OCR

python使用tesseract-ocr完成验证码识别(模型训练和使用部分)

耗尽温柔 提交于 2020-08-10 07:37:28
一、Tesseract训练 大体流程为:安装jTessBoxEditor -> 获取样本文件 -> Merge样本文件 –> 生成BOX文件 -> 定义字符配置文件 -> 字符矫正 -> 执行批处理文件 -> 将生成的traineddata放入tessdata中 1、用jTessBoxEditor把要训练样本图片文件合并成tif文件(样本图片一定要为有效的格式图片) 运行jTessBoxEditor程序,界面如下: 点击顶栏的Tools选项,选择Merge TIFF.. 进入你要训练的样本图片所在的目录,点击Ctrl+Alt+A,选择所有图片点击打开: 然后保存文件名到指定目录,我这里保存的文件名为: langyp.font.exp0.tif 2、生成Box文件 打开cmd,到你langyp.font.exp0.tif文件所在目录,执行:   tesseract langyp.font.exp0.tif langyp.font.exp0 batch.nochop makebox 结果生成了 langyp.font.exp0.box 文件 3、 对样本图片用jTessBoxEditor工具进行矫正 点击jTessBoxEditor工具的Box Editor选项,点击下方的open选项,打开刚刚生成的langyp.font.exp0.tif文件,结果如下: 右侧为对应的Box文件数据

Python——验证码识别 Pillow + tesseract-ocr

拟墨画扇 提交于 2020-08-10 05:07:50
至于安装教程在这里不再重复说了,可以参考博客,网上有大把的教程 https://blog.csdn.net/testcs_dn/article/details/78697730 要是别的验证码是如下类型的         Python 代码如下 # !/usr/bin/python # -*- coding:utf-8 -*- from PIL import Image import pytesseract def recognize_captcha(img_path): im = Image.open(img_path).convert( " L " ) threshold = 140 table = [] for i in range(256 ): if i < threshold: table.append(0) else : table.append( 1 ) out = im.point(table, ' 1 ' ) num = pytesseract.image_to_string(out) return num if __name__ == ' __main__ ' : img_path = " D:\\1flower\\test2.jpg " res = recognize_captcha(img_path) strs = res.split( " \n " )

Windows下 训练Tesseract实现识别图片中的文字

白昼怎懂夜的黑 提交于 2020-05-08 21:07:36
介绍 Tesseract是一个基于Apache2.0协议开源的跨平台ocr引擎,支持多种语言的识别,在Windows和Linux上都有良好的支持. 源代码在这: 源码地址 有一个编译打包好的Windows安装包(里面带了官方训练好的英文库): Windows安装包下载tesseract-ocr-setup-4.00.00dev.exe 选装其它语言支持: 官方训练好的各种语言库 自己训练数据的工具jTessBoxEditorFX v2.0.1 官网是国外网站,下载速度非常慢,我打包了一个训练工具放在了CSDN(里面带了我准备的学习资源,如果你从官网下载,请自备资源): CSDN下载 官网下载 安装配置tesseract 安装命令行工具 下载来是一个这样的自解压文件,双击安装: 需要注意的是,有一步让选择添加语言支持的,是从国外网站下载文件的,慎选( 会卡很久,会卡很久,会卡很久 ) 安装包已经自带了英文数字识别的库,不用勾选! 配置环境变量 安装完后需要把安装目录添加到环境变量PATH里 另外:注意图中有个tessdata文件夹,这里面是放置训练结果的,之后自己训练的文件可以放到这里,如果下载别人的文件,也是放到这. 需要创建一个环境变量TESSDATA_PREFIX,内容为这个tessdata文件夹的路径. 注意: 环境变量有2个操作 解压训练工具

每天进步一点点-Tesseract 文字识别

China☆狼群 提交于 2020-05-02 19:33:52
Tesseract 文字识别 是github上的开源文字识别软件 下载与安装 https://github.com/tesseract-ocr/tesseract/wiki 下载 https://github.com/UB-Mannheim/tesseract/wiki 数据文件下载 https://github.com/tesseract-ocr/tesseract/wiki/Data-Files 需要添加环境变量 D:\GitHub2019\tesseract-ocr\ 返回的out.txt默认字符 utf8 训练字库下载 https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract-4.00 命令语法 https://github.com/tesseract-ocr/tesseract/blob/master/doc/tesseract.1.asc 前提条件: 1 在上面的地址下载安装tesseract 2 添加安装路径到windows环境变量 3 下载自己需要的语言库(官方已经训练好)到tessdata目录下 简单使用: 简单使用: tesseract [imagepath] [outputPath] -l [Language] [optional] 例如:tesseract C:\Users\ZR644

Python中利用Tesseract软件来识别图片中的英文与中文

做~自己de王妃 提交于 2020-05-02 19:33:28
OCR与Tesseract介绍     将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR)。可以实现OCR 的底层库并不多,目前很多库都是使用共同的几个底层OCR 库,或者是在上面进行定制。   Tesseract 是一个OCR 库,目前由Google 赞助(Google 也是一家以OCR 和机器学习技术闻名于世的公司)。Tesseract 是目前公认最优秀、最精确的开源OCR 系统。   除了极高的精确度,Tesseract 也具有很高的灵活性。它可以通过训练识别出任何字体(只要这些字体的风格保持不变就可以),也可以识别出任何Unicode 字符。 Tesseract的安装与使用     Tesseract的Windows安装包下载地址为: http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe ,下载后双击直接安装即可。安装完后,需要将Tesseract添加到系统变量中。在CMD中输入tesseract -v, 如显示以下界面,则表示Tesseract安装完成且添加到系统变量中。   识别简体中文,需要事先安装简体中文语言包,下载地址为:https://github.com/tesseract-ocr/tessdata

批量识别图中文字自动命名,让你1秒找到骚图

有些话、适合烂在心里 提交于 2020-04-27 11:09:40
自从上次批量的保存了半佛老师的各种骚图之后: 我用Python一键保存了半佛老师所有的骚气表情包 ,每次做视频,找图就相当的费劲,因为图片太多,每次想要找到固定的图的话。就像大海捞针一样。因为上个版本的代码保存图片是截取部分图片链接进行命名的,所以名称是随机的。 所以今天我准备对这些图片重新命名。按照表情包中的文字来命名。所以我得找到能够识别图片中文字的方法。基础的方法的话,那就需要安装图像处理相关的库,像 pillow、pytesser3、Tesseract-OCR 等等库。用这些库识别图片中的文字的成功率不是很高,所有我准备调用一下第三方的一些库。我看了一下百度有个文字识别的API接口。我们需要在下面地址注册应用。 https://ai.baidu.com/tech/ocr 我们在文字识别里面去创建一个应用,选择图片文字识别。 通用文字识别接口一天有5万次免费调用次数,对我们保存的几千多张的图片来说,绰绰有余了。 创建成功之后返回应用列表,我们可以看到刚刚创建的应用,有三个重要的参数,我们等下会用到 AppID、API Key、Secret Key。 我们就可以调用百度的这个识别图片文字的API接口库。我们首先需要安装这个baidu-aip库。 pip install baidu-aip 使用这个文字识别接口挑了几张图测试下效果: 总结下: 1、gif图片不识别,只能识别静态图

批量识别图中文字自动命名,让你1秒找到骚图

回眸只為那壹抹淺笑 提交于 2020-04-27 02:34:41
自从上次批量的保存了半佛老师的各种骚图之后: 我用Python一键保存了半佛老师所有的骚气表情包 ,每次做视频,找图就相当的费劲,因为图片太多,每次想要找到固定的图的话。就像大海捞针一样。因为上个版本的代码保存图片是截取部分图片链接进行命名的,所以名称是随机的。 所以今天我准备对这些图片重新命名。按照表情包中的文字来命名。所以我得找到能够识别图片中文字的方法。基础的方法的话,那就需要安装图像处理相关的库,像 pillow、pytesser3、Tesseract-OCR 等等库。用这些库识别图片中的文字的成功率不是很高,所有我准备调用一下第三方的一些库。我看了一下百度有个文字识别的API接口。我们需要在下面地址注册应用。 https://ai.baidu.com/tech/ocr 我们在文字识别里面去创建一个应用,选择图片文字识别。 通用文字识别接口一天有5万次免费调用次数,对我们保存的几千多张的图片来说,绰绰有余了。 创建成功之后返回应用列表,我们可以看到刚刚创建的应用,有三个重要的参数,我们等下会用到 AppID、API Key、Secret Key。 我们就可以调用百度的这个识别图片文字的API接口库。我们首先需要安装这个baidu-aip库。 pip install baidu-aip 使用这个文字识别接口挑了几张图测试下效果: 总结下: 1、gif图片不识别,只能识别静态图

ocr 连接开源项目

泄露秘密 提交于 2020-02-27 02:32:39
https://github.com/Raymondhhh90/idcardocr:web部署,第二代居民身份证信息识别,速度略慢,待优化 https://github.com/wzb19960208/idCardRecognition身份证识别 https://github.com/rmtheis/android-ocr基于Tesseract的身份证识别 https://github.com/developer79433/passport_mrz_detector_cpp护照识别 https://github.com/evilgix/Evil: 银行卡、身份证、门牌号光学识别 https://github.com/YCG09/chinese_ocr:基于Tensorflow和Keras实现端到端的不定长中文字符检测和识别 说明:样本有300万张 https://github.com/AstarLight/CPS-OCR-Engine:3755个(一级字库)的印刷体汉字识别 https://github.com/senlinuc/caffe_ocr:CNN+BLSTM+CTC的识别架构 https://github.com/simplezhli/Tesseract-OCR-Scanner:基于Tesseract-OCR实现自动扫描识别手机号 车牌识别 https://github

Python——验证码识别 Pillow + tesseract-ocr

岁酱吖の 提交于 2020-01-08 09:05:02
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 简介 图片验证码识别的可以分为几个步骤,一般用 Pillow 库或 OpenCV 来实现,这几个过程是: 灰度处理&二值化 降噪 字符分割 标准化 识别 灰度化:在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫做灰度值,因此,灰度图像每个像素值只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。 二值化:二值化可以把灰度图片转换成二值图像,把大于某个临界灰度值的像素灰度设置为灰度极大值,把小于这个值的像素灰度设为灰度极小值,从而实现二值化。 降噪就是把不需要的信息通通去除,比如背景,干扰线,干扰像素等等,只留下需要识别的字符,让图片变成2进制点阵,方便代入模型训练。 灰度处理: 灰度化:在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫做灰度值,因此,灰度图像每个像素值只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。 from PIL import Image # 用于打开图片和对图片处理 def img_to_gray(path): """ 图片转灰度 :param path: :return: """ img = Image.open(path) img = img.convert('L') #转灰度 img

使用Tesseract OCR Engine识别图片文字

你。 提交于 2019-12-06 09:15:54
目前有很多OCR工具或者类库都提供了准确率挺高的PDF和图片识别功能。在爬虫应用中,时常需要识别验证码或者目标站点处于数据保护而使用图片来替代直接的文本。除了直接的软件和类库外,还有一些在线工具可以直接识别,使用free online ocrGooglr可以搜索到下面这几个: http://www.onlineocr.net/ http://www.free-ocr.com/ http://www.ocrconvert.com/ https://www.newocr.com/ 众多的工具中,有个wiki页面做了比较详细的比较: 详细内容请参考Comparison_of_optical_character_recognition_software。 在众多软件中,Google出品的Tesseract口碑不错,有些人认为是所有OCR软件中准确率最高的,甚至比一些商业软件还高。Google的论文中给出了如下的准确度: Tesseract是C/C++写的库,但是很多语言都有相应的包装器(wrapper),具体请参考Tesseract的Github。 下面我们以Java的包装器tess4j为例说明: 首先添加maven依赖: <dependency> <groupId>net.sourceforge.tess4j</groupId> <artifactId>tess4j<