边缘

在强度图像中找到边缘

描述

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

BW=边缘(一世方法检测图像中的边缘一世使用指定的边缘检测算法方法

BW=边缘(一世方法阈值返回比强的所有边阈值

BW=边缘(一世方法阈值方向指定的边缘取向检测。索贝尔和Prewitt算子的方法可以检测水平方向的垂直方向的边缘,或两者。罗伯茨方法可以以45°的角度从水平从水平或两者检测边沿时,135°。这句法才有效方法“索贝尔”“普鲁伊特”,或“罗伯茨”

BW=边缘(___, ' nothin ')跳过可以提高性能的边缘细化阶段。这句法才有效方法“索贝尔”“普鲁伊特”,或“罗伯茨”

BW=边缘(一世方法阈值西格玛指定西格玛,为滤波器的标准差。这句法才有效方法“日志”“精明”

BW=边缘(一世方法阈值H使用检测的边缘“zerocross”方法与过滤器,H,您指定的。这句法才有效方法“zerocross”

[BWthreshOut) =边缘(___也返回的阈值。

[BWthreshOut提起笔GH) =边缘(___也返回方向梯度大小。对于Sobel和Prewitt方法,提起笔GH对应垂直和水平梯度。对于罗伯茨的方法,提起笔GH对应于在45°和135°从水平分别角度梯度。这句法才有效方法“索贝尔”“普鲁伊特”,或“罗伯茨”

例子

全部收缩

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

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

使用Canny方法查找边缘。

BW1 =边缘(I,“精明”);

查找使用普鲁伊特方法的边缘。

BW2 =边缘(I,“普鲁伊特”);

显示两个结果并排侧。

imshowpair (BW1 BW2,'剪辑'

输入参数

全部收缩

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

“approxcanny”方法,数据类型的图像必须归一化到范围[0,1]。如果一世具有在范围[0,1]外的值,则可以使用重新调节函数重新缩放值,以预期的范围内。

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

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

方法 描述
“索贝尔”

在图像的渐变点上找到边缘一世是极大值,使用Sobel近似的导数。

“普鲁伊特”

在梯度点处找到边缘一世是最大的,使用普鲁伊特逼近衍生物。

“罗伯茨” 在梯度点处找到边缘一世是极大值,使用罗伯茨近似的导数。
“日志” 通过寻找滤波后的过零点来寻找边缘一世采用拉普拉斯高斯(对数)滤波器。
“zerocross” 通过寻找滤波后的过零点来寻找边缘一世通过指定的过滤器,H
“精明”

通过查找梯度的局部极大值来查找边缘一世。该边缘函数计算使用高斯滤波器的导数的梯度。该方法使用两个阈值来检测强和弱的边缘,包括在输出弱边缘如果它们连接到强边缘。通过使用两个阈值,坎尼方法是不太可能比由噪声上当其他方法,并且更可能检测到真正的弱边缘。

“approxcanny”

使用Canny边缘检测算法,在不太精确的检测为代价提供了更快的执行时间的近似版本发现的边缘。预计浮点图像被归一化到[0,1]的范围内。

灵敏度阈值,指定为任何数值标量方法,或用于2个元素的向量“精明”“approxcanny”方法。边缘忽略不强于所有边缘阈值。有关此参数的更多信息,请参见算法

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

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

  • “精明”“approxcanny”方法使用两个阈值。边缘具有低于下限阈值的边缘强度,和蜜饯与上面的较高阈值的边缘强度的所有边忽略所有边缘。您可以指定阈值作为形式的2元向量[低高]范围内的值[0 1]。您还可以指定阈值作为数值标量,其中边缘赋给较高的阈值。在这种情况下,边缘使用阈值* 0.4作为较低的门槛。

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

边缘的方向进行检测,指定为“水平”“垂直”,或'都'。该方向论证只有当方法“索贝尔”“普鲁伊特”,或“罗伯茨”

注意

如果你选择罗伯茨方法,那么“水平”方向实际上是在135的角度检测边缘°从水平的,并且所述“垂直”方向以45从水平的角度°检测的边缘。

数据类型:字符|字符串

过滤器,其指定为数值矩阵。该H参数是由支持万博1manbetx“zerocross”唯一的方法。

数据类型:

过滤器的标准偏差,指定为数值标量。该西格玛参数是由支持万博1manbetx“精明”“日志”唯一的方法。

方法 描述
“精明”

指定高斯滤波器的标准偏差的标量值。默认值是SQRT(2)边缘自动选择所述过滤器的尺寸,根据西格玛

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

指定高斯滤波器的拉普拉斯算子的标准偏差的标量值。默认值是2。过滤器的大小为ñ——- - - - - -ñ,在那里n =装天花板(σ* 3)* 2 + 1

数据类型:

输出参数

全部收缩

输出二进制图像,以大小相同的逻辑数组返回一世1s是函数找到边的地方一世0其他地方。

在计算中使用计算出的阈值时,返回作为一个2元素的矢量“精明”方法,空载体([]) 为了“approxcanny”方法或数值标量对于所有其他边缘检测方法。

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

注意

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

水平梯度,返回作为相同大小的数字阵列一世

注意

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

算法

  • 对于梯度强度的边缘检测方法(索贝尔,蒲瑞维特,和Roberts),边缘使用阈值计算梯度大小的阈值。

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

  • 精明的方法适用两个阈值的梯度:用于低灵敏度边缘高阈值和低阈值高的边缘灵敏度。边缘与低灵敏度的结果开始,然后生长到包括从所述高灵敏度结果连接边缘像素。这有助于在所检测的边缘填补空白。

  • 在所有情况下,边缘选择默认的阈值试探性地,根据不同的输入数据。改变的阈值,最好的方法是运行边缘一次,捕获计算出的阈值作为第二个输出参数。然后,从计算的值开始边缘,调整阈值更高,以检测更少的边缘像素,或降低到检测多个边缘像素。

兼容性的考虑

全部展开

R2011a改变了行为

参考文献

“一种边缘检测的计算方法,”IEEE模式分析与机器智能汇刊,PAMI-8卷,6号,1986年,页679 - 698。

[2]林,宰S.,二维信号和图像处理,新泽西州Englewood Cliffs,Prentice Hall出版,1990年,第478-488。

[3] Parker, James R.,对于图像处理和计算机视觉算法,《纽约》,John Wiley & Sons, 1997,第23-29页。

扩展功能

也可以看看

||

之前介绍过的R2006a