首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

教你python自动识别图文验证码的解决方案!

对于web应用程序来讲,处于安全性考虑,在登录的时候,都会设置验证码,验证码的类型种类繁多,有图片中辨别数字字母的,有点击图片中指定的文字的,也有算术计算结果的,再复杂一点就是滑动验证的。诸如此类的验证码,对我们的系统增加了安全性的保障,但是对于我们测试人员来讲,在自动化测试的过程中,无疑是一个棘手的问题。 1、web自动化验证码解决方案 一般在我们测试过程中,登录遇到上述的验证码的时候,有以下种解决方案: 第一种、让开发去掉验证码 第二种、设置一个万能的验证码 第三种、通过cookie绕过登录 第四种、自动识别技术识别验证码 2、自动识别技术识别验证码 前三种解决方案,想必大家都比较了解,本文重点阐述第四种解决方案,也就是验证码的自动识别,关于验证码识别这一块,可以通过两个方案来解决, 第一种是:OCR自动识别技术, 第二种是:通过第三方打码平台的接口来识别。 OCR识别技术 OCR中文名称光学识别, tesseract是一个有名的开源OCR识别框架,它与Leptonica图片处理库结合,可以读取各种格式的图像并将它们转化成超过60种语言的文本,可以不断训练自己的识别库,使图像转换文本的能力不断增强。如果团队深度需要,还可以以它为模板,开发出符合自身需求的OCR引擎。那么接下来给大家介绍一下如何使用tessract来识别我们的验证码。 关于OCR自动识别这一块,需要大家安装Tesseract,并配置好环境,步骤如下 1)、安装tesseract 适用于Tesseract 3.05-02和Tesseract 4.00-beta的 Windows安装程序下载地址:github.com/UB-Mannheim… 2)、加入培训数据 tesseract 默认只能识别英文,如果您想要识别其他语言,则需要下载相应的培训数据 下载地址:github.com/tesseract-o… 下图为中文数据包 我们只做中文,暂时下载一个中文的文字训练数据就可以 ,然后将.traineddata文件复制到安装之后的’tessdata’目录中。C:\OCR\Tesseract-OCR\tessdata 3)、配置环境变量 要从任何位置访问tesseract-OCR,您可能必须将tesseract-OCR二进制文件所在的目录添加到Path变量中C:\OCR\Tesseract-OCR。 安装后tesseract之后 ,并不能直接在python中使用,我们要想在python中使用,需要安装pytesseract模块我们可以通过 pip 安装 pip install pytesseract python中识别验证码图片内容 安装好后。找一张验证码图片,如下图(命名为test.jpg),放在当前python文件同级目录下面, 使用 PIL中的Image中的open方法打开验证码图片,调用pytesseract.image_to_string方法,可以识别图片中的文字,并且转换成字符串,如下面代码所示。 import pytesseract from PIL import Image pic = Image.open(‘test.jpg’) pic 为打开的图片,lang指定识别转换的语言库 text = pytesseract.image_to_string(pic,lang=‘chi_sim’) print(text) 通过上述方法能识别简单的验证码,但是存在一定的问题,识别的精度不高,对于一些复杂一点,有干扰线的验证码无法正确识别出结果。 接下来给大家介绍一下第二种识别的方案,第三方的打码平台识别 打码平台识别验证码 第三方的打码平台相对于OCR来讲,优势在于识别的精准度高,网络上的第三方打码平台很多,百度随便一搜就有几十个,这个给大家列举几个,如下所示: 网络上的第三方打码平台众多,这里小编选择超级鹰这个第三方的平台来给大家做演示。 首先登录我们需要注册登录超级鹰这个网站 www.chaojiying.com,进入之后我们找到python对应的开发文档并下载, 下载开发文档 下载之后解压缩,得到如下文件 第三方打码平台的接口分析 我们打开chaojiying.py这个文件后,会发现这个文件中给出了的接口非常简单,如下所示 首先第一步创建一个用户对象:三个参数(账号,密码,软件ID),账号密码就是该网站的账号密码,那么软件ID呢?软件ID我们可以在用户中心找到软件ID,然后进去点击生成一个软件ID(如下图), 第二行代码就是打开一个要识别的验证码图片,并读取内容, 第三行,调用PostPic方法识别验证码,两个参数(验证码图片内容,验证码类型),关于验证码类型,请参考该网站的价格体系(如下图),根据验证码类型选择对应的数值传入。 结果提取: PostPi

01

CIS相机在工业AOI的应用和发展

随着现代工业制造技术发展,对产品的品质控制以及自动化生产的要求越来越高,机器视觉作为一项新兴的工业自动化技术在各行各业得到了广泛应用。机器视觉的主要功能为:作为自动化系统的“眼睛”,替代人工进行产品的识别、定位、缺陷检查、运动引导等工作,在高速流水线、危险环境、高重复性动作、高精密度检查等人力越来越难以胜任的场合发挥着重要作用。 作为机器视觉技术中非常重要的一个分支,自动光学检测(AOI,Automatic Optical Inspection)在工业化领域得到广泛应用,已成为现代制造业的必备环节,其克服了人工检查个体差异大、稳定性差(疲劳度与外界因素影响)、效率低下、重复性差等缺点,为制造业的产品质量控制与制造水平提升发挥着越来越大的作用。线阵扫描AOI技术的发展与现代化制造水平密切相关,伴随着光电成像技术发展不断在各个领域得到深入应用。1969年美国贝尔实验室的Willard S. Boyle和George E. Smith发明了CCD(Charge-coupled Device,电荷耦合器件)技术,实现了感应光线并将图像转变成数字信号的功能。有几家公司接续此一发明,包括快捷半导体(Fairchild Semiconductor)、美国无线电公司(RCA)和德州仪器(Texas Instruments)。快捷半导体的产品率先上市,于1974年发表500单元的线阵传感器和100×100像素的面阵传感器。随着线阵传感器的产品化,基于该技术的工业AOI技术迅速发展,在1975年便实现了商用化的设备。随后,在欧美与日本等发达国家,基于线阵平台的AOI技术蓬勃发展,在各个行业得到了广泛应用。 CIS(Contact Image Sensor,接触式图像传感器),是继线阵CCD、CMOS技术之后发展完善的一类新型光电成像传感器。其将柱状透镜(Rod Lens,如图1-1)、LED阵列光源、感光元件阵列、信号放大电路集于一体,由光源发出的光线经被扫描物反射后,通过柱状透镜投射聚焦于感光元件阵列,由感光元件阵列将光信号转化为电信号并经信号放大电路进行放大输出,经后端处理后直接形成扫描对象的完整影像。CIS工作原理如图1-2所示。由于CIS的整体集成性(省去了传统成像方式的光学镜头),传感器体积可有效控制,在设备便携性、安装调试、整体集成方面相比传统的“CCD/CMOS+光学镜头”方式优势明显,可见图1-3;采用LED光源阵列可有效控制设备功耗,使用寿命长,且无需预热;采用柱状透镜实现物体与感光元件1:1成像,无传统光学透镜的像场几何畸变,对物体高质量还原,在成像质量上优势明显[12]。CIS图像传感器最早被用于传真机、扫描仪等商用设备,随着技术进步发展,在金融机具、医疗设备、工业检测装备领域已得到越来越广泛的应用,具体应用领域如下表所示。需要说明的是,CIS图像传感器在工业领域针对平面产品(如玻璃、橡胶、薄膜等行业)的自动光学检测方面具有巨大的应用空间。

05
领券