Python OCR识别图片验证码(二)
来源:互联网 发布:知乎书店办公楼 编辑:程序博客网 时间:2024/06/07 11:46
操作系统:Windows
Python:3.5
欢迎加入学习交流QQ群:657341423
上节讲到验证码的简单识别
但对于一些复杂的验证码,我们需要做一些简单的图片处理才能识别。
例如,我要识别这些验证码:
设计思路:首先将图片变灰,然后转为RGBA,即四个通道,每个通道代表每种颜色,这个涉及到图片处理的一些基础知识。这个可以研究一下opencv。这个比较有意义。然后判断通道的颜色来转换成黑白色彩。便于OCR识别。
from PIL import Imagefrom PIL import ImageEnhancefrom PIL import ImageFilter import sysimport os import pytesseractfrom pyocr import tesseractimport timedef eachFile(filepath): pathDir = os.listdir(filepath) for allDir in pathDir: child = os.path.join('%s%s' % (filepath, allDir)) if "jpg" in child: jpgList.append(child)def OutCode(code): file=open(SettingFile+"data.txt",'w') file.write(code) file.close() print (code)# 黑白反色,白色替换 # 此处N直接为255 # 小于N的 被替换成黑色 # 大于等于N的 被替换成白色,255代表白色,0代表黑色if __name__=='__main__': while 1: SettingFile="D:\\" jpgList=[] eachFile(SettingFile) for i in jpgList: try: im = Image.open(i) im=im.convert('L')#图片转换为灰色图像 im=im.convert('RGBA')#图片转换成RGBA模式 pixdata = im.load() for y in range(im.size[1]): for x in range(im.size[0]): #循环图像里的每一个像素。每个像素为一个长度为4的列表。因为图片转换成RGBA模式,所以列表长度为4,A就是透明度 if pixdata[x,y][0]>170 and pixdata[x,y][1]>170 and pixdata[x,y][2]>170 and pixdata[x,y][3]>170: pixdata[x,y]=(255, 255, 255, 0) else: pixdata[x,y]=(0, 0, 0, 0) im.save("asa.jpg") #下面code与注释的code实现的功能一样 #code=pytesseract.image_to_string(im) code=tesseract.image_to_string(im) OutCode(code) os.remove(i) except Exception as e: code="Unrecognized" OutCode(code) os.remove(i) time.sleep(5)
这里我设计一个死循环,每隔五秒检测d盘下的jpg文件,然后输出识别后的结果。测试结果:
如图所示:asa.jpg为处理后的图片。然后给OCR识别。
当然,这个OCR识别永远都是有一定的准确率。这个是无法改变的。
阅读全文
1 0
- Python OCR识别图片验证码(二)
- Tesseract-OCR识别图片验证码
- 利用python pytesseract进行OCR(验证码识别)
- python pytesser tesseract-ocr 验证码识别
- OCR验证码识别
- ocr识别验证码
- python-OCR识别图片字符
- java 利用Tesseract-OCR识别图片验证码
- python使用tesseract-ocr完成验证码识别
- python 使用tesseract-ocr , pytesseract , PIL进行验证码识别
- python使用tesseract-ocr完成验证码识别
- python使用tesseract-ocr完成验证码识别
- python+pillow+pytesseract+Tesseract-OCR验证码识别
- python识别图片验证码
- python 图片验证码识别
- python识别图片验证码
- 无忧OCR验证码识别
- java 验证码识别 ocr
- 程序人生
- IE 不兼容 js indexOf 函数
- EditText 输入控制,用InputFilter过滤表情、特殊字符
- 据说大数据能解决“你妈是你妈”开证明笑话_你认同吗?
- Win7下如何挂载NFS共享目录
- Python OCR识别图片验证码(二)
- Java回调机制解读
- android h5混合开发(二)
- webpack 命令 前删除 dist 目录 重新生成
- redis集群配置
- 自定义Dialog
- 向网页中添加 HTML5 视频控件
- CSDN日报20170531 ——《这个架构能实现吗?》
- 基于Redis实现分布式锁