资源简介
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个文件信息
评论
共有 条评论