如何训练pytesser提高二维码识别率识别率

你有看见我弄丢了的那只喵吗
> 造新轮子啦,让pytesser支持3.x啦~
曾经用2.x版本的Python写过一个小小的验证码识别小程序,不到三十行,用的是pytesser 但是pytesser仅仅支持2.x版本,因此我们需要将这个轮子改写为3.x,方便我们调用。
(等不及的小伙伴可以直接pip install pytesser3 即可完成轮子的安装)
0x01 改写的时候遇到的坑
很多2.x能用 而3.x不能用的情况发生,比如引用的包发生改变 (import PIL 改为from PIL import Image) print 改变 except 一些修改,改好了以后,才到了 这个傻逼包内置的tessract用不了的问题,你需要自己安装Google 的图像识别引擎:Tesseract OCR网上有exe安装包
我这里为了方便大家就提供一下。
pypi打包的坑,本文重点是这个。
这是我的目录大纲,一级是pytesser3 和一些readme setup.py文件 二级是__init__.py等py文件 ,不过还有一些其他的如图片文件 tif 字体文件,在二级目录还包含着 三级目录 等 那我是这么做呢可以看一下下面我的代码
from setuptools import setup, find_packages
name = 'pytesser3',
version = '1.0.1',
keywords = ('pytesser', 'support 3.x'),
description = 'modify and let it support 3.x',
license = 'MIT License',
install_requires = ['requests'],
author = 'LouisSong',
author_email = '',
packages = find_packages(),
package_data = {
# If any package contains *.txt files, include them:
'': ['*','tressdata/*],#看这里就好啦,就可以吧里面的都包含进来
# And include any *.dat files found in the 'data' subdirectory
# of the 'mypkg' package, also:
platforms = 'any',
123456789101112131415161718192021222324
from setuptools import setup, find_packages&setup(&&&&name = 'pytesser3',&&&&version = '1.0.1',&&&&keywords = ('pytesser', 'support 3.x'),&&&&description = 'modify and let it support 3.x',&&&&license = 'MIT License',&&&&install_requires = ['requests'],&&&&&author = 'LouisSong',&&&&author_email = '',&&&&&packages = find_packages(),&&&&package_data = {&&&&&&&&# If any package contains *.txt files, include them:&&&&&&&&'': ['*','tressdata/*],#看这里就好啦,就可以吧里面的都包含进来&&&&&&&&# And include any *.dat files found in the 'data' subdirectory&&&&&&&&# of the 'mypkg' package, also:&&&&},&&&&&&platforms = 'any',)
第二个坑,网上都喜欢一个二个的告诉我说 先去官网pypi注册一下,然后运行
python setup.py register
但是我运行了一会,就报错说需要byte like 不是str 请看源码 我本身就造了一个轮子心情好得很 我还要再造一个么肯定不行,那就换一个上传工具 我们先安装twine 然后运行一下代码即可
twine upload -r pypi dist/*
twine upload -r pypi dist/*
我自己测试了一下 可以用 pip install pytesser3,如图
同时内置code.py 检测这个轮子是否好用
需要注意的是,务必安装google的Tesseract OCR 最好默认安装 谢谢
另外:PIL这个坑自己去踩,谢谢~
源码地址:
期待你的star
转载请注明: &
or分享 (0)利用pytesser模块实现图片文字识别 - CSDN博客
利用pytesser模块实现图片文字识别
Pytesser——
pytesser是谷歌OCR开源项目的一个模块,在python中导入这个模块即可将图片中的文字转换成文本。
pytesser&调用了&tesseract。在python中调用pytesser模块,pytesser又用tesseract识别图片中的文字。
下面是整个过程的实现步骤:
1、首先要在下载pytesser。
这个是免安装的,可以放在python安装文件夹的\Lib\site-packages\ &下直接使用
pytesser里包含了tesseract.exe和英语的数据包(默认只识别英文),还有一些示例图片,所以解压缩后即可使用。
可通过以下代码测试:
注:该模块需要PIL库的支持。
2、解决识别率低的问题
可以增强图片的显示效果,或者将其转换为黑白的,这样可以使其识别率提升不少:
可以再对image2调用 image_to_string识别
3、识别其他语言
tesseract是一个命令行下运行的程序,参数如下:
tesseract &imagename outbase [-l &lang] &[-psm N] &[configfile...]
imagename是输入的image的名字
outbase是输出的文本的名字,默认为outbase.txt
-l &lang &是定义要识别的的语言,默认为英文
通过以下步骤可以识别其他语言:
(1)、下载其他语言数据包:
将语言包放入pytesser的tessdata文件夹下
接下来修改pytesser.py的参数,下面是一个例子:
这个是source里面提供的,其实若只要识别其他语言只要添加一个language参数就行了,下面是我的例子:
在调用image_to_string函数时,只要加上相应的language参数就可以了,如简体中文最后一个参数即为 chi_sim, 繁体中文chi_tra,
也就是下载的语言包的 XXX.traineddata 文件的名字XXX,如下载的中文包是 chi_sim.traineddata, 参数就是chi_sim :
至此,图片识别就完成了。
额外附加一句:有可能中文识别出来了,但是乱码,需要相应地将text转换为你所用的中文编码方式,如:
text.decode(&utf8&)就可以了
本文已收录于以下专栏:
相关文章推荐
背景:windows7,已安装python2.7,pip,pillow
需要安装:pytesser 和Tesseract,二者是互相依赖的。
因为是windows系统,安装费了好大劲儿,一直各种不...
环境搭建:
    Linux下安装python就不说了,这里主要说如何安装pytesser,PIL和Tesseract
    1.检查系统是否已经安装以下库:
    &...
Pytesser——OCR
in Python using the Tesseract engine from Google
pytesser是谷歌OCR开源项目的一个模块,在python中导入...
pytesser识别简单的数字和英文字母还好,复杂的以及中文都无法识别的。而且该模块需要PIL库的支持。
如果要识别其他语言,需要下载相应的语言数据包放入tessdata中,然后在调用image_to...
首先,安装Python2.7版本
然后,安装PIL工具,下载的地址是:/products/pil/,pytesser的使用需要PIL库的支持。
https://my.oschina.net/jhao104/blog/647326?fromerr=xJxwPW5X
一、探讨 
    识别图形验证码可以说是做爬虫的必修课,涉及到...
http://jaist.dl.sourceforge.net/project/tesseract-ocr-alt/tesseract-ocr-setup-3.02.02.exe
次文章仅仅是自己学习和复习自用,写的不好,请多多包涵
他的最新文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)利用python pytesser 识别简单验证码 - CSDN博客
利用python pytesser 识别简单验证码
最近在学python , 开始写点简单的爬虫小程序。真真感觉到python写爬虫软件很是简单。
但在写的过程中,也遇到了好多问题,有需要设置User-Agent的,有需要处理重定向,有需要设置cookies的等等。
在爬取一些需要验证的之类网站的数据时,验证码图片识别几乎是无法避免需要解决的问题。
楼主虽然是计算机专业的,但是对于图片识别算法之类的从来没有接触过。虽然可以搜索到许多的现成代码,但大部分都是需要定制的,例如有专门处理删除线图片的代码,专门去除噪点的代码等等。更是对一些高大上的算法,比如截图,二值化、中值滤波去噪、分割、紧缩重排(让高矮统一)、字库特征匹配识别等等两眼一抹黑。
在网上闲逛,发现了后来找到一个python OCR软件pytesser。只需要简单的一句代码就可以实现上面这种验证码的识别。但是这个插件并不支持所有的验证码识别,如果图片高低不等的话是无法实别出来的。太复杂的验证码也没办法实别。毕竟对于那种高端验证码,也不能指望一个类库就能解决问题 -_-
不过还是听起来很动人。于是开始动手捣鼓。查了下相关资料,发现这东西还挺复杂,有好多依赖。
PyTesser uses the Tesseract OCR engine, converting images to an accepted format and calling the Tesseract executable as an external script. A Windows&executable is provided along with the Python scripts. The scripts should work in other operating systems as
Dependencies
PIL is required to work with images in memory. PyTesser has been tested with Python 2.4 in Windows XP.
说是Pytesser使用了Tesseract OCR的识别引擎,而PIL则是用来处理装载到内存中的图片的。
那就是需要以下软件了呗:
pytesser &&
Tesseract OCR engine&
楼主使用的WIN7 64bit, 用的python2.7 32bit的
安装的是 tesseract-ocr-setup-3.02.02 , PIL-1.1.7.win32-py2.7 ,pytesser_v0.0.1
PIL和Tesseract是exe的文件,直接安装就可以了,而pytesser更是简单,直接解压到C:\Python27\Lib\site-packages中即可。
环境弄好以后,直接写两段代码试验一下吧!
from pytesser import *
im = Image.open('code.jpg')
textcode = image_to_string(im)
print textcode
对不同类型的验证码应该还可以调节一些参数什么的提高准确率的,这些就留给以后再说吧!
本文已收录于以下专栏:
相关文章推荐
https://my.oschina.net/jhao104/blog/647326?fromerr=xJxwPW5X
一、探讨 
    识别图形验证码可以说是做爬虫的必修课,涉及到...
Python爬虫之自动登录与验证码识别在用爬虫爬取网站数据时,有些站点的一些关键数据的获取需要使用账号登录,这里可以使用requests发送登录请求,并用Session对象来自动处理相关Cookie。...
——针对多线程的并发访问,任何一个数据库都有其锁定机制,它的优劣直接关系着数据的一致完整性与数据库系统的高并发处理性能。锁定机制也因此成了各种数据库的核心技术之一。不同数据库存储引擎的锁定机制是不同的...
1. Dubbo是什么?
 互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种...
前段时间系统老是出现insert死锁,很是纠结。经过排查发现是间隙锁!间隙锁是innodb中行锁的一种, 但是这种锁锁住的却不止一行数据,他锁住的是多行,是一个数据范围。间隙锁的主要作用是为了防止出现...
最近系统多次因对数据库锁使用不当引起问题,故从基础上学习一下mysql锁机制。
基本概念:
共享锁的代号是S,是Share的缩写,共享锁的锁粒度是行或者元组(多个行)。一个事务获取了共享锁之后...
锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数...
博客迁至https://zhangqibupt.github.io/博客迁至https://zhangqibupt.github.io/,该博客已不再更新.只是想换个心情。
他的最新文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 提高tess two识别率 的文章

 

随机推荐