当前位置: 首页 > news >正文

濮阳网站建设 公司名字外包

濮阳网站建设 公司名字,外包,020网站建设,芜湖网站设计一、探讨识别图形验证码可以说是做爬虫的必修课,涉及到计算机图形学,机器学习,机器视觉,人工智能等等高深领域……简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算…

一、探讨

识别图形验证码可以说是做爬虫的必修课,涉及到计算机图形学,机器学习,机器视觉,人工智能等等高深领域……

简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。计算机涉及到的几何图形处理一般有 2维到n维图形处理,边界区分,面积计算,体积计算,扭曲变形校正。对于颜色则有色彩空间的计算与转换,图形上色,阴影,色差处理等等。

在破解验证码中需要用到的知识一般是 像素,线,面等基本2维图形元素的处理和色差分析。常见工具为:

•支持向量机(SVM)

•OpenCV

•图像处理软件(Photoshop,Gimp…)

•Python Image Library

二、PIL安装

PIL: Python Imaging Library, 是Python平台的图像处理标准库,功能非常强大。

在Debian/Ubantu Linux下直接通过apt安装:

$ sudo apt-get install python-imaging

Max和其他版本的Linux可以直接使用easy_install或pip安装,安装前需要把编译环境装好:

$ sudo easy_install PIL

三、一般思路

验证码识别的一般思路为:

1、图片降噪

2、图片切割

3、图像文本输出

3.1 图片降噪

所谓降噪就是把不需要的信息通通去除,比如背景,干扰线,干扰像素等等,只剩下需要识别的文字,让图片变成2进制点阵最好。

对于彩色背景的验证码:每个像素都可以放在一个5维的空间里,这5个维度分别是,X,Y,R,G,B,也就是像素的坐标和颜色,在计算机图形学中,有很多种色彩空间,最常用的比如RGB,印刷用的CYMK,还有比较少见的HSL或者HSV,每种色彩空间的维度都不一样,但是可以通过公式互相转换。在RGB空间中不好区分颜色,可以把色彩空间转换为HSV或HSL。色彩空间参见 http://baike.baidu.com/view/3427413.htm

验证码图片7039.jpg:

   referrerpolicy=

1、导入Image包,打开图片:

from PIL import Image

im = Image.open('7039.jpg')

2、把彩色图像转化为灰度图像。RBG转化到HSI彩色空间,采用I分量:

imgry = im.convert('L')

imgry.show()

灰度看起来是这样的:

   referrerpolicy=

3、二值化处理

二值化是图像分割的一种常用方法。在二值化图象的时候把大于某个临界灰度值的像素灰度设为灰度极大值,把小于这个值的像素灰度设为灰度极小值,从而实现二值化(一般设置为0-1)。根据阈值选取的不同,二值化的算法分为固定阈值和自适应阈值,这里选用比较简单的固定阈值。

把像素点大于阈值的设置,1,小于阈值的设置为0。生成一张查找表,再调用point()进行映射。

threshold = 140

table = []

for i in range(256):

if i 

table.append(0)

else:

table.append(1)

out = imgry.point(table, '1')

out.show()

处理结果看起来是这样的:

   referrerpolicy=

3.2 图片切割

识别验证码的重点和难点就在于能否成功分割字符,对于颜色相同又完全粘连的字符,比如google的验证码,目前是没法做到5%以上的识别率的。不过google的验证码基本上人类也只有30%的识别率。本文使用的验证码例子比较容易识别。可以不用切割,有关图片切割的方法参见这篇博客:http://www.cnblogs.com/apexchu/p/4231041.html

四、利用pytesser模块实现识别

pytesser是谷歌OCR开源项目的一个模块,在python中导入这个模块即可将图片中的文字转换成文本。

pytesser 调用了 tesseract。在python中调用pytesser模块,pytesser又用tesseract识别图片中的文字。

4.1 pytesser安装

2、安装pytesser,下载地址:http://code.google.com/p/pytesser/ ,下载后直接将其解压到项目代码下,或者解压到python安装目录的Lib\site-packages\下,并将其添加到path环境变量中,不然在导入模块时会出错。

3、下载Tesseract OCR engine:http://code.google.com/p/tesseract-ocr/  ,下载后解压,找到tessdata文件夹,用其替换掉pytesser解压后的tessdata文件夹即可。

4、另外如果现在都是从PIL库中运入Image,没有使用Image模块,所以需要把pytesser.py中的import Image改为from PIL import Image, 其次还需要在pytesser文件夹中新建一个__init__.py的空文件。

ps:如果觉得后面两步比较麻烦,可以直接到云盘中下载http://yun.baidu.com/s/1jHJvNiI,操作如步骤2。

4.2 调用pytesser识别

pytesser提供了两种识别图片方法,通过image对象和图片地址,代码判断如下:

from PIL import Image

from pytesser import pytesser

image = Image.open('7039.jpg')

print pytesser.image_file_to_string('7039.jpg')

print pytesser.image_to_string(image)

http://www.lbrq.cn/news/2789875.html

相关文章:

  • 河北网站建设报价google play下载官方版
  • 周口seo网站seo收费
  • 日照网站建设石家庄百度快照优化排名
  • 龙华网站建设凡科建站小程序
  • 广州 网站建设天津百度
  • 哈尔滨房产信息网官方网站谷歌搜索排名规则
  • 南京手机网站开发百度推广客户端app下载
  • 济南的网站建设公司哪家好科学新概念外链平台
  • wordpress国外简约主题成都优化网站哪家公司好
  • flash网站源文件镇江网络
  • 健康私人定制网站怎么做优化大师会员兑换码
  • 三渡网络推广培训整站seo技术搜索引擎优化
  • 学校做安全台账是哪个网站无锡网站制作优化
  • 网站备案查询不出来做电商需要什么条件
  • aspnet动态网站开发考试如何创建属于自己的网站
  • 手机网站模板更换方法淘宝关键词指数
  • 网站抓取qq网络推广工作
  • 钟情建网站公司哪里有免费的网站推广软件
  • 上海网站建设价位个人博客seo
  • 房地产网站模板库站长统计官方网站
  • cn网站建设多少钱攀枝花seo
  • 做网站推广什么好完整的社群营销方案
  • 买房子上哪个网站最好长沙百度提升排名
  • java网站开发教程流程今天重大新闻头条
  • 网站的全栈建设免费的自媒体一键发布平台
  • 公司微网站制作百度人工服务24小时热线电话
  • 制作网站的方法网络营销推广的概念
  • 济南 制作网站 公司自动app优化下载
  • p2p网站建设 上海seo费用价格
  • wordpress网站合并友情链接买卖代理
  • 【ElasticSearch】ElasticSearch Overview
  • MCP(模型上下文协议):是否是 AI 基础设施中缺失的标准?
  • 牛津大学xDeepMind 自然语言处理(2)
  • 低延迟、跨平台与可控性:直播SDK的模块化价值解析
  • Vue3 中使用 Element Plus 完整指南
  • 用户认证技术