资源简介

C#实现的数字图像边缘检测处理的程序,包括:Sobel、Roberts、Smoothed、Canny、Prewitt;采用VS2008编写,完整可执行,本程序集合并参考了论坛中一些大侠的代码。

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace EdgeDetect
{
    public partial class Form1 : Form
    {
        Bitmap _Bitmap;
        Bitmap _GrayBitmap;
        Byte[] image;
        Image _origin;

        public Form1()
        {
            InitializeComponent();            
            btn_sobel.Enabled = false;
            btn_Roberts.Enabled = false;
            btn_smoothed.Enabled = false;
            btn_gray.Enabled = false;
            btn_Threshold.Enabled = false;
            btn_canny.Enabled = false;
            btn_prewitt.Enabled = false;
        }

        //打开文件显示原始图像
        private void btn_fileopen_Click(object sender EventArgs e)
        {
            OpenFileDialog fileDialog = new OpenFileDialog();
            fileDialog.Multiselect = false;
            fileDialog.title = “请选择文件“;
            fileDialog.Filter = “所有文件(*.*)|*.jpg|*.png|*.bmp“;
            if (fileDialog.ShowDialog() == DialogResult.OK)
            {
                FileStream fs = File.OpenRead(fileDialog.FileName); //OpenRead
                int filelength = 0;
                filelength = (int)fs.Length; //获得文件长度                 
                image = new Byte[filelength]; //建立一个字节数组 
                fs.Read(image 0 filelength); //按字节流读取图像
                _origin = Image.FromStream(fs);//读取原始图像
                fs.Close();
                _Bitmap = new Bitmap(_origin);//将图像保存到_Bitmap成员中供后续操作

                pictureBox1.Image = _origin;//显示图像到控件

                _GrayBitmap = Thresholding.ToGrey(_Bitmap);//调用Thresholding对象的方法函数
                                
                btn_sobel.Enabled = true;
                btn_Roberts.Enabled = true;
                btn_smoothed.Enabled = true;
                btn_gray.Enabled = true;
                btn_Threshold.Enabled = true;
                btn_canny.Enabled = true;
                btn_prewitt.Enabled = true;
            }
        }

        //Sobel算子边缘检测
        private void btn_sobel_Click(object sender EventArgs e)
        {
            Bitmap bitmap;
            if (checkBox1.Checked)
                bitmap = Sobel.DoSobel(_GrayBitmap);//调用Sobel对象的方法函数
            else
                bitmap = Sobel.DoSobel(_Bitmap);//调用Sobel对象的方法函数
            pictureBox2.Image = (Image)bitmap;
        }

        //Roberts算子边缘检测
        private void btn_Roberts_Click(object sender EventArgs e)
        {
            Bitmap bitmap;
            if(checkBox1.Checked)
                bitmap = Roberts.DoRoberts(_GrayBitmap);//调用Roberts对象的方法函数
            else
                bitmap = Roberts.DoRoberts(_Bitmap);//调用Roberts对象的方法函数
            pictureBox2.Image = (Image)bitmap;
        }

        //Smoothed算子边缘检测
        private void btn_smoothed_Click(object sender Eve

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-04-28 08:13  EdgeDetect\
     文件         920  2017-04-26 09:31  EdgeDetect.sln
     文件       16384  2017-04-28 07:56  EdgeDetect.suo
     目录           0  2017-04-26 15:08  EdgeDetect\bin\
     目录           0  2017-04-27 18:19  EdgeDetect\bin\Debug\
     文件       22528  2017-04-28 08:13  EdgeDetect\bin\Debug\EdgeDetect.exe
     文件       60928  2017-04-28 08:13  EdgeDetect\bin\Debug\EdgeDetect.pdb
     文件       14328  2017-04-28 07:54  EdgeDetect\bin\Debug\EdgeDetect.vshost.exe
     文件         490  2009-06-11 05:14  EdgeDetect\bin\Debug\EdgeDetect.vshost.exe.manifest
     文件        3820  2017-04-26 15:08  EdgeDetect\EdgeDetect.csproj
     文件        4663  2017-04-28 07:59  EdgeDetect\Form1.cs
     文件       14395  2017-04-28 07:59  EdgeDetect\Form1.Designer.cs
     文件        5814  2017-04-28 07:59  EdgeDetect\Form1.resx
     目录           0  2017-04-26 09:31  EdgeDetect\obj\
     目录           0  2017-04-28 08:13  EdgeDetect\obj\Debug\
     文件        2195  2017-04-28 07:59  EdgeDetect\obj\Debug\EdgeDetect.csproj.FileListAbsolute.txt
     文件         847  2017-04-28 07:59  EdgeDetect\obj\Debug\EdgeDetect.csproj.GenerateResource.Cache
     文件       22528  2017-04-28 08:13  EdgeDetect\obj\Debug\EdgeDetect.exe
     文件         180  2017-04-28 07:59  EdgeDetect\obj\Debug\EdgeDetect.Form1.resources
     文件       60928  2017-04-28 08:13  EdgeDetect\obj\Debug\EdgeDetect.pdb
     文件         180  2017-04-27 18:19  EdgeDetect\obj\Debug\EdgeDetect.Properties.Resources.resources
     目录           0  2017-04-26 15:08  EdgeDetect\obj\Debug\Refactor\
     目录           0  2017-04-26 09:31  EdgeDetect\obj\Debug\TempPE\
     文件       31394  2017-04-28 08:13  EdgeDetect\Operaters.cs
     文件         491  2017-04-26 09:31  EdgeDetect\Program.cs
     目录           0  2017-04-26 09:31  EdgeDetect\Properties\
     文件        1370  2017-04-26 09:31  EdgeDetect\Properties\AssemblyInfo.cs
     文件        2870  2017-04-26 09:31  EdgeDetect\Properties\Resources.Designer.cs
     文件        5612  2017-04-26 09:31  EdgeDetect\Properties\Resources.resx
     文件        1095  2017-04-26 09:31  EdgeDetect\Properties\Settings.Designer.cs
     文件         249  2017-04-26 09:31  EdgeDetect\Properties\Settings.settings
............此处省略0个文件信息

评论

共有 条评论