C#.NET验证码智能识别学习笔记---05C#.Net图片预处理

技术qq交流群:JavaDream:251572072

教程下载,在线交流:it.yunsit.cn

图片经过下面的预处理以后就可以变的清晰很多了,另外在做图像识别的时候一般使用tif格式的图片

下面是图片预处理的代码有详细说明,如果不明白留言把

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing.Imaging;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.IO;

namespace 图片预处理

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

//1.获得文件夹下所有图片返回一个数组

string [] files= Directory.GetFiles(@"G:\NET学习\workspace\验证码识别系统用到的资源\样本图片","*.gif");

for (int i = 0; i < files.Length; i++) {

string file = files[i];

using ( Bitmap bitmap = (Bitmap)Image.FromFile(file)){

using (Bitmap newBitmap = Process(bitmap)) {

newBitmap.Save(@"G:\NET学习\workspace\验证码识别系统用到的资源\newimage\"+i+".tif",ImageFormat.Tiff);

}

}

}

}

private static Bitmap Process(Bitmap bitmap)

{

//1.创建一个新的图片

Bitmap newBitmap = new Bitmap(bitmap.Width, bitmap.Height);

//2.遍历整个图片

for (int x = 0; x < bitmap.Width;x++ )

{

for (int y = 0; y < bitmap.Height; y++) {

//3.去掉边框操作

if (x == 0 || y == 0 || x == bitmap.Width - 1 || y == bitmap.Height - 1)

{

newBitmap.SetPixel(x, y, Color.White);

}

else {

Color color = bitmap.GetPixel(x, y);

//4.如果点的颜色是背景干扰色就设置为白色

if (color.Equals(Color.FromArgb(204, 204, 51)) ||

color.Equals(Color.FromArgb(153, 204, 51)) ||

color.Equals(Color.FromArgb(204, 204, 204)) ||

color.Equals(Color.FromArgb(204, 255, 51)) ||

color.Equals(Color.FromArgb(204, 255, 102)))

{

newBitmap.SetPixel(x, y, Color.White);

}

else {

//5.否则就设成原来的颜色

newBitmap.SetPixel(x, y, color);

}

}

}

}

return newBitmap;

}

}

}

--------------------------------------------------------------------------------

时间: 2024-10-14 09:01:08

C#.NET验证码智能识别学习笔记---05C#.Net图片预处理的相关文章

C#.NET验证码智能识别学习笔记---01C#.NET验证码识别介绍

技术qq交流群:JavaDream:251572072 教程下载,在线交流:it.yunsit.cn 1.大家知道用asp.net做网站的话,验证码是存在于服务器端的session中的,服务器是知道 验证码的值真正是多少的.服务器可以识别人输入的到底对不对,因为服务器知道真正的 答案,因为验证码程序一般很难识别,所以服务器就可以一定程度上确认对方是人在操作 2.验证码就是为了区别到底是人在操作,还是机器在操作 ----------------------------------------- 3

C#.NET验证码智能识别学习笔记---06 解决java jre问题:JTessBoxEditor.jar打开的时报找不到或无法加载主类 com.sun.tools.javac.Main错误

技术qq交流群:JavaDream:251572072 教程下载,在线交流:it.yunsit.cn 碰到了这个问题在网上搜了下, 问题描述:我的问题是在使用javac编译测试程序市,出现如下错误: 错误: 找不到或无法加载主类 com.sun.tools.javac.Main 解决办法:当出现这个错误时,百度之,结果很多人都是说的环境变量设置错误,但是检查了下环境变量,没有什么问题. 这时,看到错误信息中有javac,猜想大概是找不到javac这个文件吧,于是到jdk\bin目录下,发现没有j

C#.NET验证码智能识别学习笔记---03#.Net中@符号的意思

技术qq交流群:JavaDream:251572072 教程下载,在线交流:it.yunsit.cn @是取消字符串中的转意符.比如不加@的字符串, "\\a\n"C#会解释成一个\和一个a再加一个换行,如果加了@, @"\\a\n" C#会解释成两个\加一个a加一个\加一个n

C#.NET验证码智能识别学习笔记---02-C#.Net中Using关键字的用法

技术qq交流群:JavaDream:251572072 教程下载,在线交流:it.yunsit.cn -------------------------------------------------- 教程应该会用到,这个知识点,摘出来了.. --------------------------------------------- 1.using的用途和使用技巧. 1.  引用命名空间 2.  为命名空间或类型创建别名 3.  使用using语句 1.  引用命名空间,这样可以在程序中引用命

移动化的数字笔记:livescribe3[更新图片]

原贴发在hipda,地址:[移动化的数字笔记:livescribe3[更新图片] - E-INK - Geek Talks · 奇客怪谈 - Hi!PDA Hi!PDA](http://www.hi-pda.com/forum/viewthread.php?tid=1357455&highlight=) 什么是livescribe    它是一只能够把你写在纸上的文字数字化,并同步到电子设备永久保存起来的电子笔. 工作原理:     它由一只电子化的笔和一本印满了小细点的所谓dot paper构

【安卓笔记】切换图片(底部带有小点效果)

下面我们要实现这样的效果: 我们将采用两种方式实现这种效果: 1.使用ViewPager: 思路:ViewPager提供左右滑动图片操作的支持,下方小点在代码中动态创建,整个布局采用FrameLayout. 先看布局: <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" and

工作笔记5.JAVA图片验证码

本文主要内容为:利用JAVA图片制作验证码. 设计思路: 1.拷贝AuthImageServlet.class图片验证码 2.配置web.xml 3.JSP中,调用封装好的AuthImageServlet,实现载入验证码的功能. 4.取出存放在Session中的验证码.在Action中推断验证码的正确性 相比較上一篇博客<工作笔记5.JAVA文本框验证码>而言,图片验证码添加了安全性. 在Action中,通过取出Session中的验证码与输入的验证码是否匹配进行推断. 步骤: 1.拷贝Auth

PHP-解析验证码类--学习笔记

1.开始 在 网上看到使用PHP写的ValidateCode生成验证码码类,感觉不错,特拿来分析学习一下. 2.类图 3.验证码类部分代码 3.1  定义变量 //随机因子 private $charset = 'abcdefghjkmnprstuvwxyzABCDEFGJKMNPRSTUVWXYZ23456789'; private $code; private $codeLen = 4; private $width = 130; private $heigh = 50; private $

智能Agent笔记

理性Agent:追求尽可能好的行为表现.Agent表现如何取决于环境的本质. Agent通过传感器感知环境并通过执行器对所处环境产生影响. Agent的感知序列是该Agent所收到的所有输入数据的完整历史.一般地,Agent在任何给定时刻的行动选择依赖于到那个时刻为止该Agent的整个感知序列,而不是那些它感知不到的东西.从数学角度看,我们可以说Agent函数描述了Agent的行为,它将任意给定感知序列映射为行动. 理性Agent是做事正确的Agent.考虑Agent行动的后果.当把Agent置