验证码识别--type5

每一种验证码都是由人设计出来。在设计过程中,可能由于多个方面的原因,造成了这样或那样的可以被利用的漏洞。验证码识别,首先需要解决的问题就是发现这些漏洞--然后利用漏洞解决问题。
这个图片看上去很复杂,有空心字符、有粘连、有干扰线,但是为什么人在识别的时候不会出错?是因为主要字符是不同颜色的。而且设计者为了防止如果随机的话出现相近的颜色造成不能被识别的结果,于是选用了6种相互之间区别都比较大的颜色——并且只有这6种颜色。这就是切入口。
另一个方面,关于具体颜色的处理,我还真是弱项。如果过滤出特点的区域的颜色,是个问题。
一、判断相似颜色
即使是非常相似的颜色,也会被认为是不相同的,直接用RGB相比较,是不科学的。
最好的办法是有那种可以拖动的条来做这个东西的,按时目前也是能够做出一些效果来的。
if (r<50 || g>50 ||b>50) 红 也包括,镂空问题再考虑,我先把几个颜色分离出来,最好能够做出自动化的工具
首先是3元色
    if (b<50 || g>50 ||r>50) 
  if (g<50 || b>50 ||r>50)
 
然后是混合色    if (g>50    ) 紫色
 
 
橙色
现在应该是摸索出一套方法出来,应该可以有所使用
如果采用ps的话,其效果的确是更好一点。但是问题在于这里的颜色容差如何来算
通过带着问题来阅读,我修改代码
一方面,继续原有代码。对于三原色,采用盒式模型,而对于延伸的三色,采用球模型
结果应该说是很好了。问题主要出现在空心字符哪里,还有字符粘连那里。
二方面,hsi应该 是更直观的
但是效果不好,不知道为什么。还是采用RGB模型.
 
最后,经过相关的处理,只能得到这样的结果
 
下一步如何来做,一方面,还是需要通过先验知识--字的团块主要是在一起的。来做分析,把主要团块找出来,然后把这些缝隙连接起来。
做到目前这一步,非常关键的一个问题出现了:
图像分割要做到哪一步,才是可行的?此外,识别要到什么程度,才是有价值的。这几个问题都必须通过具体的识别的例子才能够得到结果。所以目前几个type的识别必须要继续再做一步。

验证码识别--type5的更多相关文章

  1. 字符型图片验证码识别完整过程及Python实现

    字符型图片验证码识别完整过程及Python实现 1   摘要 验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙 功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越 ...

  2. 验证码识别<1>

    1. 引子 前两天访问学校自助服务器()缴纳网费,登录时发现这系统的验证码也太过“清晰”了,突然脑袋里就蹦出一个想法:如果能够自动识别验证码,然后采用暴力破解的方式,那么密码不是可以轻易被破解吗? p ...

  3. 简单的验证码识别(opecv)

    opencv版本: 3.0.0 处理验证码: 纯数字验证码 (颜色不同,有噪音,和带有较多的划痕) 测试时间 :  一天+一晚 效果: 比较挫,可能是由于测试的图片是在太小了的缘故. 原理:  验证码 ...

  4. 利用开源程序(ImageMagick+tesseract-ocr)实现图像验证码识别

    --------------------------------------------------低调的分割线-------------------------------------------- ...

  5. 基于LeNet网络的中文验证码识别

    基于LeNet网络的中文验证码识别 由于公司需要进行了中文验证码的图片识别开发,最近一段时间刚忙完上线,好不容易闲下来就继上篇<基于Windows10 x64+visual Studio2013 ...

  6. Java验证码识别解决方案

    建库,去重,切割,识别. package edu.fzu.ir.test; import java.awt.Color; import java.awt.image.BufferedImage; im ...

  7. 简单验证码识别(matlab)

    简单验证码识别(matlab) 验证码识别, matlab 昨天晚上一个朋友给我发了一些验证码的图片,希望能有一个自动识别的程序. 1474529971027.jpg 我看了看这些样本,发现都是很规则 ...

  8. Python验证码识别处理实例(转载)

    版权声明:本文为博主林炳文Evankaka原创文章,转载请注明出处http://blog.csdn.net/evankaka 一.准备工作与代码实例 1.PIL.pytesser.tesseract ...

  9. 验证码识别--type2

    验证码识别--type2 终于来到了彩色图像,一定有一些特点 这里的干扰项是色彩不是很鲜艳的.灰色的线条,还有单独的干扰点,根据这些特性进行去除 直接ostu的话,有的效果好,有的效果不好   本来是 ...

随机推荐

  1. keil 编译的一些错误

    以前使用的是MDK4.5 但是没有stm32F3的元器件,果断的使用了4.6版本了.但是编译之后出现这样错误:linking....\Obj\prj.axf: Warning: L6373W: lib ...

  2. C++如何通过一个响应事件接受多个控件消息

    在空的Form里加个Button,写入void __fastcall TForm1::Button1Click(TObject *Sender){ for (long k=0; k<5; k++ ...

  3. UVa 10007 - Count the Trees(卡特兰数+阶乘+大数)

    题目链接:UVa 10007 题意:统计n个节点的二叉树的个数 1个节点形成的二叉树的形状个数为:1 2个节点形成的二叉树的形状个数为:2 3个节点形成的二叉树的形状个数为:5 4个节点形成的二叉树的 ...

  4. 【Origin】 碑铭

    快意人生潇洒过, 飘渺岁月不留痕: 他朝墓穴成青冢, 宁不留名念此生. -作于二零一五年六月十日

  5. STL lower_bound upper_bound binary-search

    STL中的二分查找——lower_bound .upper_bound .binary_search 二分查找很简单,原理就不说了.STL中关于二分查找的函数有三个lower_bound .upper ...

  6. Java基础(37):Java中日期的显示与格式定值----Date与SimpleDateFormat的试用

    使用 Date 和 SimpleDateFormat 类表示时间 在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类.这个类最主要的作用就是获取 ...

  7. Java基础(3):求任意数字的长度的三种方法

    题目:统计任意一个数字的长度 方法一:先把数字转换为字符换,再直接用现成的函数统计长度即可 方法二:用API public class Test { final static int[] sizeTa ...

  8. YbRapidSolution.Mvc判断不同用户登录不同页面

    AccountController.cs using System; using System.Collections.Generic; using System.Linq; using System ...

  9. html5新增全局属性

    data-* 如:data-type,data-role等 hidden  <div hidden></div> 隐藏该div spellcheck <textarea ...

  10. u盘安装centos

    1. 下载centos系统2. 使用UltraISO制作u盘启动.制作方法:http://jingyan.baidu.com/article/a378c960630e61b329283045.html ...