C#.NET驗證碼智能識別學習筆記---05C#.Net圖片預處理
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;
}
}
}
--------------------------------------------------------------------------------