数字图像课程设计报告:边缘检测算子的比较
- 格式:docx
- 大小:1.12 MB
- 文档页数:11
图像处理中的边缘检测算法使用比较边缘检测算法是图像处理领域中一种重要的技术,用于detecting 出图像中物体的边缘。
它在计算机视觉、图像识别、医学图像处理等领域具有广泛的应用。
本文将介绍几种常用的边缘检测算法,并对它们进行比较。
1. Sobel 算子Sobel 算子是一种基于梯度运算的边缘检测算法。
它通过计算图像的梯度来检测边缘的位置和方向。
Sobel 算子在图像的噪声较少的情况下表现良好,但当图像存在噪声时,结果可能会受到噪声的干扰。
2. Prewitt 算子Prewitt 算子也是一种梯度运算的边缘检测算法。
与 Sobel 算子类似,Prewitt 算子也可以计算图像的梯度来检测边缘。
与 Sobel 算子不同的是,Prewitt 算子采用了不同的权重分配,可以更好地检测出图像中的水平和垂直边缘。
3. Roberts 算子Roberts 算子是一种基于差分运算的边缘检测算法。
它通过计算图像中像素点的差异来检测边缘。
Roberts 算子简单直观,并且对噪声不敏感,但它对图像的边缘宽度有一定的限制,可能会造成边缘断裂的情况。
4. Canny 算子Canny 算子是一种综合性边缘检测算法,被广泛应用于图像处理领域。
Canny 算子通过多个步骤进行边缘检测,包括高斯滤波、计算图像梯度、非极大值抑制和双阈值处理。
Canny 算子能够有效地检测图像中的边缘,并具有较好的鲁棒性和准确性。
5. Laplacian 算子Laplacian 算子是一种基于二阶微分的边缘检测算法。
它通过计算图像的二阶导数来检测边缘。
Laplacian 算子可以有效地检测出图像中的变化率最大的位置,适合用于检测曲线和角点等特征。
在比较这些边缘检测算法时,我们可以从以下几个方面进行考察:1. 检测准确性:算法是否能够准确地检测出图像中的边缘,且边缘位置和形状是否与真实边缘一致。
2. 鲁棒性:算法对图像噪声的敏感程度。
在现实应用中,图像会受到不同程度的噪声干扰,算法能否在噪声环境下依然有效检测边缘。
实验报告课程名称数字图像处理导论专业班级_______________姓名 _______________学号_______________电气与信息学院与谐勤奋求就是创新一.实验目得1.理解图像分割得基本概念;2.理解图像边缘提取得基本概念;3.掌握进行边缘提取得基本方法;4.掌握用阈值法进行图像分割得基本方法.二。
实验内容1.分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。
比较三种算子处理得不同之处;2.设计一个检测图1中边缘得程序,要求结果类似图2,并附原理说明。
3.任选一种阈值法进行图像分割、图1 图2三.实验具体实现1.分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。
比较三种算子处理得不同之处;I=imread(’mri、tif');imshow(I)BW1=edge(I,’roberts’);figure ,imshow(BW1),title(’用Roberts算子’)BW2=edge(I,’sobel’);figure,imshow(BW2),title(’用Sobel算子 ')BW3=edge(I,’log’);figure,imshow(BW3),title(’用拉普拉斯高斯算子’)比较提取边缘得效果可以瞧出,sober算子就是一种微分算子,对边缘得定位较精确,但就是会漏去一些边缘细节.而Laplacian—Gaussian算子就是一种二阶边缘检测方法,它通过寻找图象灰度值中二阶过零点来检测边缘并将边缘提取出来,边缘得细节比较丰富。
通过比较可以瞧出Laplacian-Gaussian算子比sober算子边缘更完整,效果更好。
2.设计一个检测图1中边缘得程序,要求结果类似图2,并附原理说明.i=imread('m83、tif’);subplot(1,2,1);imhist(i);title('原始图像直方图');thread=130/255;subplot(1,2,2);i3=im2bw(i,thread);imshow(i3);title('分割结果’);3.任选一种阈值法进行图像分割、i=imread('trees、tif’);subplot(1,2,1);imhist(i);title('原始图像直方图’);thread=100/255;subplot(1,2,2);i3=im2bw(i,thread);imshow(i3);title('分割结果’)1、分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。
几种常用边缘检测算法的比较边缘检测是在数字图像上寻找图像亮度变化的过程,它对于图像处理和计算机视觉任务非常重要。
常见的边缘检测算法有Sobel算子、Prewitt算子、Roberts算子和Canny边缘检测算法。
本文将对这几种算法进行比较。
1. Sobel算子:Sobel算子是一种常见的边缘检测算法,它通过计算图像像素点与其邻域像素点之间的差异来检测边缘。
Sobel算子具有简单、快速的优点,可以检测水平和垂直方向的边缘,但对于斜向边缘检测效果较差。
2. Prewitt算子:Prewitt算子也是一种常用的边缘检测算法,它类似于Sobel算子,通过计算图像像素点与其邻域像素点之间的差异来检测边缘。
Prewitt算子可以检测水平、垂直和斜向边缘,但对于斜向边缘的检测结果可能不够精确。
3. Roberts算子:Roberts算子是一种简单的边缘检测算法,它通过计算图像像素点与其对角线方向上的邻域像素点之间的差异来检测边缘。
Roberts算子计算简单,但对于噪声敏感,容易产生干扰边缘。
4. Canny边缘检测算法:Canny边缘检测算法是一种经典的边缘检测算法,它包含多个步骤:高斯滤波、计算梯度、非最大抑制和双阈值处理。
Canny算法具有良好的边缘定位能力,并且对于噪声和细节边缘具有较好的抑制效果。
但Canny算法计算复杂度较高,在处理大规模图像时可能较慢。
综上所述,不同的边缘检测算法具有各自的优缺点。
若要选择适合应用的算法,需要综合考虑图像特点、计算复杂度和应用需求等因素。
如果对图像边缘的方向要求不高,可以选择Sobel或Prewitt算子;如果对图像边缘的方向要求较高,可以选择Canny算法。
另外,为了获得更好的边缘检测结果,通常需要进行适当的预处理,如灰度化、滤波和阈值处理等。
最后,对于不同的应用场景,可能需要使用不同的算法或算法组合来满足特定需求。
图像处理中的边缘检测算法分析与比较边缘检测是图像处理领域中的一项重要任务,它主要用于识别图像中物体的轮廓以及边缘的提取。
本文将从边缘检测的基本原理出发,分析和比较几种常见的边缘检测算法,包括Sobel算子、Prewitt算子、Canny算子和Laplacian算子。
1. Sobel算子Sobel算子是一种基于灰度差分的边缘检测算法,它通过对灰度图像进行卷积运算来计算图像的一阶梯度,进而得到边缘信息。
Sobel算子分别使用水平和垂直两个3×3的卷积核进行运算,然后将两个方向上的梯度幅值相加得到最终的梯度幅值图像。
Sobel算子简单快速,适用于实时性要求较高的应用场景,但对于一些复杂的边缘情况无法准确检测。
2. Prewitt算子Prewitt算子与Sobel算子类似,也是基于灰度差分的边缘检测算法。
不同之处在于Prewitt算子使用了更为简单的卷积核,即[-1,0,1]和[-1,0,1]的转置,分别对图像进行水平和垂直方向上的卷积运算。
Prewitt算子的计算速度较快,但对于边缘的定位相对不够精确。
3. Canny算子Canny算子是一种经典的边缘检测算法,通过多个步骤的处理来提取图像的边缘。
首先,Canny算子利用高斯滤波器对图像进行平滑处理,以减少噪声对边缘检测的影响。
然后,计算图像的梯度幅值和方向,并利用非极大值抑制来细化边缘。
最后,通过设置高低阈值来进行边缘的二值化,将边缘与其他噪声区分开。
Canny算法具有较高的边缘定位准确性和低的误检率,但计算量较大,适用于复杂场景下的边缘检测。
4. Laplacian算子Laplacian算子是一种基于二阶导数的边缘检测算法,它通过计算图像的拉普拉斯算子来提取边缘。
Laplacian算子可通过二阶Sobel算子的变换来实现,即对图像进行两次卷积运算后求和。
该算法对边缘的定位比较敏感,但容易受到噪声的影响,并且会导致边缘加倍。
综上所述,不同的边缘检测算法在边缘定位准确性、计算速度和抗噪能力等方面存在差异。
图像处理中的边缘检测算法综述与比较引言:图像边缘检测是计算机视觉和图像处理领域中的重要任务之一。
边缘检测有助于提取图像中的重要信息,用于分割、物体识别、目标跟踪等应用。
随着计算机技术的不断发展,边缘检测算法也得到了不断改进和发展。
本文将综述和比较常用的图像处理中的边缘检测算法,包括传统的算子方法和基于深度学习的方法。
一、传统的边缘检测算子方法1.1 Sobel算子Sobel算子是一种基于梯度的边缘检测算子,通过计算图像灰度值在水平和垂直方向上的一阶导数来检测边缘。
Sobel算子简单易于实现,但容易受到图像噪声的干扰,且对边缘方向敏感性较差。
1.2 Prewitt算子Prewitt算子与Sobel算子类似,同样是一种基于梯度的边缘检测算子。
Prewitt算子与Sobel算子在计算上有所区别,但其效果相对较差,对噪声敏感。
1.3 Roberts算子Roberts算子是一种基于两个2x2的模板的边缘检测算子,通过计算图像中每个像素与其对角线相邻像素的差值来检测边缘。
Roberts算子简单但容易产生较多的噪声响应。
1.4 Canny边缘检测算法Canny算法是一种经典的边缘检测算法,具有较好的性能和鲁棒性。
相比于其他算子方法,Canny算法首先对图像进行高斯滤波,然后计算图像梯度和梯度方向,接着通过非极大值抑制和双阈值处理来提取边缘。
二、基于深度学习的边缘检测方法2.1 基于全卷积神经网络(FCN)的方法全卷积神经网络是一种能够接受任意尺寸输入并输出相同尺寸的神经网络。
基于FCN的边缘检测方法将图像视为一个整体,通过多层卷积和上采样操作来提取边缘特征并生成边缘图像。
2.2 基于U-Net的方法U-Net是一种使用对称的编码器-解码器结构进行图像分割的神经网络。
基于U-Net的边缘检测方法将图像分割任务转化为像素级分类问题,并通过使用跳跃连接来融合浅层和深层特征,提高了边缘检测的准确性。
2.3 基于深度Lab颜色空间的方法Lab颜色空间是一种将颜色分离和亮度信息分离的颜色空间,具有较好的色彩分辨率。
《自动化技术与应用》2009年第28卷第3期68 | T echniques of Automation & Applications 通信与信息处理Communication and Information Processing数字图像几种边缘检测算子检测比较分析赵 芳,栾晓明,孙 越(哈尔滨工程大学信息与通信工程学院,黑龙江 哈尔滨 150001)摘 要:数字图像的边缘检测是数字图像处理基本问题之一,本文就数字图像的边缘检测的具体内容及常见的数字图像边缘检测方法进行了综述。
分析了各种边缘检测算子的特点,以及在处理各种噪声时,对各种边缘检测算法的检测效果进行了分类比较。
关键词:数字图像处理;边缘检测;检测算子中图分类号:TN911.73 文献标识码:A 文章编号:1003-7241(2009)03-0068-02Edge Detection Operators in Digital Image ProcessingZHAO Fang, LUAN Xiao-ming, SUN Yue( College of Information and Communication Engineering, Harbin Engineering University, Harbin 150001 China )Abstract: This paper presents a review of the edge detection methods for digital image processing. Various edge detectionoperators are presented, and the test results with noise are compared.Keywords: digital image processing; edge detection; detection operator1 引言图像的边缘对人的视觉具有重要意义,一般而言,当人们看见一个有边缘的物体的时候,首先感觉到的便是边缘。
图像的边缘检测实验报告
《图像的边缘检测实验报告》
图像的边缘检测是计算机视觉领域中的重要技术之一,它可以帮助我们识别图
像中物体的边缘和轮廓,从而实现图像分割、特征提取和目标识别等应用。
在
本次实验中,我们将对几种常用的边缘检测算法进行比较和分析,以评估它们
在不同场景下的性能和适用性。
首先,我们使用了Sobel算子进行边缘检测。
Sobel算子是一种基于梯度的边缘检测方法,它通过对图像进行卷积操作来寻找像素值变化最大的地方,从而找
到图像中的边缘。
实验结果显示,Sobel算子在一些简单场景下表现良好,但
在复杂背景和噪声干扰较大的情况下效果不佳。
接着,我们尝试了Canny边缘检测算法。
Canny算法是一种多阶段的边缘检测
方法,它通过对图像进行高斯滤波、计算梯度、非极大值抑制和双阈值处理等
步骤来检测图像中的边缘。
实验结果显示,Canny算法在复杂场景下表现出色,能够有效地抑制噪声并找到图像中的真实边缘。
最后,我们还尝试了Laplacian算子和Prewitt算子等其他边缘检测算法,并对
它们的性能进行了比较和分析。
实验结果显示,不同的边缘检测算法在不同场
景下表现出各自的优势和劣势,需要根据具体的应用需求来选择合适的算法。
总的来说,本次实验对图像的边缘检测算法进行了全面的比较和分析,为我们
进一步深入理解和应用这些算法提供了重要的参考和指导。
希望通过这些实验
结果,我们能够更好地利用边缘检测技术来解决实际的图像处理问题,为计算
机视觉领域的发展做出更大的贡献。
利用MATLAB实现数字图像处理中的边缘检测算法比较数字图像处理是一门涉及数字计算机技术和图像处理技术的交叉学科,其应用领域涵盖医学影像、安防监控、工业质检等诸多领域。
在数字图像处理中,边缘检测是一项重要的技术,用于检测图像中物体边界的位置,对于后续的目标识别、分割等任务具有至关重要的作用。
本文将利用MATLAB软件实现数字图像处理中常用的几种边缘检测算法,并进行比较分析。
1. Sobel算子Sobel算子是一种经典的边缘检测算子,其原理是利用离散卷积来计算图像灰度的一阶导数。
在MATLAB中,可以通过edge函数结合Sobel算子进行边缘检测。
Sobel算子在水平和垂直方向上分别使用以下模板进行卷积计算:2. Prewitt算子Prewitt算子也是一种常见的边缘检测算子,其原理与Sobel算子类似,同样是利用离散卷积计算图像的一阶导数。
Prewitt算子在水平和垂直方向上的模板如下:3. Canny边缘检测Canny边缘检测是一种多阶段的边缘检测算法,包括高斯滤波、计算梯度、非极大值抑制、双阈值处理和边缘跟踪等步骤。
在MATLAB 中,可以通过edge函数选择Canny算法进行边缘检测。
Canny算法能够有效地抑制噪声,并得到更准确的边缘位置。
4. Roberts算子Roberts算子是一种简单直观的边缘检测算子,其原理是通过计算邻近像素之间的差值来检测边缘。
Roberts算子包括两个模板:比较与分析在MATLAB中实现以上几种边缘检测算法后,我们可以对它们进行比较与分析。
首先可以从边缘检测效果来看,不同算法对于同一幅图像可能会有不同的表现,有些算法可能会更加灵敏,有些则可能会更加平滑。
其次可以从计算效率和复杂度来比较,不同算法在实际运行中所需的时间和计算资源也会有所不同。
综合来看,针对不同的应用场景和要求,选择合适的边缘检测算法至关重要。
有时候需要考虑到灵敏度和准确性,有时候则需要考虑到计算效率和实时性。
数字图像处理课程设计报告题目数字图像课程设计—各边缘检测算子的对比系别电气系班级xxxxxxxxxxxxx 学号xxxxxxxxxxxx姓名xxxx 指导老师xxxx时间xxxxxxx目录一、课题设计的任务 (3)1.1 课题选择 (3)1.2 课题设计的背景 (3)二、课题原理简介 (3)三、经典边缘检测算子性能比较及程序 (6)3.1MATLAB程序仿真 (6)3.2实验结果的比较 (10)四、实验结论 (11)五、参考文献 (11)一、课题设计的任务1.1课题选择各边缘检测的对比1.2 课题设计的背景我们感知外部世界的途径主要是听觉和视觉。
而视觉主要是获取图像的信息,例如图片的特征和周围的背景区域的差别。
这种灰度或结构等信息的突变,就称之为边缘。
图像的边缘对人类视觉而言具有重要意义,有些差别很细微,人眼很难观察,这时就需要计算机图像处理技术,物体边缘上的这种变化可以用微分算子检测出来,通常用一阶或两阶导数来检测边缘。
本次我的课程设计就利用了MATLAB软件,通过实验,对各边缘检测算子进行了对比和研究,例如基于一阶导数的边缘检测算子Roberts算子、Sobel算子,基于二阶导数的拉普拉斯算子,canny边缘检测算子等。
并且在4天内完成了课程设计作业,基本达到既定要求。
二、课题原理简介边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像。
检测出的边缘并不等同于实际目标的真实边缘。
图像的边缘有方向和幅度两个属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈。
边缘上的这种变化可以用微分算子检测出来,通常用一阶或两阶导数来检测边缘,如下图所以。
不同的是一阶导数认为最大值对应边缘位置,而二阶导数则以过零点对应边缘位置。
(a)图像灰度变化(b)一阶导数(c)二阶导数下面是一些主要的边缘检测算子的原理介绍1 Roberts(罗伯特)边缘检测算子景物的边缘总是以图像中强度的突变形式出现的,所以景物边缘包含着大量的信息。
由于景物的边缘具有十分复杂的形态,因此,最常用的边缘检测方法是所谓的“梯度检测法”。
设(,)s x y是图像边缘f x y是图像灰度分布函数;(,)是梯度的方向。
则有的梯度值;(,)x y[][]{}1222(,)(,)(,)(,)(,)s x y f x n y f x y f x y n f x y =+-++- (n=1,2,...) (1)[][]{}1(,)tan (,)(,)/(,)(,)x y f x y n f x y f x n y f x y ϕ-=+-+- (2) 式(1)与式(2)可以得到图像在(x,y )点处的梯度大小和梯度方向。
Roberts 边缘检测算子是一种利用局部差分方法寻找边缘的算子,Robert 梯度算子所采用的是对角方向相邻两像素值之差,所以用差分代替一阶偏导,算子形式可表示如下: (,)(,)(1,1)(,)(1,)(,1)x yf x y f x y f x y f x y f x y f x y ∆=---⎧⎪⎨∆=---⎪⎩实际应用中,图像中的每个像素点都用这两个模板进行卷积运算,为避免出现负值,在边缘检测时常提取其绝对值。
2 Sobel (索贝尔)边缘检测算子该算子是由两个卷积核1(,)g x y 与2(,)g x y 对原图像(,)f x y 进行卷积运算而得到的。
其数学表达式为:121111(,)(,)(,),(,)(,)M N M Nm n m n S x y MAX f m n g i m j n f m n g i m j n ====⎡⎤=----⎢⎥⎣⎦∑∑∑∑实际上Sobel 边缘算子所采用的算法是先进行加权平均,然后进行微分运算,我们可以用差分代替一阶偏导,算子的计算方法如下:[][][][](,)(1,1)2(,1)(1,1)(1,1)2(,1)(1,1)(,)(1,1)2(1,)(1,1)(1,1)2(1,)(1,1)x y f x y f x y f x y f x y f x y f x y f x y f x y f x y f x y f x y f x y f x y f x y ⎧∆=-++++++---+-++-⎪⎨∆=--+-+-+-+-+++++⎪⎩ Sobel 算子垂直方向和水平方向的模板如图(B )所示,前者可以检测出图像中的水平方向的边缘,后者则可以检测图像中垂直方向的边缘。
实际应用中,图像中的每一个像素点都用这两个卷积核进行卷积运算,取其最大值作为输出。
运算结果是一幅体现边缘幅度的图像。
(a ) (b ) 图(B )Sobel 算子模板3 Prewitt (普瑞维特)边缘检测算子Prewitt 边缘检测算子就是一种利用局部差分平均方法寻找边缘的算子,它体现了三对像素点像素值之差的平均概念,因为平均能减少或消除噪声,为此我们可以先求平均,再求差分,即利用所谓的平均差分来求梯度。
用差分代替一阶偏导可得算子形式如下[][][][](,)(1,1)(,1)(1,1)(1,1)(,1)(1,1)(,)(1,1)(1,)(1,1)(1,1)(1,)(1,1)x y f x y f x y f x y f x y f x y f x y f x y f x y f x y f x y f x y f x y f x y f x y ⎧∆=+++++-+-+-+-+--⎪⎨∆=--+-+-+-+-+++++⎪⎩ 它的使用方法同Sobel 算子一样,图像中的每个点都用这两个核进行卷积,取得最大值作为输出。
Prewitt 算子也产生一幅边缘图像。
4 Laplacian (拉普拉斯)边缘检测算子拉普拉斯边缘检测算子是对二维函数进行二阶导数运算的标量算子,它的定义是: 22222(,)(,)(,)f x y f x y f x y x y∂∂∇=+∂∂ (8)用差分代替二阶偏导时,与前述三个一阶导数算子不同,拉普拉斯算子的形式可表示如下:22(,)(1,)(1,)(,1)(,1)4(,)(,)(1,1)(,1)(1,1)(1,)(1,)(1,1)(,1)(1,1)8(,)f x y f x y f x y f x y f x y f x y f x y f x y f x y f x y f x y f x y f x y f x y f x y f x y ⎧∆=++-+++--⎪⎨∆=--+-++-+-++⎪⎩+-++++++-它的使用方法是用图中的两个点阵之一作为卷积核,与原图像进行卷积运算即可。
拉普拉斯算子又是一个线性的移不变算子,它的传递函数在频域空间的原点为零,因此,一个经拉普拉斯滤波过的图像具有零平均灰度。
5 canny (凯尼)边缘检测算子根据边缘检测的有效性和定位的可靠性,Canny 研究了最优边缘检测器所需的特性,给出了评价边缘检测性能优劣的三个指标:① 高的准确性,在检测的结果里应尽量多的包含真正的边缘。
② 高的精确度,检测到的边缘应该在真正的边界上。
③ 单像素宽,要有很高的选择性,对每个边缘有唯一的响应。
针对这三个指标,Canny 提出了用于边缘检测的一阶微分滤波器'()h x 的三个最优化标准则,即最大信噪比准则、最优过零点定位准则和单边缘响应准则。
具体如下: (a )信噪比准则SNR =(b )定位精确度准则L 为边缘的定位精度,定义如下:L =(c )单边缘响应准则要保证对但边缘只有一个响应,检测算子的脉冲响应导数的零交叉点平均距离应该满足:'()zcaD fπ=这三个准则是对前述边缘检测指标的定量描述。
抑制噪声和边缘精确定位是无法同时得到满足的,因此,在实际应用中只能寄希望于再抑制噪声和提高边缘定位精度之间实现一个合理的折衷。
Canny边缘检测算子步骤如下:Step1:用高斯滤波器对图像进行滤波消噪;Step2:用一阶偏导的有限差分来计算梯度的幅值和方向;Step3:对梯度幅值进行非极大值抑制;Step4:用双阈值算法检测和连接边缘。
三、经典边缘检测算子性能比较及程序3.1 MATLAB程序仿真为了分析上述几种算子的效果,我们用MATLAB对lenna原始图像以及分别加入高斯噪声和椒盐噪声后的lenna图像进行检测。
1.各算子对lenna原始图像的处理效果程序如下:function jingdianI=imread('lenna.jpg');B1=edge(I,'roberts');B2=edge(I,'sobel');B3=edge(I,'prewitt');B4=edge(I,'canny');B5=edge(I,'log');B6=DetectContour(I,0.3);subplot(2,3,1);imshow(B1);title('roberts算子检测');%命名为'roberts算子检测’subplot(2,3,2);imshow(B2);title('sobel算子检测'); %命名为'sobel算子检测’subplot(2,3,3);imshow(B3);title('prewitt算子检测'); %命名为'prewitt算子检测’subplot(2,3,4);imshow(B4);title('canny算子检测'); %命名为'canny算子检测’subplot(2,3,5)imshow(B5);title('log算子检测'); %命名为'log算子检测’subplot(2,3,6);imshow(B6);title('kirsch算子检测'); %命名为'kirsch算子检测’仿真实验结果如下:Lenna原始图像2.对lenna原始图像加入高斯噪声:程序如下:function jingdianI=imread('lenna.jpg');%定义I;I1=imnoise(I,'gaussian');B1=edge(I1,'roberts');B2=edge(I1,'sobel');B3=edge(I1,'prewitt');B4=edge(I1,'canny');B5=edge(I1,'log');B6=DetectContour(I1,0.3);subplot(2,3,1);imshow(B1);title('roberts算子检测'); %命名为'roberts算子检测’subplot(2,3,2);imshow(B2);title('sobel算子检测'); %命名为'sobel算子检测’subplot(2,3,3);imshow(B3);title('prewitt算子检测'); %命名为'prewitt算子检测’subplot(2,3,4);imshow(B4);title('canny算子检测'); %命名为'canny算子检测’subplot(2,3,5)imshow(B5);title('log算子检测'); %命名为'log算子检测’subplot(2,3,6);imshow(B6);title('kirsch算子检测'); %命名为'kirsch算子检测’加入高斯噪声的lenna图像各算子对加入高斯噪声的lenna图像的处理效果如下所示:3.对lenna原始图像加入椒盐噪声:程序如下:function jingdianI=imread('lenna.jpg');I2=imnoise(I,'salt & pepper');%加入椒盐噪声;B1=edge(I2,'roberts');B2=edge(I2,'sobel');B3=edge(I2,'prewitt');B4=edge(I2,'canny');B5=edge(I2,'log');B6=DetectContour(I2,0.3);subplot(2,3,1);imshow(B1);title('roberts算子检测'); %命名为'roberts算子检测’subplot(2,3,2);imshow(B2);title('sobel算子检测'); %命名为'sobel算子检测’subplot(2,3,3);imshow(B3);title('prewitt算子检测'); %命名为'prewitt算子检测’subplot(2,3,4);imshow(B4);title('canny算子检测'); %命名为'canny算子检测’subplot(2,3,5)imshow(B5);title('log算子检测'); %命名为'log算子检测’subplot(2,3,6);imshow(B6);title('kirsch算子检测'); %命名为'kirsch算子检测’加入椒盐噪声的lenna图像各算子对加入椒盐噪声的lenna图像的处理效果如下所示:3.2 实验结果的比较由于Roberts算子是利用图像的两个对角线的相邻像素之差进行梯度幅值的检测,所以求得的是在差分点处梯度幅值的近似值,并且检测水平和垂直方向边缘的性能好于斜线方向的边缘,检测精度比较高,但容易丢失一部分边缘,同时由于没经过图像平滑计算,因此不能抑制噪声,但该算子对具有陡峭的低噪声图像响应最好。