資源簡介
Canny邊緣檢測是被公認(rèn)的檢測效果最好的邊緣檢測方法,是由John F. Canny于1986年提出,算法目標(biāo)是找出一個最優(yōu)的邊緣檢測的方法,所謂最優(yōu)即:1.好的檢測:算法能夠盡可能的標(biāo)識出圖像的邊緣;2.好的定位:標(biāo)識出的邊緣要盡可能的與實際邊緣相接近;3.最小響應(yīng):圖像中的邊緣只能標(biāo)識一次,并且不能把噪聲標(biāo)識成邊緣。同時我們也要滿足3個準(zhǔn)則:信噪比準(zhǔn)則、定位精度準(zhǔn)則、單邊緣響應(yīng)準(zhǔn)則

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Text;
using?System.Drawing.Imaging;
using?System.Windows.Forms;
using?System.Drawing;
using?System.IO;
namespace?CannyEdgeDetectionCSharp
{
????????
????class?Canny?
????{
????????public?int?Width?Height;
????????public?Bitmap?Obj;
????????public?int[]?GreyImage;????
????????//Gaussian?Kernel?Data
????????int?[]?GaussianKernel;
????????int?KernelWeight?;
????????int?KernelSize?=5;
????????float?Sigma?=?1;???//?for?N=2?Sigma?=0.85??N=5?Sigma?=1?N=9?Sigma?=?2????2*Sigma?=?(int)N/2
????????//Canny?Edge?Detection?Parameters
????????float?MaxHysteresisThresh?MinHysteresisThresh;
????????public?float[]?DerivativeX;
????????public?float[]?DerivativeY;
????????public?int[]?FilteredImage;
????????public?float[]?Gradient;
????????public?float[]?NonMax;
????????public?int[]?PostHysteresis;
????????int[]?EdgePoints;
????????public?float[]?GNH;
????????public?float[]?GNL;
????????public?int[]?EdgeMap;
????????public?int[]?VisitedMap;
????????public?Canny(Bitmap?Input)
????????{
????????????//?Gaussian?and?Canny?Parameters
????????????MaxHysteresisThresh?=?20F;
????????????MinHysteresisThresh?=?10F;
????????????Obj?=?Input;
????????????Width?=?Obj.Width;
????????????Height?=?Obj.Height;
????????????EdgeMap?=?new?int[Width?Height];
????????????VisitedMap?=?new?int[Width?Height];
????????????ReadImage();
????????????DetectCannyEdges();
????????????return;?????
????????}
????????public?Canny(Bitmap?Input?float?Th?float?Tl)
????????{
????????????//?Gaussian?and?Canny?Parameters
????????????MaxHysteresisThresh?=?Th;
????????????MinHysteresisThresh?=?Tl;
????????????Obj?=?Input;
????????????Width?=?Obj.Width;
????????????Height?=?Obj.Height;
????????????EdgeMap?=?new?int[Width?Height];
????????????VisitedMap?=?new?int[Width?Height];
????????????ReadImage();
????????????DetectCannyEdges();
????????????return;
????????}
????????public?Canny(Bitmap?Input?float?Th?float?Tl?int?GaussianMaskSize?float?SigmaforGaussianKernel)
????????{
????????????//?Gaussian?and?Canny?Parameters
????????????MaxHysteresisThresh?=?Th;
????????????MinHysteresisThresh?=?Tl;
????????????KernelSize?=?GaussianMaskSize;
????????????Sigma?=?SigmaforGaussianKernel;
????????????Obj?=?Input;
????????????Width?=?Obj.Width;
????????????Height?=?Obj.Height;
????????????EdgeMap?=?new?int[Width?Height];
????????????VisitedMap?=?new?int[Width?Height];
????????????ReadImage();
????????????DetectCannyEdges();
????????????return;
????????}
????????public?Bitmap?DisplayImage()
????????{
????????????int?i?j;
????????????Bitmap?image?=?new?Bitmap(Obj.Width?Obj.Height);
????????????BitmapData?bitmapData1?=?image.LockBits(new?Rectangle(0?0?Obj.Width?Obj.Height)
?????????????????????????????????????ImageLockMode.ReadOnly?PixelFormat.Format32bppArgb);
????????????unsafe
????????????{
????????????????byte*?i
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2010-07-10?20:31??Canny?Edge?Detection?C#\
?????文件?????1540314??2010-07-10?21:11??Canny?Edge?Detection?C#\Canny.bmp
?????文件?????????941??2010-07-10?20:02??Canny?Edge?Detection?C#\Canny.sln
?????文件???????20992??2010-07-10?21:10??Canny?Edge?Detection?C#\Canny.suo
?????文件??????746550??2010-07-10?20:26??Canny?Edge?Detection?C#\Shrikrishna.bmp
?????目錄???????????0??2010-07-10?20:31??Canny?Edge?Detection?C#\Iris?Recognition\
?????文件???????21357??2010-07-10?20:28??Canny?Edge?Detection?C#\Iris?Recognition\Canny.cs
?????文件????????4584??2010-07-10?20:29??Canny?Edge?Detection?C#\Iris?Recognition\CannyEdgeDetection.csproj
?????文件????????3328??2010-07-10?21:09??Canny?Edge?Detection?C#\Iris?Recognition\Mainform.cs
?????文件???????20547??2010-07-10?21:09??Canny?Edge?Detection?C#\Iris?Recognition\Mainform.Designer.cs
?????文件????????6586??2010-07-10?21:09??Canny?Edge?Detection?C#\Iris?Recognition\Mainform.resx
?????文件?????????494??2010-07-10?20:28??Canny?Edge?Detection?C#\Iris?Recognition\Program.cs
?????目錄???????????0??2010-07-10?20:31??Canny?Edge?Detection?C#\Iris?Recognition\Properties\
?????文件????????1294??2009-07-07?18:28??Canny?Edge?Detection?C#\Iris?Recognition\Properties\AssemblyInfo.cs
?????文件????????2873??2010-07-10?20:28??Canny?Edge?Detection?C#\Iris?Recognition\Properties\Resources.Designer.cs
?????文件????????5612??2009-07-07?18:28??Canny?Edge?Detection?C#\Iris?Recognition\Properties\Resources.resx
?????文件????????1103??2010-07-10?20:28??Canny?Edge?Detection?C#\Iris?Recognition\Properties\Settings.Designer.cs
?????文件?????????249??2009-07-07?18:28??Canny?Edge?Detection?C#\Iris?Recognition\Properties\Settings.settings
?????目錄???????????0??2010-07-10?20:31??Canny?Edge?Detection?C#\Iris?Recognition\obj\
?????文件?????????545??2010-07-10?21:10??Canny?Edge?Detection?C#\Iris?Recognition\obj\CannyEdgeDetection.csproj.FileList.txt
?????文件?????????585??2010-07-10?20:01??Canny?Edge?Detection?C#\Iris?Recognition\obj\Iris?Recognition.csproj.FileList.txt
?????文件????????1515??2010-07-08?15:50??Canny?Edge?Detection?C#\Iris?Recognition\obj\Iris?Recognition.csproj.FileListAbsolute.txt
?????目錄???????????0??2010-07-10?20:31??Canny?Edge?Detection?C#\Iris?Recognition\obj\Debug\
?????文件???????53248??2009-07-07?18:31??Canny?Edge?Detection?C#\Iris?Recognition\obj\Debug\AxInterop.Project1.dll
?????文件?????????845??2010-07-10?21:09??Canny?Edge?Detection?C#\Iris?Recognition\obj\Debug\CannyEdgeDetection.csproj.GenerateResource.Cache
?????文件?????????734??2010-07-10?20:29??Canny?Edge?Detection?C#\Iris?Recognition\obj\Debug\CannyEdgeDetection.csproj.ResolveComReference.cache
?????文件???????36864??2010-07-10?21:09??Canny?Edge?Detection?C#\Iris?Recognition\obj\Debug\CannyEdgeDetection.exe
?????文件???????44544??2010-07-10?21:09??Canny?Edge?Detection?C#\Iris?Recognition\obj\Debug\CannyEdgeDetection.pdb
?????文件?????????180??2010-07-10?21:09??Canny?Edge?Detection?C#\Iris?Recognition\obj\Debug\CannyEdgeDetectionCSharp.Mainform.resources
?????文件?????????180??2010-07-10?20:29??Canny?Edge?Detection?C#\Iris?Recognition\obj\Debug\CannyEdgeDetectionCSharp.Properties.Resources.resources
?????文件???????53248??2010-07-10?20:29??Canny?Edge?Detection?C#\Iris?Recognition\obj\Debug\Interop.Project1.dll
............此處省略17個文件信息
評論
共有 條評論
- 頂一次
- 踩一次 1400 次