java验证码去噪_论坛灌水机(续三 -- 验证码图形去噪)
接前文,讲讲具体怎么去噪。
先看例子
这是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验证码去噪_论坛灌水机(续三 -- 验证码图形去噪)相关推荐
- 论坛灌水机(续三 -- 验证码图形去噪)
接前文,讲讲具体怎么去噪 . 先看例子 这是sina投票的验证码: 去噪处理后: 计算起来其实很简单,算法其实没什么好说的.简单的一句话,判断每个点是否是孤立点,如果是孤立点就把它去掉.孤立点的判断就 ...
- 论坛灌水机 Delphi代码
本来以为网页里的edit,memo等都和程式里的相同,能够用句柄来控制,但后来才明白,他是不存在句柄的! 查了好久,前几天看到一个关于QQ自动申请的例子.主要就是控制网页各种操作的!总结了一下,做出一 ...
- 论坛灌水机与注册机问题
话题起头比较大,说明一下,写这篇的起因,论坛最近经常被新用户发布一些不相关的帖子,也没有一定的规律, 而基本都是新注册的用户,还都绑定手机的,起初我们用的是短信验证码,查了一下几天注册的手机号全都是批 ...
- 论坛灌水机(续二--验证码)
实际上,开发验证码是一件并不讨好的事情.在国外的论坛上,人家给出的权威验证码识别解决方案是:去雇用低能者,让他们人工填写验证码 .理论依据是:验证码技术的目标就是让低能者都能认识的东西,计算机识别起来 ...
- java 图片爬虫_论坛图片爬虫的一种实现
1背景 经常上贴图的论坛(Discuz!),每次打开帖子的时候,由于帖子的图片太多,每次都要等不少时间才能看到所有的图片,比较麻烦:同时经常会打开看过的帖子.为了解决这个问题,写了个小爬虫,定期把最新 ...
- java登录代码带验证码实现_两种方法实现带验证码的用户登录
带验证码的登录效果图 登录成功时,记录用户名和访问次数 登录失败,弹出错误提示 方法一:应用request对象获取表单数据实现登录操作 代码结构: index.jsp源码及详解: 当表单被提交时,数据 ...
- 小米论坛顶贴机,小米顶贴机,小米论坛灌水机,小米社区顶贴小助手,免费绿色版!...
下载地址:http://pan.baidu.com/share/link?shareid=7540&uk=4043470375 -------------------------------- ...
- java oracle管理系统_哔站播放量高达三百万的Java视频教程,如此惊人,还不来学?...
"Java Planform Standard Edition"是Java语言的标准平台技术,是所有Java开发的语言基础,更是大数据.分布式开发思想建模的初期,此阶段的Java语 ...
- java reduce 分组_使用JAVA8 stream中三个参数的reduce方法对List进行分组统计
背景 平时在编写前端代码时,习惯使用lodash来编写'野生'的JavaScript; lodash提供来一套完整的API对JS对象(Array,Object,Collection等)进行操作,这其中 ...
最新文章
- java socket/Serversocket编程详解(中/英文)
- MetInfo最新版代码审计漏洞合集
- 模板:k短路(可并堆)
- linux 用户、群组及权限操作
- DM框架中CString/CStringW 转 double (c++通用)
- NetBeans 时事通讯(刊号 # 67 - Aug 04, 2009)
- Java线程并发与安全性问题详解
- 微信小游戏是个人尝试做游戏最好的选择
- [ffmpeg] 视频码率压缩
- luogu p1330封锁阳光大学
- 常用类(API)第一节
- TopFreeTheme精选免费模板【20130827】
- AAAI2020论文列表(中英对照)
- OPPOReno4SE和华为畅享20 哪款好
- 查看服务器配置以及常用命令
- kafka如何选择分区数及kafka性能测试
- Android ocr识别文字介绍(文字识别)
- 正面管教php_正面管教php_我校开展正面管教家长工作坊分享会
- php sae,GitHub - ytf606/sae-weiphp: 基于SAE平台weiphp CMS系统
- 光纤收发器的原理及应用_浅析光纤收发器的原理与分类
热门文章
- Cena评测系统在win10中测评cpp程序
- Appium搭建MacOS环境下的iOS App自动化测试环境(Windows搭个MacOS虚拟机就行,亦无须iPhone)
- 从RDA5981A/B/C编译后map文件和datasheet分析内存分配情况
- 【云原生】第十篇--Docker主机集群化方案 Docker Swarm
- 正弦波逆变器c语言程序源码,官方开源-EG8010单相纯正弦波逆变器驱动板资料分享...
- 2011分区联赛模拟试题 电子眼(树形dp)
- android图片颜色过滤,在Android上实现图像颜色过滤与反转
- 机器人在笛卡尔空间和关节空间的多项式轨迹规划以及matlab代码(三次、五次、七次)
- 劳动仲裁1——保姆级教程(打工人程序猿,维权少走弯路)
- R语言基础——数据框(data frame)