主要内容

边缘

在强度图像中查找边缘

描述

BW=边缘(返回二进制图像。BW包含1S函数在其中查找灰度或二值图像中的边缘0其他地方。默认情况下,边缘采用Sobel边缘检测方法。

例子

BW=边缘(方法检测图像中的边缘采用的边缘检测算法方法

BW=边缘(方法门槛返回强于的所有边门槛

BW=边缘(方法门槛方向指定要检测的边缘方向。Sobel和Prewitt方法可以检测垂直方向、水平方向或两者兼有的边缘。Roberts方法可以检测从水平角度45°、135°或两者角度的边缘。此语法仅在以下情况下有效方法“索贝尔”“普瑞维特”,或“罗伯特”

BW=边缘(___“什么都没有”跳过边缘细化阶段,这可以提高性能。此语法仅在以下情况下有效:方法“索贝尔”“普瑞维特”,或“罗伯特”

BW=边缘(方法门槛σ指定σ,过滤器的标准偏差。此语法仅在以下情况下有效:方法“日志”“精明”

BW=边缘(方法门槛h使用“zerocross”方法和过滤器,h,你指定的。此语法仅在以下情况下有效方法“zerocross”

BWthreshOut]=边缘(___也返回阈值。

BWthreshOut全球之声“大酒店”]=边缘(___也返回方向梯度大小。对于Sobel和Prewitt方法,全球之声“大酒店”对应于垂直和水平梯度。对于Roberts的方法,全球之声“大酒店”分别对应于与水平成45°和135°角度的梯度。此语法仅在以下情况下有效方法“索贝尔”“普瑞维特”,或“罗伯特”

例子

全部折叠

将灰度图像读入工作区并显示它。

我= imread (“circuit.tif”);imshow(我)

图中包含一个坐标轴。轴包含一个image类型的对象。

使用Canny方法查找边。

BW1 =边缘(我“精明”);

使用Prewitt方法找到边。

BW2 =边缘(我“普瑞维特”);

并排显示两个结果。

imshowpair (BW1 BW2,“蒙太奇”

图中包含一个坐标轴。轴包含一个image类型的对象。

输入参数

全部折叠

输入图像,指定为二维灰度图像或二维二值图像。

“差不多”方法、数据类型的图像必须归一化到范围[0,1]。如果值超出范围[0,1],则可以使用重新缩放函数将值重新缩放到预期范围。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

边缘检测方法,指定为以下方法之一。

方法 描述
“索贝尔”

在图像的渐变点处查找边是最大的,使用Sobel近似的导数。

“普瑞维特”

在渐变为是最大的,使用Prewitt近似的导数。

“罗伯特” 在渐变为是最大的,使用导数的Roberts近似。
“日志” 通过滤波后的零交叉查找边缘用拉普拉斯高斯(LoG)滤波器。
“zerocross” 通过滤波后的零交叉查找边缘使用指定的过滤器,h
“精明”

通过寻找梯度的局部极大值来寻找边. 这个边缘函数使用高斯滤波器的导数来计算梯度。该方法采用两个阈值来检测强边缘和弱边缘,如果弱边缘与强边缘相连,则输出中包含弱边缘。通过使用两个阈值,Canny方法比其他方法更不容易被噪声欺骗,更容易检测到真实的弱边缘。

“差不多”

使用Canny边缘检测算法的近似版本来查找边缘,该算法提供了更快的执行时间,但牺牲了较不精确的检测。浮点图像被期望归一化到范围[0,1]。

灵敏度阈值,指定为任意的数值标量方法的2元素向量“精明”“差不多”方法。边缘忽略所有强度小于的边门槛.有关该参数的详细信息,请参见算法

  • 如果没有指定门槛,或指定空数组([]),然后边缘自动选择一个或多个值。

  • “日志”“zerocross”方法,如果指定阈值0,则输出图像具有闭合轮廓,因为它包含输入图像中的所有过零点。

  • “精明”“差不多”方法使用两个阈值。边缘忽略边缘强度低于下阈值的所有边,保留边缘强度高于上阈值的所有边。您可以指定门槛作为这种形式的2元素向量(低高)低的范围为[0 1]的值。您还可以指定门槛作为一个数字标量边缘分配给较高的阈值。在这种情况下,,边缘使用阈值* 0.4为较低阈值。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

要检测的边缘方向,指定为“水平”“垂直”,或“两个”. 这个方向参数仅当方法“索贝尔”“普瑞维特”,或“罗伯特”

请注意

如果你选择罗伯茨方法,那么“水平”方向实际上是检测与水平方向成135°角的边缘,而“垂直”方向检测与水平方向成45°角的边缘。

数据类型:烧焦|字符串

过滤器,指定为数字矩阵。的h参数由金宝app“zerocross”唯一的方法。

数据类型:

过滤器的标准偏差,指定为数值标量。这个σ参数由金宝app“精明”“日志”唯一的方法。

方法 描述
“精明”

指定高斯滤波器标准偏差的标量值。默认值是√6 (2)边缘根据,自动选择过滤器的大小σ

“日志”(高斯拉普拉斯算子)

指定高斯滤波器拉普拉斯算子标准差的标量值。默认值是2. 这个size of the filter isn-借-n,在那里n=ceil(西格玛*3)*2+1

数据类型:

输出参数

全部折叠

输出二进制图像,作为大小相同的逻辑数组返回,1S函数在其中找到边0其他地方。

属性的2元素向量返回的计算中使用的阈值“精明”方法,空向量([])“差不多”方法,或用于所有其他边缘检测方法的数值标量。

垂直梯度,作为大小相同的数字数组返回

请注意

如果你选择罗伯茨方法,然后边缘返回从水平角度45°计算的梯度。

水平梯度,作为大小相同的数字数组返回

请注意

如果你选择罗伯茨方法,然后边缘返回从水平角度135°计算的梯度。

算法

  • 对于梯度幅度边缘检测方法(Sobel, Prewitt和Roberts),边缘使用门槛设置计算的梯度幅值的阈值。

  • 对于零交法,包括高斯拉普拉斯法,边缘使用门槛作为零交叉点的阈值。换句话说,跨越零的大跳跃是一条边,而小跳跃不是。

  • Canny方法对梯度采用两个阈值:高阈值代表低边缘灵敏度,低阈值代表高边缘灵敏度。边缘从低灵敏度结果开始,然后将其增长到包括高灵敏度结果的连接边缘像素。这有助于填补检测边缘的空白。

  • 在所有情况下,边缘启发式地选择默认阈值,这取决于输入数据。改变阈值的最好方法是运行边缘第一次,捕获计算的阈值作为第二个输出参数。然后,从计算得到的值开始边缘,调高阈值以检测更少的边缘像素,或调低阈值以检测更多的边缘像素。

兼容性的考虑

全部展开

行为在R2011a中改变

工具书类

[1] 约翰·坎尼,“边缘检测的计算方法,”IEEE模式分析与机器智能汇刊,PAMI-8卷,第6期,1986,679-698页。

[2] Lim, Jae S,二维信号和图像处理, Englewood Cliffs, NJ, Prentice Hall, 1990, 478-488页。

詹姆斯·R·帕克图像处理和计算机视觉算法,纽约,John Wiley & Sons, Inc., 1997,第23-29页。

扩展功能

之前介绍过的R2006a