使用tesserocr二值化识别知网登录验证码
- 随机获取了知网登录界面的三个图片验证码,测试 tesserocr 识别验证码的准确度
- 编写代码,先测试pic1
import tesserocr # 导入tesserocr模块
from PIL import Image # 导入图像处理模块img = Image.open('pic1.png')
code_result = tesserocr.image_to_text(img)
print('识别结果:', code_result)
- pic1识别结果:PEHK.
- 由于验证码图片中带有很多干扰线条,导致识别结果不准确(后面多一个点).
- 接下来,进行图片灰度测试看看能不能解决问题
import tesserocr # 导入tesserocr模块
from PIL import Image # 导入图像处理模块img = Image.open('pic1.png')
lim = img.convert('L') # 图片灰度化
img.show() # 打印图片
code_result = tesserocr.image_to_text(lim)
print('识别结果:', code_result)
- 测试结果:PEHK. 还是有个点
- 继续进行图片二值化
import tesserocr # 导入tesserocr模块
from PIL import Image # 导入图像处理模块
img = Image.open('pic1.png')
width = img.size[0]
lim = img.convert('L') # 图片灰度化
# img.show() # 打印图片threshold = 155 # 设置阈值
data = [] # 定义一个空列表,接收二值化数据
for i in range(0, 256):if i < threshold:data.append(0)else:data.append(1)bim = lim.point(data,'1') # 图片二值化
bim.show() # 打印二值化后的图片
code_result = tesserocr.image_to_text(bim)
print('识别结果:', code_result)
- 二值化结果:成功识别到验证码 【PEHK】
- 经过测试,pic2 以及 pic3 在二值化后都可以识别出来,如果二值化后还无法精确识别,则需要调整二值化阈值(threshold = 155)。关于图像二值化,参考
-遇到的【问题1】:tessdata路径报错
- 解决: tessdata的路径出错,找到tesseract安装路径,把tessdata文件夹复制一份到anaconda路径下面,例如:C:\ProgramData\Anaconda3\tessdata
-遇到的【问题2】:安装tesserocr模块失败
- 解决:参考我的另一篇博客(https://editor.csdn.net/md/?articleId=123265184)
使用tesserocr二值化识别知网登录验证码相关推荐
- java图像处理:灰度化,二值化,降噪,切割,裁剪,识别,找相似等
前段时间做爬虫,涉及到对图片验证码的破解,这里罗列一些常用的图像处理方法,都很简单并没用到什么复杂的算法,所以不涉及opencv,都是一些直接对rgb像素点的操作,很简单也很好理解,至于识别直接用的t ...
- Python-OpenCV 处理图像(六)(七)(八):对象识别 图像灰度化处理 图像二值化处理
为了加快处理速度,在图像处理算法中,往往需要把彩色图像转换为灰度图像. 0x00. 灰度图 灰度数字图像是每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗黑色到最亮的白色的灰度. 灰度图像与黑 ...
- matlab 二值化_基于MATLAB的指纹识别系统[GUI界面+万字技术文档+语音播报]
一.课题介绍 本设计为基于MATLAB的指纹识别系统.本设计系统主要对指纹图像进行三方面处理:图像预处理.特征提取和特征匹配.图像预处理包括四个步骤:图像灰度化.滤波增强.二值化.细化,对指纹图像进行 ...
- 数字识别java开源_Java基于opencv实现图像数字识别(三)—灰度化和二值化
Java基于opencv实现图像数字识别(三)-灰度化和二值化 一.灰度化 灰度化:在RGB模型中,如果R=G=B时,则彩色表示灰度颜色,其中R=G=B的值叫灰度值:因此,灰度图像每个像素点只需一个字 ...
- 车牌识别之预处理(灰度化,去噪,二值化,分割)
灰度化 灰度即R=G=B 二值化只取255 0 对图片进行灰度化处理,目的是 1 减少数据量 (减少不明显) 2 为二值化准备 对数据进行灰度发现数据量减少并不明显 尤其是 最大 和 平均 灰度法 权 ...
- opencv 车牌识别---新能源车牌处理(二值化后按位取反)
场景: 在对车牌号进行识别时,不能识别出新能源车牌的车牌号. 问题原因: 因为我们的识别模板都是黑底白字,新能源的车牌进行二值化处理后都是白地黑字. 模板: 新能源车牌原图(部分): 新能源车牌二 ...
- 基于堆栈二值化自动编码器和二值化神经的无约束人脸表情识别算法(An efficient unconstrained FERa based on BAEs and BNN)
摘要(abstract) 虽然深度学习在许多模式识别任务中都取得了良好的效果,但对于含有大量参数集.标记数据有限的深度网络,过拟合问题仍然是一个严重的问题.在这项工作中,二进制自动编码器(BAEs)和 ...
- FPGA|数字图像处理实现口罩识别——二值化
[写在前面]刚入门小菜鸟,记录一下口罩识别学习过程.参考文件和网址会在文末注明.有错误欢迎指出,也欢迎进行补充~ 原理图如下,二值化对应为红框里的部分 使用的二值化方法是手动指定一个阈值,通过阈值来进 ...
- 基于C++(QT)的车牌识别实现——二值化处理
文章目录 拟采用的技术路线 车牌图片打开 图片二值化 窗口UI实现 拟采用的技术路线 本次设计计划以最快的速度实现一个清晰车牌的识别,后续再增加识别精确度,故采取以下技术路线本篇文章主要讲述图像二值化 ...
最新文章
- The source attachment does not contain the source for the file Activity.class
- C语言 03-第一个C程序代码分析
- 【Qt for Android】OpenGL ES 绘制彩色立方体
- jolokia_使用WildFly 9和Jolokia监视DevOps样式
- 小公司如何选择合适的信息管理软件
- word2vec 数学原理
- XCodeGhost
- 怎么练字才会有效果,多久才能有体现
- joystick手柄驱动安卓_万能手柄驱动(PPJOY) 官方版 (图文)
- 巴特沃斯、切比雪夫、贝塞尔滤波器详解:(区别,特点,电路图)
- Navicat Premium 12安装包下载
- matlab神经网络原理应用实例pdf,MATLAB神经网络原理与实例精解
- 浅析export * from 与 export {default} from用法
- 【Android】Android 中定义图片的资源文件
- vs2017下配置Xamarin
- grpc-go 连接backoff协议
- 水果店的货源来自哪里,怎样做水果店找货源
- linux微信原生版2.1.5,优麒麟版重新打包,适用于debian内核系统
- 大数据开发方向分享:春招获蚂蚁金服、拼多多、华为(终端)、远景能源、华泰证券等offer
- Redis的安装及启动
热门文章
- 佛祖保佑永无Bug—— 最好用的注释插件
- 2021 第四届安洵杯 MISC wp
- 从车辆工程到大数据开发,我经历了什么?
- 设计模式(二) 访问者模式 Vistor
- 站群服务器金手指排名稳定,黑帽seo手法使用金手指:黑帽SEO,常见的SEO作弊手...
- oracle实例由,Oracle 数据库的实例由( )组成
- 解决win10系统不能打开.chm类型的文件
- 电脑配置低android模拟器,安卓模拟器低配置版哪个好 电脑内存再小也不怕
- h5/5+APP消息推送神器:Goeasy.js
- Java微信公众号开发之初步认识微信公众平台