图像识别-纯数字识别
来源:互联网 发布:lol从服务器接收数据 编辑:程序博客网 时间:2024/06/05 19:20
验证码识别的原理和过程
第一步: 二值化
所谓二值化就是把不需要的信息通通去除,比如背景,干扰线,干扰像素等等,只剩下需要识别的文字,让图片变成2进制点阵。
第二步: 文字分割
为了能识别出字符,需要对要识别的文字图图片进行分割,把每个字符作为单独的一个图片看待。
第三步:标准化
对于部分特殊的验证码,需要对分割后的图片进行标准化处理,也就是说尽量把每个相同的字符都变成一样的格式,减少随机的程度
最简单的比如旋转还原,复杂点的比如扭曲还原等等
第四步:识别
这一步可以用很多种方法,最简单的就是模板对比,对每个出现过的字符进行处理后把点阵变成字符串,标明是什么字符后,通过字符串对比来判断相似度。
在文章的后半部分会详细解释每步的各种算法
二值化实现方法有
1.1图像灰度化-中值滤波等,同时可以实现背景的去除
1.2图像灰度化-根据灰度值
1.3根据图像色系范围进行二值化处理
图像二值化的意思就是将图像的有效点给分离出来,然后将图片用0和1两个值进行表 示,因为我们没必要知道他们的具体色值,我们的目的就是要知道他们的具体形状,他们 的特征
譬如说淘宝的验证码,和盛大的验 证码, 他们的有效点无非就是U3FM和YPZ7等字符所占据的空间,我们不用管他们是黑色还是红色 ,我们将所有他们所占据的位置都给置为1,其他位置都给置为0
然后我将1的位置用黑色给画出来,0的位置用白色给画出来,就是和
1.2图像灰度化-根据灰度值
这种方式主要适用于对图片进行灰度化(转黑白)处理以后,图片的有效点和背景能 够通过他们的亮度很完美的给分离开的情况,譬如说17GAME的验证码经过灰度化处 理以后是,他的有效点的亮度为0,而背景都有一定的亮度,因此我们之类就可以采取根据亮度 值0-0的限度进行分离,凡是亮度为0的位置,我们都置为1,否则多置为0,这样验证码就 变为了 ,这样图片的二值化就处理成功了,其实17GAME的验证码我们也可以根据色值进行直接的 二值化,因为他的有效点的颜色为#00000,我们直接根据这个就可以直接二值化;
1.3根据图像色系范围进行二值化处理
譬如说有些图片他是全部采用了红色系,然后中间使用了渐变,这样我们可以通过获 取他们的色系范围,即R-G-B各自的取值范围,然后根据这个范围进行直接二值化,此方 法跟灰度化处理大同小异
1.1图像灰度化-中值滤波等,同时可以实现背景的去除
这个步骤为走向二值化的中间步骤,譬如说遇到稍微变态的图片,譬如说新浪博客 ,他含有 背景的杂色,我们就需要先对其进行灰度化处理,然后再根据 中值滤波算法对其进行二值化处理,将背景和前景分离开来,得到
基本经过这几种方式,我们就成功的对图片进行了二值化处理,得到了图片的有效位 置信息,接下来我们还要对其进行去噪,干扰线之类的
matlab:
读入的图像是rgb图像,要先转换成灰度图,阈值的选取有很多种方法,可以用灰度直方图,取谷点;
1、若想快速转变成二值图像则:
i=imread('tuxiang.jpg');
i1=rgb2gray(i);%i1灰度图像
i2=im2bw(i1);% i2是二值图像,不需要求阈值
2、如果你要找直方图谷点,可以imhist(i1)画出灰度直方图,然后观察出谷底,若想编程求谷点的我就不给你编了,不太难;
3、或者你可以自己设经验值
Imax=max(max(i1));
Imin=min(min(i1));
T=round(Imax-(Imax-Imin)/2);%我随便取的,但基本较为好用
i2=(i1)>=T;%i2是二值图像
imshow(i2)
- 图像识别-纯数字识别
- 数字识别--图像预处理(整个过程)
- 数字识别--图像预处理(整个过程)
- 数字识别--图像预处理(整个过程)
- 【详解】识别纯数字验证码
- 数字识别--图像预处理之准备(归一化)
- bmp 格式图像印刷体数字的识别
- bmp 格式图像印刷体数字的识别
- 图像基础21 手写数字识别
- 图像识别
- 图像识别
- 图像识别
- 图像识别
- 图像识别
- 图像识别
- 图像识别
- 图像识别
- 数字识别
- 绕过验证码,模拟登录 南理教务处
- CURL方法curl_setopt()函数的一些参数
- 牛客网刷题笔记--字符串
- busybox v1.22.1(debian 1:1.22.0-19) built-in shell(ash)解决方案
- 识别验证码API
- 图像识别-纯数字识别
- 浅谈:网站如何实现盈利的见解和技巧
- php图像处理
- Genealogical tree POJ
- 【高德地图API】如何解决坐标转换,坐标偏移?
- Android FTP 多线程断点续传下载\上传
- 获取GPS地球坐标
- Datagridaview使用
- BaseAdapter