tesserocr与pytesseract模块的使用方法解析
1.tesserocr的使用
#从文件识别图像字符
In[7]:tesserocr.file_to_text('image.png')
Out[7]:'Python3WebSpider\n\n'
#查看tesseract已安装的语言包
In[8]:tesserocr.get_languages()
Out[8]:('/usr/share/tesseract/tessdata/',['eng'])
#从图片数据识别图像字符
In[9]:tesserocr.image_to_text(im)
Out[9]:'Python3WebSpider\n\n'
#查看版本信息
In[10]:tesserocr.tesseract_version()
Out[10]:'tesseract3.04.00\nleptonica-1.72\nlibgif4.1.6(?):libjpeg6b(libjpeg-turbo1.2.90):libpng1.5.13:libtiff4.0.3:zlib1.2.7:libwebp0.3.0\n'
2.pytesseract使用
功能:
- get_tesseract_version返回系统中安装的Tesseract版本。
- image_to_string将图像上的TesseractOCR运行结果返回到字符串
- image_to_boxes返回包含已识别字符及其框边界的结果
- image_to_data返回包含框边界,置信度和其他信息的结果。需要Tesseract3.05+。有关更多信息,请查看TesseractTSV文档
- image_to_osd返回包含有关方向和脚本检测的信息的结果。
参数:
image_to_data(image,lang=None,config='',nice=0,output_type=Output.STRING)
- imageobject图像对象
- langString,Tesseract语言代码字符串
- configString任何其他配置为字符串,例如:config='--psm6'
- niceInteger修改Tesseract运行的处理器优先级。Windows不支持。尼斯调整了类似unix的流程的优点。
- output_type类属性,指定输出的类型,默认为string。有关所有支持类型的完整列表,请检查pytesseract.Output类的定义。
fromPILimportImage
importpytesseract
#如果PATH中没有tesseract可执行文件,请指定tesseract路径
pytesseract.pytesseract.tesseract_cmd='C:\ProgramFiles(x86)\Tesseract-OCR\\tesseract.exe'
#打印识别的图像的字符串
print(pytesseract.image_to_string(Image.open('test.png')))
#指定语言识别图像字符串,eng为英语
print(pytesseract.image_to_string(Image.open('test-european.jpg'),lang='eng'))
#获取图像边界框
print(pytesseract.image_to_boxes(Image.open('test.png')))
#获取包含边界框,置信度,行和页码的详细数据
print(pytesseract.image_to_data(Image.open('test.png')))
#获取方向和脚本检测
print(pytesseract.image_to_osd(Image.open('test.png'))
图像识别简单应用
一般图像处理验证,需要通过对图像进行灰度处理、二值化后增加图像文字的辨识度,下面是一个简单的对图像验证码识别处理,如遇到复杂点的图像验证码如中间带多条同等大小划线的验证码需要对文字进行乔正切割等操作,但它的识别度也只有百分之30左右,所以得另外想别的办法来绕过验证
fromPILimportImage
importpytesseract
im=Image.open('66.png')
#二值化图像传入图像和阈值
deferzhihua(image,threshold):
''':typeimage:Image.Image'''
image=image.convert('L')
table=[]
foriinrange(256):
ifi
模拟自动识别验证码登陆:
#!/usr/bin/envpython
#-*-coding:utf-8-*-
#@Time:2018/7/138:58
#@Author:Py.qi
#@File:login.py
#@Software:PyCharm
fromseleniumimportwebdriver
fromselenium.common.exceptionsimportTimeoutException,WebDriverException
fromselenium.webdriver.common.byimportBy
fromselenium.webdriver.common.keysimportKeys
fromselenium.webdriver.support.uiimportWebDriverWait
fromselenium.webdriver.supportimportexpected_conditionsasEC
fromselenium.webdriver.remote.webelementimportWebElement
fromioimportBytesIO
fromPILimportImage
importpytesseract
importtime
user='zhang'
password='123'
url='http://10.0.0.200'
driver=webdriver.Chrome()
wait=WebDriverWait(driver,10)
#识别验证码
defacker(content):
im_erzhihua=erzhihua(content,127)
result=pytesseract.image_to_string(im_erzhihua,lang='eng')
returnresult
#验证码二值化
deferzhihua(image,threshold):
''':typeimage:Image.Image'''
image=image.convert('L')
table=[]
foriinrange(256):
ifi
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。