接前文,讲讲具体怎么去噪。

先看例子

这是sina投票的验证码:

去噪处理后:

计算起来其实很简单,算法其实没什么好说的。简单的一句话,判断每个点是否是孤立点,如果是孤立点就把它去掉。孤立点的判断就是计算这个点上下左右的8个点是否是有效像素。然后看看有效像素的个数小于某个值k就认为是孤立点:

inline GETCOLORARROUND(CxImage& img, int a1, int a2, int& q, int x, int y, int xmin, int xmax, int ymin, int ymax) {

int x1, y1;

x1 = x + a1; y1 = y + a2;

if (x1 >= xmin && x1 < xmax && y1 >= ymin && y1 < ymax)

{

RGBQUAD c = img.GetPixelColor(x1, y1);

if (RGB2GRAY(c.rgbRed, c.rgbGreen, c.rgbBlue) != 255)

q++;

}

}

void C1(CxImage& img, int k)

{

CxImage tmp(img, true, true, true);

long xmin, ymin, xmax, ymax;

xmin = ymin = 0;

xmax = img.GetWidth(); ymax= img.GetHeight();

RGBQUAD bk;

bk.rgbBlue = 0xff;

bk.rgbGreen = 0xff;

bk.rgbRed = 0xff;

bk.rgbReserved = 0xff;

for(long y=ymin; y

for(long x=xmin; x

int q = 0;

GETCOLORARROUND(img,1, 1, q, x, y, xmin, xmax, ymin, ymax);

GETCOLORARROUND(img,1, -1, q, x, y, xmin, xmax, ymin, ymax);

GETCOLORARROUND(img,1, 0, q, x, y, xmin, xmax, ymin, ymax);

GETCOLORARROUND(img,0, 1, q, x, y, xmin, xmax, ymin, ymax);

GETCOLORARROUND(img,0, -1, q, x, y, xmin, xmax, ymin, ymax);

GETCOLORARROUND(img,-1, 1, q, x, y, xmin, xmax, ymin, ymax);

GETCOLORARROUND(img,-1, -1, q, x, y, xmin, xmax, ymin, ymax);

GETCOLORARROUND(img,-1, 0, q, x, y, xmin, xmax, ymin, ymax);

if (q < k) {

tmp.SetPixelColor(x,y,bk);

}

}

}

img.Transfer(tmp);

}

上面的C1函数就是去掉指定了k值的噪音点,但是如果用k=3调用或者k=4调用,效果都不理想

但是像这样子调用

void convert(CxImage& img)

{

C1(img, 4);

C1(img, 3);

C1(img, 4);

C1(img, 3);

}

一下子就去掉了原图周围的黑边框,杂点,和线。

对吧,实际算法太简单了,只要愿意去想,就能有意想不到的效果。

更多例子稍后就给出

分享到:

2006-12-07 22:18

浏览 709

评论

java验证码去噪_论坛灌水机(续三 -- 验证码图形去噪)相关推荐

  1. 论坛灌水机(续三 -- 验证码图形去噪)

    接前文,讲讲具体怎么去噪 . 先看例子 这是sina投票的验证码: 去噪处理后: 计算起来其实很简单,算法其实没什么好说的.简单的一句话,判断每个点是否是孤立点,如果是孤立点就把它去掉.孤立点的判断就 ...

  2. 论坛灌水机 Delphi代码

    本来以为网页里的edit,memo等都和程式里的相同,能够用句柄来控制,但后来才明白,他是不存在句柄的! 查了好久,前几天看到一个关于QQ自动申请的例子.主要就是控制网页各种操作的!总结了一下,做出一 ...

  3. 论坛灌水机与注册机问题

    话题起头比较大,说明一下,写这篇的起因,论坛最近经常被新用户发布一些不相关的帖子,也没有一定的规律, 而基本都是新注册的用户,还都绑定手机的,起初我们用的是短信验证码,查了一下几天注册的手机号全都是批 ...

  4. 论坛灌水机(续二--验证码)

    实际上,开发验证码是一件并不讨好的事情.在国外的论坛上,人家给出的权威验证码识别解决方案是:去雇用低能者,让他们人工填写验证码 .理论依据是:验证码技术的目标就是让低能者都能认识的东西,计算机识别起来 ...

  5. java 图片爬虫_论坛图片爬虫的一种实现

    1背景 经常上贴图的论坛(Discuz!),每次打开帖子的时候,由于帖子的图片太多,每次都要等不少时间才能看到所有的图片,比较麻烦:同时经常会打开看过的帖子.为了解决这个问题,写了个小爬虫,定期把最新 ...

  6. java登录代码带验证码实现_两种方法实现带验证码的用户登录

    带验证码的登录效果图 登录成功时,记录用户名和访问次数 登录失败,弹出错误提示 方法一:应用request对象获取表单数据实现登录操作 代码结构: index.jsp源码及详解: 当表单被提交时,数据 ...

  7. 小米论坛顶贴机,小米顶贴机,小米论坛灌水机,小米社区顶贴小助手,免费绿色版!...

    下载地址:http://pan.baidu.com/share/link?shareid=7540&uk=4043470375 -------------------------------- ...

  8. java oracle管理系统_哔站播放量高达三百万的Java视频教程,如此惊人,还不来学?...

    "Java Planform Standard Edition"是Java语言的标准平台技术,是所有Java开发的语言基础,更是大数据.分布式开发思想建模的初期,此阶段的Java语 ...

  9. java reduce 分组_使用JAVA8 stream中三个参数的reduce方法对List进行分组统计

    背景 平时在编写前端代码时,习惯使用lodash来编写'野生'的JavaScript; lodash提供来一套完整的API对JS对象(Array,Object,Collection等)进行操作,这其中 ...

最新文章

  1. java socket/Serversocket编程详解(中/英文)
  2. MetInfo最新版代码审计漏洞合集
  3. 模板:k短路(可并堆)
  4. linux 用户、群组及权限操作
  5. DM框架中CString/CStringW 转 double (c++通用)
  6. NetBeans 时事通讯(刊号 # 67 - Aug 04, 2009)
  7. Java线程并发与安全性问题详解
  8. 微信小游戏是个人尝试做游戏最好的选择
  9. [ffmpeg] 视频码率压缩
  10. luogu p1330封锁阳光大学
  11. 常用类(API)第一节
  12. TopFreeTheme精选免费模板【20130827】
  13. AAAI2020论文列表(中英对照)
  14. OPPOReno4SE和华为畅享20 哪款好
  15. 查看服务器配置以及常用命令
  16. kafka如何选择分区数及kafka性能测试
  17. Android ocr识别文字介绍(文字识别)
  18. 正面管教php_正面管教php_我校开展正面管教家长工作坊分享会
  19. php sae,GitHub - ytf606/sae-weiphp: 基于SAE平台weiphp CMS系统
  20. 光纤收发器的原理及应用_浅析光纤收发器的原理与分类

热门文章

  1. Cena评测系统在win10中测评cpp程序
  2. Appium搭建MacOS环境下的iOS App自动化测试环境(Windows搭个MacOS虚拟机就行,亦无须iPhone)
  3. 从RDA5981A/B/C编译后map文件和datasheet分析内存分配情况
  4. 【云原生】第十篇--Docker主机集群化方案 Docker Swarm
  5. 正弦波逆变器c语言程序源码,官方开源-EG8010单相纯正弦波逆变器驱动板资料分享...
  6. 2011分区联赛模拟试题 电子眼(树形dp)
  7. android图片颜色过滤,在Android上实现图像颜色过滤与反转
  8. 机器人在笛卡尔空间和关节空间的多项式轨迹规划以及matlab代码(三次、五次、七次)
  9. 劳动仲裁1——保姆级教程(打工人程序猿,维权少走弯路)
  10. R语言基础——数据框(data frame)