实验二 图像分割与边缘检测
图像分割 实验报告

图像分割实验报告图像分割实验报告一、引言图像分割是计算机视觉领域中的一个重要研究方向,它旨在将一幅图像分割成具有语义意义的不同区域。
图像分割在许多应用中发挥着关键作用,如目标检测、场景理解和医学图像处理等。
本实验旨在探索不同的图像分割方法,并对其进行比较和评估。
二、实验方法本实验选择了两种常用的图像分割方法:基于阈值的分割和基于边缘的分割。
首先,我们使用Python编程语言和OpenCV库加载图像,并对图像进行预处理,如灰度化和平滑处理。
接下来,我们将详细介绍这两种分割方法的实现步骤。
1. 基于阈值的分割基于阈值的分割是一种简单而常用的分割方法。
它通过将图像像素的灰度值与预先设定的阈值进行比较,将像素分为前景和背景两类。
具体步骤如下:(1)将彩色图像转换为灰度图像。
(2)选择一个适当的阈值,将图像中的像素分为两类。
(3)根据阈值将图像分割,并得到分割结果。
2. 基于边缘的分割基于边缘的分割方法是通过检测图像中的边缘来实现分割的。
边缘是图像中灰度变化剧烈的区域,通常表示物体的边界。
具体步骤如下:(1)将彩色图像转换为灰度图像。
(2)使用边缘检测算法(如Canny算法)检测图像中的边缘。
(3)根据边缘信息将图像分割,并得到分割结果。
三、实验结果与讨论我们选择了一张包含多个物体的彩色图像进行实验。
首先,我们使用基于阈值的分割方法对图像进行分割,选择了适当的阈值进行实验。
实验结果显示,基于阈值的分割方法能够将图像中的物体与背景分离,并得到较好的分割效果。
接下来,我们使用基于边缘的分割方法对同一张图像进行分割。
实验结果显示,基于边缘的分割方法能够准确地检测出图像中的边缘,并将图像分割成多个具有边界的区域。
与基于阈值的分割方法相比,基于边缘的分割方法能够更好地捕捉到物体的形状和边界信息。
通过对比两种分割方法的实验结果,我们发现基于边缘的分割方法相对于基于阈值的分割方法具有更好的效果。
基于边缘的分割方法能够提供更准确的物体边界信息,但也更加复杂和耗时。
边缘检测与图像分割精品PPT课件

例1:检测不连续性
例2:检测相似性
7.2 阈值分割
7.2.1 阈值分割原理与分类
7.2.2 阈值选取方法
7.3 边缘检测
7.3.1 边缘检测概念
7.3.2 基于一阶导数法的边缘检测
基于二阶导数法的边缘检测
7.4 区域分割
7.4.1 区域生长法
7.4.2 分裂合并法
7.5 直线检测
阈值分割法的特点:
适用于物体与背景有较强对比的情况,重要的是背景或 物体的灰度比较单一。(可通过先求背景,然后求反得 到物体)
这种方法总可以得到封闭且连通区域的边界。
显然对于阈值分割方法,确定一个最优阈值是分割的关键问题, 现有的大部分算法都是集中在阈值确定的研究上。
常用的阈值分割就是图像的二值化,选择一阈值(?),将图像
图像分割及其基于分割的目标表达、特征提取和参数测量等将原 始图像转化为更抽象更紧凑的形式,使得更高层的图像分析和理解成 为可能。
图像分割多年来一直得到人们的高度重视,至今已提出了上千种 各种类型的分割算法,而且近年来每年都有上百篇相关研究报道发表 。
3.图像分割的基本策略(P187)
分割算法基于灰度值的两个基本特性:不连续性和相似性。 首先检测图像像素灰度级的不连续性,找到点、线(宽度为1)、 边(不定宽度)。先找边,后确定区域。 或者,检测图像区域像素的灰度值的相似性,通过选择阈值, 找到灰度值相似的区域,区域的外轮廓就是对象的边。
gx,
y
1 0
f x, y T f x, y T
一副含有一个与背景明显对比的物体图像具 有包含双峰的灰度直方图,如图3一3所示。 两个尖峰对应于物体内部和外部较多数目的 点。两峰间的谷对应于物体边缘附近相对较 少数目的点,在类似这样的情况下,通常采 用直方图来确定灰度阐值的值。
Matlab中的图像分割与边缘检测方法

Matlab中的图像分割与边缘检测方法引言图像处理是一门研究如何对数字图像进行处理、分析、改进和理解的学科。
图像分割与边缘检测在图像处理中占据着重要的地位。
图像分割是将图像划分为多个具有语义意义的区域或对象的过程,而边缘检测则是找到图像中不连续的区域边界。
Matlab作为一种强大的软件工具,提供了丰富的图像处理函数和工具箱,本文将探讨在Matlab中应用的图像分割与边缘检测方法。
一、图像分割方法1. 基于阈值的分割基于阈值的分割是一种简单但有效的方法。
该方法将图像像素的灰度值与预设的阈值进行比较,根据比较结果将像素分配到不同的区域。
在Matlab中,可以使用imbinarize和graythresh函数来实现基于阈值的分割。
2. 区域增长法区域增长法基于像素之间的相似性来进行分割。
该方法从种子像素开始,通过判断邻域像素与种子像素的相似度来不断扩展区域。
在Matlab中,可以使用imsegf和regiongrowing函数来实现区域增长法。
3. 聚类方法聚类方法将图像像素分为多个类别,每个类别代表一个区域。
该方法通常使用聚类算法,比如k-means算法或者模糊c-均值算法。
在Matlab中,可以使用kmeans和fcm函数来实现聚类方法。
4. 模型驱动法模型驱动法基于数学模型来描述图像中的区域。
该方法通过定义一个能够衡量图像中区域特征的能量函数,并通过优化算法来最小化能量函数,从而得到分割结果。
在Matlab中,可以使用activecontour和chanvese函数来实现模型驱动法。
二、边缘检测方法1. Sobel算子Sobel算子是一种经典的边缘检测算子。
其基本思想是通过计算像素与其周围像素之间的差异来检测边缘。
在Matlab中,可以使用imgradient和imgradientxy函数来实现Sobel算子。
2. Canny算子Canny算子是一种广泛使用的边缘检测算子。
它利用高斯平滑、梯度计算、非极大值抑制和双阈值法来检测边缘。
医学图像处理中的边缘检测与分割算法

医学图像处理中的边缘检测与分割算法边缘检测与分割是医学图像处理中的重要部分,被广泛应用于疾病诊断、医学影像分析和手术辅助等领域。
边缘检测算法用于提取图像中的边缘信息,而分割算法则可以将图像划分为不同的区域,有助于医生对图像进行进一步分析和诊断。
一、边缘检测算法在医学图像处理中,常用的边缘检测算法包括基于梯度的方法、基于模型的方法和基于机器学习的方法。
1. 基于梯度的方法基于梯度的边缘检测算法通过计算图像中像素点的梯度值来确定边缘位置。
常用的算法包括Sobel算子、Prewitt算子和Canny算子。
Sobel算子是一种常用的离散微分算子,通过在图像中对每个像素点应用Sobel算子矩阵,可以得到图像的x方向和y方向的梯度图像。
通过计算梯度幅值和方向,可以得到边缘的位置和方向。
Prewitt算子与Sobel算子类似,也是一种基于梯度的边缘检测算子。
它通过将图像中的每个像素点与Prewitt算子矩阵进行卷积运算,得到图像的x方向和y方向的梯度图像。
进一步计算梯度幅值和方向,可以确定边缘的位置和方向。
Canny算子是一种经典的边缘检测算法,它采用多步骤的方法来检测边缘。
首先,对图像进行高斯滤波来减少噪声。
然后,计算图像的梯度幅值和方向,进一步剔除非最大值的梯度。
最后,通过设置双阈值来确定真正的边缘。
2. 基于模型的方法基于模型的边缘检测算法借助数学模型来描述边缘的形状和特征。
常用的算法包括基于边缘模型的Snake算法和基于边缘模型的Active Contour算法。
Snake算法(也称为活动轮廓模型)是一种基于曲线的边缘检测算法。
它通过将一条初始曲线沿着图像中的边缘移动,使得曲线更好地贴合真实边缘。
Snake算法考虑了边缘的连续性、平滑性和能量最小化,可以获得较为准确的边缘。
Active Contour算法是Snake算法的进一步发展,引入了图像能量函数。
通过最小化能量函数,可以得到最佳的边缘位置。
Active Contour算法可以自动调整曲线的形状和位置,适应复杂的图像边缘。
详细的图像分割之边缘检测实验报告

边缘检测实验报告一、实验目的通过课堂的学习,已经对图像分割的相关理论知识已经有了全面的了解,知道了许多图像分割的算法及算子,了解到不同的算子算法有着不同的优缺点,为了更好更直观地对图像分割进行深入理解,达到理论联系实际的目的,特制定如下的实验。
二、实验原理:图像处理有两大类目的:1.改善像质(增强、恢复);2.图像分析:对图像内容作出描述;其一般的图像处理过程如下:图像分割的算法有:(1)阈值分割原理:(,)(,)(,)EBLf x y Tg x y L f x y T≥⎧=⎨<⎩(2)边缘检测:梯度对应一阶导数,对于一个连续图像函数f(x,y):梯度矢量定义:梯度的幅度:梯度的方向:a) Roberts 算子b) Sobel 算子Roberts 算子[]TTyxy f x f G G y x f ⎦⎤⎢⎣⎡∂∂∂∂==∇),(122)()),((),(y x G G y x f mag y x f +=∇=∇)arctan(),(x y G y x =φ()()()[]()()[]{}21221,,11,1,,+-++++-=j i f j i f j i f j i f j i gc) Prewitt 算子d) Kirsch 算子由K 0~K 7八个方向模板组成,将K0~K7的模板算法分别与图像中的3×3区域乘,选最大一个值,作为中央像素的边缘强度(3)区域分割1 区域生长法 算法描述先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素有相似性质的像素合并到种子像素所在的区域中。
将这些新像素当作新的种子像素继续进行上面的过程,直到再没有满足条件的像素可被包括进来。
2 分裂合并法实际中常先把图像分成任意大小且不重叠的区域,然后再合并或分裂这些区域以满足分割的要求,即分裂合并法.一致性测度可以选择基于灰度统计特征(如同质区域中的方差),假设阈值为T ,则算法步骤为:① 对于任一Ri ,如果 ,则将其分裂成互不重叠的四等分; ② 对相邻区域Ri 和Rj ,如果 ,则将二者合并; ③ 如果进一步的分裂或合并都不可能了,则终止算法。
图像处理中的边缘检测和图像分割

图像处理中的边缘检测和图像分割在计算机视觉领域中,图像处理是一项非常重要的技术。
其中,边缘检测和图像分割是两个关键环节。
本文将从边缘检测和图像分割的基本概念入手,详细介绍它们的原理和应用。
一、边缘检测1、基本概念边缘是指图像中亮度、颜色等性质发生突然变化的地方。
边缘检测就是在图像中寻找这些突然变化的地方,并将它们标记出来。
在实际应用中,边缘检测可以用于目标跟踪、物体检测等方面。
2、常见方法常见的边缘检测算法有Canny、Sobel、Laplacian等。
其中,Canny算法是一种广泛使用的边缘检测算法,其基本原理是通过计算图像中每个像素点的梯度值和方向,来判断该点是否为边缘。
Sobel算法则是利用了图像卷积的思想,先对图像进行卷积操作,再计算得到每个像素点的梯度值。
Laplacian算法则是通过计算图像中每个像素点的二阶导数,来寻找亮度突变的地方。
3、应用场景边缘检测常用于在图像中寻找物体的轮廓线,或者分离图像中的前景和背景等方面。
例如在计算机视觉中的人脸识别中,边缘检测可以用于提取人脸的轮廓线,以便于后续的特征提取和匹配。
二、图像分割1、基本概念图像分割是把图像中的像素点分成不同的区域,以便于更好地理解和处理图像。
分割的结果通常是一个二值图像,其中每个像素点被标记为前景或者背景。
在实际应用中,图像分割可以用于目标检测、图像识别等方面。
2、常见方法常见的图像分割算法有阈值分割、聚类分割、边缘分割等。
其中,阈值分割是一种较为简单且常用的分割算法,其原理是为图像中每个像素点设置一个阈值,大于阈值的像素点被标记为前景,小于阈值的则为背景。
聚类分割算法则是通过对图像中像素点进行聚类操作,来划分不同的区域。
边缘分割则是利用边缘检测的结果,将图像分成前景和背景两个部分。
3、应用场景图像分割可以应用于诸如目标检测、图像识别、医学图像分析等方面。
例如在医学图像分析中,图像分割可以用于将CT或MRI图像中的组织分割成肝、肿瘤等不同的部分,以便于医生更好地进行预测和治疗决策。
图像的边缘检测实验报告

图像的边缘检测实验报告
《图像的边缘检测实验报告》
图像的边缘检测是计算机视觉领域中的重要技术之一,它可以帮助我们识别图
像中物体的边缘和轮廓,从而实现图像分割、特征提取和目标识别等应用。
在
本次实验中,我们将对几种常用的边缘检测算法进行比较和分析,以评估它们
在不同场景下的性能和适用性。
首先,我们使用了Sobel算子进行边缘检测。
Sobel算子是一种基于梯度的边缘检测方法,它通过对图像进行卷积操作来寻找像素值变化最大的地方,从而找
到图像中的边缘。
实验结果显示,Sobel算子在一些简单场景下表现良好,但
在复杂背景和噪声干扰较大的情况下效果不佳。
接着,我们尝试了Canny边缘检测算法。
Canny算法是一种多阶段的边缘检测
方法,它通过对图像进行高斯滤波、计算梯度、非极大值抑制和双阈值处理等
步骤来检测图像中的边缘。
实验结果显示,Canny算法在复杂场景下表现出色,能够有效地抑制噪声并找到图像中的真实边缘。
最后,我们还尝试了Laplacian算子和Prewitt算子等其他边缘检测算法,并对
它们的性能进行了比较和分析。
实验结果显示,不同的边缘检测算法在不同场
景下表现出各自的优势和劣势,需要根据具体的应用需求来选择合适的算法。
总的来说,本次实验对图像的边缘检测算法进行了全面的比较和分析,为我们
进一步深入理解和应用这些算法提供了重要的参考和指导。
希望通过这些实验
结果,我们能够更好地利用边缘检测技术来解决实际的图像处理问题,为计算
机视觉领域的发展做出更大的贡献。
详细的图像分割之边缘检测实验报告

边缘检测实验报告一、实验目的通过课堂的学习,已经对图像分割的相关理论知识已经有了全面的了解,知道了许多图像分割的算法及算子,了解到不同的算子算法有着不同的优缺点,为了更好更直观地对图像分割进行深入理解,达到理论联系实际的目的,特制定如下的实验。
二、实验原理:图像处理有两大类目的:1.改善像质(增强、恢复);2.图像分析:对图像内容作出描述;其一般的图像处理过程如下:图像分割的算法有:(1)阈值分割原理:(,)(,)(,)EBL f x y T g x y L f x y T≥⎧=⎨<⎩(2)边缘检测:梯度对应一阶导数,对于一个连续图像函数f(x,y):梯度矢量定义:梯度的幅度:梯度的方向:a) Roberts 算子b) Sobel 算子Roberts 算子[]TTyxy f x f G G y x f ⎥⎦⎤⎢⎣⎡∂∂∂∂==∇),(122)()),((),(y x G G y x f mag y x f +=∇=∇)arctan(),(x y G y x =φ()()()[]()()[]{}21221,,11,1,,+-++++-=j i f j i f j i f j i f j i gc) Prewitt 算子d) Kirsch 算子由K 0~K 7八个方向模板组成,将K0~K7的模板算法分别与图像中的3×3区域乘,选最大一个值,作为中央像素的边缘强度(3)区域分割1 区域生长法 算法描述先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素有相似性质的像素合并到种子像素所在的区域中。
将这些新像素当作新的种子像素继续进行上面的过程,直到再没有满足条件的像素可被包括进来。
2 分裂合并法实际中常先把图像分成任意大小且不重叠的区域,然后再合并或分裂这些区域以满足分割的要求,即分裂合并法.一致性测度可以选择基于灰度统计特征(如同质区域中的方差),假设阈值为T ,则算法步骤为:① 对于任一Ri ,如果 ,则将其分裂成互不重叠的四等分; ② 对相邻区域Ri 和Rj ,如果 ,则将二者合并; ③ 如果进一步的分裂或合并都不可能了,则终止算法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二图像分割与边缘检测一.实验目的及要求1.利用MATLAB研究图像分割与边缘检测的常用算法原理;2.掌握MATLAB图像域值分割与边缘检测函数的使用方法;3.了解边缘检测的算法和用途,比较Sobel、Prewitt、Canny等算子边缘检测的差异。
二、实验内容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。
熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。
1.图像阈值分割clear all, close all;I = imread('rice.tif');figure (1),imshow(I)figure(2); imhist(I)T=120/255;Ibw1 = im2bw(I,T); %选择阈值T=120/255对图像二值化;figure(3);subplot(1,2,1), imshow(Ibw1);T=graythresh(I); %采用Otsu方法计算最优阈值T对图像二值化;L = uint8(T*255)Ibw2 = im2bw(I,T);subplot(1,2,2), imshow(Ibw2);help im2bw;help graythresh;(令T取不同值,重做上述试验,观察试验结果)以下是程序执行结果:Comand窗口:L =125IM2BW Convert image to binary image by thresholding.IM2BW produces binary images from indexed, intensity, or RGBimages. To do this, it converts the input image to grayscaleformat (if it is not already an intensity image), and thenconverts this grayscale image to binary by thresholding. Theoutput binary image BW has values of 0 (black) for all pixelsin the input image with luminance less than LEVEL and 1(white) for all other pixels. (Note that you specify LEVEL inthe range [0,1], regardless of the class of the input image.)BW = IM2BW(I,LEVEL) converts the intensity image I to blackand white.BW = IM2BW(X,MAP,LEVEL) converts the indexed image X withcolormap MAP to black and white.BW = IM2BW(RGB,LEVEL) converts the RGB image RGB to black andwhite.Note that the function GRAYTHRESH can be used to compute LEVELautomatically.Class Support-------------The input image can be of class uint8, uint16, or double.The output image BW is of class uint8.Example-------load treesBW = im2bw(X,map,0.4);imshow(X,map), figure, imshow(BW)See also GRAYTHRESH, IND2GRAY, RGB2GRAY.GRAYTHRESH Compute global image threshold using Otsu's method.LEVEL = GRAYTHRESH(I) computes a global threshold (LEVEL) that can be used to convert an intensity image to a binary image with IM2BW. LEVELis a normalized intensity value that lies in the range [0, 1].GRAYTHRESH uses Otsu's method, which chooses the threshold to minimize the intraclass variance of the thresholded black and white pixels.Class Support-------------The input image I can be of class uint8, uint16, or double. LEVELis a double scalar.Example-------I = imread('blood1.tif');level = graythresh(I);BW = im2bw(I,level);imshow(BW)See also IM2BW.下面是T取不同值时的所得的结果:T=60时:原图像原图像的灰度直方图T=60时分割的结果Otsu方法分割的结果T=120时:原图像原图像的灰度直方图T=120时分割的结果Otsu方法分割的结果T=200时:原图像原图像的灰度直方图T=120时分割的结果Otsu方法分割的结果对以上实验结果分析如下:由matalab命令窗口显示的内容可知,不同的阈值分割的结果并不一样。
由灰度直方图可以知道,可以利用双峰发对图像进行分割,即认为背景由前景和背景组成,图像的灰度分布曲线可近似认为是有两个正态分布函数叠加而成,图像的直方图将会出现两个分离的峰值,在波谷处即为最佳阈值。
所以在实验结果中,T=120时分割的结果要明显好于另外两个分割结果,因为其更接近“波谷值”。
graythresh函数是用大津法计算全局图像的阈值。
大津法是采用方差最大的方法区分前景和背景。
方差是灰度分布均匀的度量,其原理是;如果某个阈值使背景和前景像素相互参杂,那么图像的图像灰度像素肯定较为均匀,只有前景和背景分离开才会使均匀性最差,即方差最大。
2.边缘检测clear all, close all;I = imread('rice.tif');BW1 = edge(I,'sobel');BW2 = edge(I,'canny');BW3 = edge(I,'prewitt');BW4 = edge(I,'roberts');BW5 = edge(I,'log');figure(1), imshow(I), title('Original Image');figure(2), imshow(BW1), title('sobel');figure(3), imshow(BW2), title('canny');figure(4), imshow(BW3), title('prewitt');figure(5), imshow(BW4), title('roberts');figure(6), imshow(BW5), title('log');% 在完成上述试验后,查看函数edge()使用说明。
help edge% 仔细阅读函数edge()使用说明后,研究IPT提供的边缘检测演示程序。
edgedemo下面是程序执行的结果:command窗口:help edgeEDGE Find edges in intensity image.EDGE takes an intensity image I as its input, and returns a binary image BW of the same size as I, with 1's where the function finds edges in Iand 0's elsewhere.EDGE supports six different edge-finding methods:The Sobel method finds edges using the Sobel approximation to thederivative. It returns edges at those points where the gradient ofI is maximum.The Prewitt method finds edges using the Prewitt approximation tothe derivative. It returns edges at those points where the gradientof I is maximum.The Roberts method finds edges using the Roberts approximation tothe derivative. It returns edges at those points where the gradientof I is maximum.The Laplacian of Gaussian method finds edges by looking for zerocrossings after filtering I with a Laplacian of Gaussian filter.The zero-cross method finds edges by looking for zero crossingsafter filtering I with a filter you specify.The Canny method finds edges by looking for local maxima of thegradient of I. The gradient is calculated using the derivative of aGaussian filter. The method uses two thresholds, to detect strongand weak edges, and includes the weak edges in the output only ifthey are connected to strong edges. This method is therefore lesslikely than the others to be "fooled" by noise, and more likely todetect true weak edges.The parameters you can supply differ depending on the method youspecify. If you do not specify a method, EDGE uses the Sobel method.Sobel Method------------BW = EDGE(I,'sobel') specifies the Sobel method.BW = EDGE(I,'sobel',THRESH) specifies the sensitivity threshold forthe Sobel method. EDGE ignores all edges that are not stronger than THRESH. If you do not specify THRESH, or if THRESH is empty ([]), EDGE chooses the value automatically.BW = EDGE(I,'sobel',THRESH,DIRECTION) specifies directionality for the Sobel method. DIRECTION is a string specifying whether to look for'horizontal' or 'vertical' edges, or 'both' (the default).[BW,thresh] = EDGE(I,'sobel',...) returns the threshold value.Prewitt Method--------------BW = EDGE(I,'prewitt') specifies the Prewitt method.BW = EDGE(I,'prewitt',THRESH) specifies the sensitivity threshold forthe Prewitt method. EDGE ignores all edges that are not stronger than THRESH. If you do not specify THRESH, or if THRESH is empty ([]), EDGE chooses the value automatically.BW = EDGE(I,'prewitt',THRESH,DIRECTION) specifies directionality for the Prewitt method. DIRECTION is a string specifying whether to lookfor 'horizontal' or 'vertical' edges, or 'both' (the default).[BW,thresh] = EDGE(I,'prewitt',...) returns the threshold value.Roberts Method--------------BW = EDGE(I,'roberts') specifies the Roberts method.BW = EDGE(I,'roberts',THRESH) specifies the sensitivity threshold forthe Roberts method. EDGE ignores all edges that are not stronger than THRESH. If you do not specify THRESH, or if THRESH is empty ([]), EDGE chooses the value automatically.[BW,thresh] = EDGE(I,'roberts',...) returns the threshold value.Laplacian of Gaussian Method----------------------------BW = EDGE(I,'log') specifies the Laplacian of Gaussian method.BW = EDGE(I,'log',THRESH) specifies the sensitivity threshold for the Laplacian of Gaussian method. EDGE ignores all edges that are not stronger than THRESH. If you do not specify THRESH, or if THRESH is empty ([]), EDGE chooses the value automatically.BW = EDGE(I,'log',THRESH,SIGMA) specifies the Laplacian of Gaussian method, using SIGMA as the standard deviation of the LoG filter. The default SIGMA is 2; the size of the filter is N-by-N, whereN=CEIL(SIGMA*3)*2+1.[BW,thresh] = EDGE(I,'log',...) returns the threshold value.Zero-cross Method-----------------BW = EDGE(I,'zerocross',THRESH,H) specifies the zero-cross method, using the specified filter H. If THRESH is empty ([]), EDGE choosesthe sensitivity threshold automatically.[BW,THRESH] = EDGE(I,'zerocross',...) returns the threshold value.Canny Method----------------------------BW = EDGE(I,'canny') specifies the Canny method.BW = EDGE(I,'canny',THRESH) specifies sensitivity thresholds for the Canny method. THRESH is a two-element vector in which the first element is the low threshold, and the second element is the high threshold. Ifyou specify a scalar for THRESH, this value is used for the highthreshold and 0.4*THRESH is used for the low threshold. If you do not specify THRESH, or if THRESH is empty ([]), EDGE chooses low and high values automatically.BW = EDGE(I,'canny',THRESH,SIGMA) specifies the Canny method, using SIGMA as the standard deviation of the Gaussian filter. The default SIGMA is 1; the size of the filter is chosen automatically, basedon SIGMA.[BW,thresh] = EDGE(I,'canny',...) returns the threshold values as atwo-element vector.Class Support-------------I can be of class uint8, uint16, or double. BW is of class uint8.Remarks-------For the 'log' and 'zerocross' methods, if you specify athreshold of 0, the output image has closed contours, becauseit includes all of the zero crossings in the input image.Example-------Find the edges of the rice.tif image using the Prewitt and Canny methods:I = imread('rice.tif');BW1 = edge(I,'prewitt');BW2 = edge(I,'canny');imshow(BW1)figure, imshow(BW2)See also FSPECIAL.实验结果分析如下:以上是不同的算子对图像的分割结果。