文章插图
看到结果,只能说Amazing!60张图片居然识别出了65张,并且还有27张为未识别出文本的,这不是我想要的结果~先来简单看下问题出在哪里,看到“Vertigo Captcha Image.jpg"这张图名出现了两次,怀疑是在识别过程中由于被干扰,所以识别成两行文字输出了,这样就很好解释为什么多出来5张验证码图片了 。可是!为什么会有这么多未识别出文本呢,而且英文数字组成的验证码识别成中文了,看样子,不对验证码图片进行去干扰处理,仅靠OCR来识别的想法果然还是行不通啊 。那么接下来我们便使用图像处理的方法来重新识别验证码吧 。
还是介绍验证码时用的这张图

文章插图

文章插图
这张图也没能被识别出来,让人头秃 。接下来就对这张图片进行一定处理,看能不能让OCR正确识别
from PIL import Imagefilepath = 'D:******验证码图片AncientMosaic Captcha Image.jpg'image = Image.open(filepath)# 传入'L'将图片转化为灰度图像image = image.convert('L')# 传入'1'将图片进行二值化处理image = image.convert('1')image.show()这样子转化后再来看下图片变成什么样了?

文章插图
确实有些不同了,赶紧拿去试试能不能识别,还是失败了~~继续修改
from PIL import Imagefilepath = 'D:******验证码图片AncientMosaic Captcha Image.bmp'image = Image.open(filepath)# 传入'L'将图片转化为灰度图像image = image.convert('L')# 传入'l'将图片进行二值化处理,默认二值化阈值为127# 指定阈值进行转化count= 170table = []for i in range(256): if i < count: table.append(0) else: table.append(1 )image = image.point(table,'1')image.show()这里我将图片保存成了bmp模式,然后指定二值化的阈值,不指定的话默认为127,我们需要先转化原图为灰度图像,不能直接在原图上转化 。然后将构成验证码的所需像素添加到一个table中,然后再使用point方法构建新的验证码图片 。

文章插图

文章插图
现在已经识别到文字了,虽然我不知道为啥识别成了“珍”,分析之后发现是因为z我在设置参数设置了“language_type”为“CHN_ENG”,中英文混合模式,于是我修改成“ENG”英文类型,发现可以识别成字符了,但依然没有识别成功,尝试其他我所知道的方法后,我表示很无语,我决定继续尝试PIL库的其他方法试试 。
# 找到边缘image = image.filter(ImageFilter.FIND_EDGES)# image.show()# 边缘增强image = image.filter(ImageFilter.EDGE_ENHANCE)image.show()

文章插图
还是不能正确识别,我决定换个验证码试试 。。。。。。

文章插图
我找了这张带有阴影的
from PIL import Image,ImageFilterfilepath = 'D:******验证码图片CrossShadow2 Captcha Image.jpg'image = Image.open(filepath)# 传入'L'将图片转化为灰度图像image = image.convert('L')# 传入'l'将图片进行二值化处理,默认二值化阈值为127# 指定阈值进行转化count= 230table = []for i in range(256): if i < count: table.append(1) else: table.append(0)image = image.point(table,'1')image.show()简单处理后,得到这样的图片:

文章插图
识别结果为:

文章插图
识别成功了,老泪纵横!!!看样子百度OCR还是可以识别出验证码的,不过识别率还是有点低,需要对图像进行一定处理,才能增加识别的准确率 。不过百度OCR对规范文本的识别还是很准确的 。
那么与其他验证码相比,究竟是什么让这个验证码更容易被OCR读懂呢?
- 字母没有相互叠加在一起,在水平方向上也没有彼此交叉 。也就是说,可以在每一个字 母外面画一个方框,而不会重叠在一起 。
- 图片没有背景色、线条或其他对 OCR 程序产生干扰的噪点 。
推荐阅读
- Python 实现docx文件的读写操作
- 动态路由协议OSPF基础了解,作为信息管理人员必须了解的网络技术
- Python算法中的时间复杂度
- 茶产业发展基础在传统 突破在现代
- 物理化学|基础物理要推倒重写?科学家们爆了:标准模型出现最大BUG
- 时空旅行的悖论 时间旅行悖论解释的基础理论
- 淘宝开店攻略技巧 新手淘宝开店入门基础
- Nginx基础知识从小白到入门
- 用 Python 监控知乎和微博的热门话题
- 交换机最基本的配置,零基础学习下交换机基础配置,每天进步一点
