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;
        }
    }
}
--------------------------------------------------------------------------------

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

  1. C#.NET验证码智能识别学习笔记---04C#.Net图片操作

    C#.NET验证码智能识别学习笔记---04C#.Net图片操作 技术qq交流群:JavaDream:251572072  教程下载,在线交流:it.yunsit.cn  -------------- ...

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

    C#.NET验证码智能识别学习笔记---03#.Net中@符号的意思 技术qq交流群:JavaDream:251572072  教程下载,在线交流:it.yunsit.cn  @是取消字符串中的转意符 ...

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

    C#.NET验证码智能识别学习笔记---02-C#.Net中Using关键字的用法 技术qq交流群:JavaDream:251572072  教程下载,在线交流:it.yunsit.cn ------ ...

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

    技术qq交流群:JavaDream:251572072  教程下载,在线交流:it.yunsit.cn 1.大家知道用asp.net做网站的话,验证码是存在于服务器端的session中的,服务器是知道 ...

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

    技术qq交流群:JavaDream:251572072  教程下载,在线交流:it.yunsit.cn 碰到了这个问题在网上搜了下, 问题描述:我的问题是在使用javac编译测试程序市,出现如下错误: ...

  6. 语音识别学习笔记(三)【动态时间归正的识别技术】

    语音识别学习笔记(三)[动态时间归正的识别技术] 1.概述  在语音识别中,简单的将输入模板和参考模板进行比较存在很大的缺陷,因为语音信号具有很大的随机性,即便是同一个人在不同时刻说同一句话,也不可能 ...

  7. 语音识别学习笔记(二)【基于矢量量化的识别技术】

    语音识别学习笔记(二)[基于矢量量化的识别技术] 概述  量化分为标量量化和矢量量化(Vector Quantization,VQ).标量量化是将采样后的信号值逐个进行量化,而适量量化是将若干个采样信 ...

  8. 语音识别学习笔记(一)【概述】

    语音识别学习笔记(一)[概述] 概述:  1)语音识别是机器通过识别和理解过程把人类的语音信号转变成相应的文本或命令的技术.  2)集 声学.语音学.计算机.信息处理.人工智能等于一身的综合技术. 难 ...

  9. 数字图像识别学习笔记(第二章-数字图像基础(1))

    title: 数字图像识别学习笔记(第二章 数字图像基础(1)) categories: 数字图像识别 tags: 数字图像识别 date: 2020/9/30 21:22 mathjax: true ...

最新文章

  1. 共空间模式 Common Spatial Pattern(CSP)原理和实战
  2. [Xcode 实际操作]七、文件与数据-(3)创建文本文件、属性列表文件、图片文件
  3. Spring学习(八)AOP详解
  4. Linux bond6配置文件,Linux服务器网卡绑定bond配置(示例代码)
  5. 实现打印异常日志_老生常谈SpringAop日志收集与处理做的工具包
  6. 初学者选黑卡还是微单_3500以内的微单相机好用吗?值得初学者入手吗?
  7. bbpress 论坛 wordpress汉化插件
  8. 微软沈向洋自述:在实现职业目标的道路上,我得到了七个教训
  9. 转载--json调用示例
  10. 高中计算机网络功能,高中生自我教育中如何发挥计算机网络信息的作用
  11. Halcon PDF文档(extension_package_programmers_manual)学习总结
  12. java override 用法_JAVA中 @Override 的作用
  13. keep-alive pipeline区别
  14. php 中标麒麟龙芯5.0,中标麒麟桌面操作系统软件
  15. 年薪百万不如狗?深圳的程序员才是买房界的黑天鹅!
  16. logo设计及VIS手册排版
  17. linux中解压文件到root,linux(centos8):使用zip/unzip压缩和解压缩文件
  18. 深度学习之波士顿房价预测(一)
  19. 计算机视觉论文速递(三)YOLO-Pose:《Enhancing YOLO for Multi Person Pose .....》实时性高且易部署的姿态估计模型
  20. 生物学中的云计算和大数据

热门文章

  1. NYOJ-阶乘之和(贪心)
  2. poj3259 Wormholes(spfa判负环)
  3. Linux安全加固--系统相关
  4. NSRegularExpression iOS自带的正则表达式
  5. 发布一个 Linux 下的 C++ 多线程库
  6. Docker、Kubernetes与PaaS不得不说的渊源
  7. vue2.0中vue-router使用总结
  8. Maven + Docker
  9. mysql替换字段的部分数据
  10. 从 A/Looper: Could not create epoll instance. errno=24 错误浅谈解决各种 bug 的思路