1, 生成图片请参照
http://tristan-s.iteye.com/admin/blogs/1026307
2, 目前只能解析没有干扰素的数字图片。 例如:
OK卡网站的验证码
去除干扰素,可以用以下算法
a> 线条的: 检查该线条是否是贯通的直线条,如是则去掉
b> 点: 检查该点是否是孤立的,如是则去掉
3, 需要将图片中的数字用0,1的形式来表达。解析每个数字,见附件
4, 代码
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class ImageDemo {
public static String parse(BufferedImage img){
int width = img.getWidth();
int height = img.getHeight();
StringBuilder sb = new StringBuilder();
for (int j = 0; j < height; j++) {
for (int i = 0; i < width; i++) {
int RGB = img.getRGB(i, j);
int red = (RGB >> 16) & 0xff;
if (red < 100) {
sb.append("1");
} else {
sb.append("0");
}
}
}
String s = sb.toString();
String s2 = s;
// System.out.println("图片的String码: " + s);
// System.out.println("--------------");
// for (int i = 0; i < height; i++) {
// System.out.println(s2.substring(0, width));
// s2 = s2.substring(width);
// }
return s;
}
public static void calResult(String s){
if(s.indexOf(n0)>=0){
System.out.print(" 0");
}else if(s.indexOf(n1)>=0){
System.out.print(" 1");
}else if(s.indexOf(n2)>=0){
System.out.print(" 2");
}else if(s.indexOf(n3)>=0){
System.out.print(" 3");
}else if(s.indexOf(n4)>=0){
System.out.print(" 4");
}else if(s.indexOf(n5)>=0){
System.out.print(" 5");
}else if(s.indexOf(n6)>=0){
System.out.print(" 6");
}else if(s.indexOf(n7)>=0){
System.out.print(" 7");
}else if(s.indexOf(n8)>=0){
System.out.print(" 8");
}else if(s.indexOf(n9)>=0){
System.out.print(" 9");
}
}
public static void main(String[] args) throws Exception {
//File file = new File("c:/image/num/nn" + n + ".jpg");
File file = new File("c:/image/image1.jpg");
BufferedImage imgOrg = ImageIO.read(file);
BufferedImage img = imgOrg.getSubimage(8, 0, 10, 20);
BufferedImage img2 = imgOrg.getSubimage(20, 0, 10, 20);
BufferedImage img3 = imgOrg.getSubimage(35, 0, 10, 20);
BufferedImage img4 = imgOrg.getSubimage(45, 0, 10, 20);
System.out.println("图片解析结果:");
String s = parse(img);
calResult(s);
String s2 = parse(img2);
calResult(s2);
String s3 = parse(img3);
calResult(s3);
String s4 = parse(img4);
calResult(s4);
}
private static String n0 = "000000000000011110000011111100011100111001100001100110000110011000011001100001100110000110011000011001100001100111001110001111110000011110000000000000";
private static String n1 = "000000000000000110000000111000000111100000110110000010011000000001100000000110000000011000000001100000000110000000011000000001100000000110000000000000";
private static String n2 = "000000000000011110000011111100011100111001100001100000000110000000011000000011000000011000000011000000011000000011000000011111111001111111100000000000";
private static String n3 = "000000000000011100000011111000011000110000000011000000001100000011100000001111000000000110000000011001100001100110000110001111110000011110000000000000";
private static String n4 = "000000000000000110000000111000000011100000011110000011011000001101100001100110001100011000111111111011111111100000011000000001100000000110000000000000";
private static String n5 = "000000000000111111000011111100001100000001100000000110111000011111110001100001100000000110000000011001100001100110000110001111110000011110000000000000";
private static String n6 = "000000000000011110000011111100001100011001100000000110000000011011100001111111000111000110011000011001100001100011000110001111110000011110000000000000";
private static String n7 = "000000000001111111100111111110000000010000000011000000011000000001100000001100000000110000000011000000001100000001100000000110000000011000000000000000";
private static String n8 = "000000000000011110000011111100011000011001100001100110000110001111110000111111000110000110011000011001100001100110000110001111110000011110000000000000";
private static String n9 = "000000000000011110000011111100011000011001100001100110000110011000111000111111100001110110000000011000000001100110001100001111110000011110000000000000";
private static String n = "9";
}
- 大小: 1.3 KB
- 大小: 1.2 KB
分享到:
相关推荐
java解析图片验证码
jmeter通过调用OCR识别图片验证码,但是识别率不高,有需要的可以试一试能否识别 参考文章http://sanwen.net/a/rmskmpo.html
图片验证码识别 UUID唯一ID动态生成样本 动态生成全国的身份证号样本 动态生成手机号样本 token使用MD5加密生成样本 跨越线程组参数化样例 数据库动态参数化 数据库物理清理测试数据 等等
jmeter使用ocrserver工具自动识别验证码配置
本程序是用c#实现的,用于识别普通图片验证码,通过图像处理技术获取验证码。
着重于有粘连字符的猫扑和西祠胡同网站验证码进行识别,难点在于分割图片中的粘连字符。对字符是模糊粘连的猫扑验 证码,提出了基于局部极小值和最小投影值的方法来分割;对有交错粘连的西祠胡同验证码,通过颜色...
public void imgdo(Bitmap img) { //去色 Bitmap btp = img; Color c = new Color(); int rr, gg, bb; for (int i = 0; i < btp.Width;... //取图片当前的像素点 c = btp.GetPixel(i, j); rr = c.
简单的图像识别,里面又说面,自己下载来看看
C#生成随机生成器 显示到图片上的验证码。
包括web项目里面非常常用的重复性代码,如校验用户名、手机号、身份证号、密码、等等,是否符合安全规则。 生成绝不重复的订单号。 生成图片验证码。 json解析。 全是自己手写,供大家复用。
虚拟手机号创建 验证码接收 视频解析 图片扣图等功能于一体的小程序 自带配置说明 注意是小程序 小程序 小程序 配置的有虚拟手机号池 可以小程序内接收虚拟手机号验证码 全站视频解析功能 老旧图片修复 图片抠像
说明:Asprise 目前只能识别英文及数字,对中文无法识别...最常用于读取图片上的验证码,当然,其他英文或数字类的图片也可以,自己去尝试 因为验证码一般都加有背景色点,所以识别成功几率要根据图片的清晰度来定的。
拓展 我们需要开启gd拓展,可以使用下面的代码来查看是否开启gd拓展。 <?...echo "Hello World!!!...然后在浏览器上Ctrl+F查找gd选项即可验证自己有没有装...// 在显示这张图片的时候一定要先声明头信息 header('content
本文档里面详细描述了利用Jmeter工具怎样处理登录验证码的方法和步骤
不过这是另外的话题,开始的时候我并没有发现这个隐藏起来的秘密,所以我就写了这个python代码段用来实现解析验证码的功能。 我们学校的验证码是最简单的验证码,形式大概如下: 其中这个图片的大小是60X24...
这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。...
《计算机毕业设计:基于机器学习的图片验证码识别系统》是一项集创新性与实用性于一体的计算机毕业设计项目。该项目采用机器学习技术,结合Python编程语言,构建了一个高效、准确的图片验证码识别系统,为自动化测试...
我们需要识别文字,点击与文字描述相符的图片,验证码完全正确,验证才能通过。现在这种交互式验证码越来越多,如极验滑动验证码需要滑动拼合滑块才可以完成验证,点触验证码需要完全点击正确结果才可以完成验证,另外还有...
流程为:读取图片,用颜色分量的方法将噪声去除,得到去噪后图像,利用连通域法进行字符分割,提取到每个字符的Hu不变矩,进而跟模板字符相匹配,得到结果。该设计做的匆忙,回调函数未来得及全部填写。