边缘检测
使用Sobel, Prewitt, Roberts或Canny方法在图像中找到物体的边缘
图书馆
分析和改进
visionanalysis
![](http://www.tianjin-qmedu.com/help/releases/R2018a/vision/ref/edge_detection_block.png)
描述
如果,方法参数,您选择索贝尔
,普瑞维特
,或罗伯茨
,边缘检测块通过近似图像的梯度幅值来查找输入图像中的边缘。该块将输入矩阵与Sobel、Prewitt或Roberts核进行卷积。该块输出图像的两个梯度分量,这是这个卷积操作的结果。或者,该块可以对梯度大小执行阈值操作并输出一个二值图像,这是一个布尔值矩阵。如果像素值为1,它就是一条边。
如果,方法参数,您选择精明的
,边缘检测块通过寻找输入图像梯度的局部极大值来发现边缘。它使用高斯滤波器的导数计算梯度。Canny方法使用两个阈值来检测强边缘和弱边缘。只有当弱边连接到强边时,它才会在输出中包含弱边。结果表明,该方法对噪声具有更强的鲁棒性,更容易检测到真实的弱边缘。
港口 | 输入/输出 | 万博1manbetx支持的数据类型 | 支持复杂的值万博1manbetx |
---|---|---|---|
我 |
强度值矩阵 |
|
没有 |
Th |
强度值矩阵 |
和I端口一样 |
没有 |
边缘 |
表示二值图像的矩阵 |
布尔 |
没有 |
全球之声 |
垂直边的梯度响应矩阵 |
和I端口一样 |
没有 |
“大酒店” |
水平边的梯度响应矩阵 |
和I端口一样 |
没有 |
G45 |
45度边的梯度响应矩阵 |
和I端口一样 |
没有 |
G135 |
135度边的梯度响应矩阵 |
和I端口一样 |
没有 |
Gv、Gh、G45、G135端口的输出数据类型与I端口的输入数据类型相同。Th端口的输入数据类型必须与I端口的输入数据类型相同。
使用方法参数指定要使用哪一种算法来查找边。您可以选择索贝尔
,普瑞维特
,罗伯茨
,或精明的
用索贝尔、普鲁伊特、罗伯茨或卡尼方法寻找边缘。
索贝尔,普鲁伊特和罗伯茨方法公司
使用输出类型参数来选择输出的格式。如果您选择二进制图像
,该块在Edge端口处输出一个布尔矩阵。该矩阵的非零元素对应于边缘像素,零元素对应于背景像素。如果您选择梯度组件
和,方法参数,您选择索贝尔
或普瑞维特
,块分别在Gh和Gv端口输出与水平和垂直边缘响应对应的梯度分量。如果您选择梯度组件
和,方法参数,您选择罗伯茨
,块分别在G45和G135端口输出对应45度和135度边缘响应的梯度分量。如果您选择二值图像和梯度分量
,块输出二值图像和图像的梯度分量。
选择用户定义的阈值复选框以定义一个或多个阈值。如果您清除此复选框,块将为您计算阈值。
使用阈值来源参数指定如何输入阈值。如果您选择指定通过对话框
,阈值参数将出现在对话框中。在输入数据的范围内输入一个阈值。如果你选择输入端口
,使用输入端口Th指定阈值。此值必须与输入数据具有相同的数据类型。超过阈值的梯度大小对应边缘。
边缘检测块使用梯度幅值平方图像的平均值计算自动阈值。方法可以调整此阈值阈值比例因子(用于自动计算阈值)参数。该块将您输入的值与自动阈值相乘,以确定新的阈值。
选择边缘变薄复选框可减少输出图像中边缘的厚度。这个选项需要额外的处理时间和内存资源。
请注意
的内存使用和处理时间方面,此块是最有效的边缘变薄复选框并使用阈值参数指定阈值。
精明的方法
选择用户定义的阈值复选框以定义低和高阈值。如果您清除此复选框,该块将为您计算阈值。
使用阈值来源参数指定如何输入阈值。如果您选择指定通过对话框
,阈值(低高)参数将出现在对话框中。输入阈值。如果输入图像与高斯滤波器的导数卷积形成的梯度图像中像素的幅值超过高阈值,则该像素对应一个强边缘。任何连接到强边且大小大于低阈值的像素都对应于弱边。如果,阈值来源你选择的参数,输入端口
,使用输入端口Th指定两个元素的阈值向量。这些值必须具有与输入数据相同的数据类型。
边缘检测块使用弱和非边缘图像像素的近似值计算自动阈值。输入这个近似弱边缘和非边缘像素的近似百分比(用于自动计算阈值)参数。
使用高斯滤波器的标准差参数定义其导数与输入图像卷积的高斯滤波器。
定点数据类型
下图显示了定点信号的边缘检测块中使用的数据类型。
该块对阈值进行平方,并将其与梯度的平方之和进行比较,以避免使用平方根。
您可以在下一节中讨论的那样,在块掩码中设置产品输出和累加器数据类型。
参数
- 方法
-
选择执行边缘检测的方法。你的选择是
索贝尔
,普瑞维特
,罗伯茨
,或精明的
. - 输出类型
-
选择所需的输出形式。如果您选择
二进制图像
,该块输出一个矩阵,其中填充了1,对应于边,和0,对应于背景。如果您选择梯度组件
和,方法参数,您选择索贝尔
或普瑞维特
,块输出与水平和垂直边响应对应的梯度分量。如果您选择梯度组件
和,方法参数,您选择罗伯茨
,块输出对应于45度和135度边缘响应的梯度分量。如果您选择二值图像和梯度分量
,块输出二值图像和图像的梯度分量。的时候,此参数是可见的方法参数,您选择索贝尔
,普瑞维特
,或罗伯茨
. - 用户定义的阈值
-
选中此复选框,可输入所需的阈值。如果您清除此复选框,块将为您计算阈值。的时候,此参数是可见的方法参数,您选择
索贝尔
,普瑞维特
,或罗伯茨
,和,为输出类型参数,您选择二进制图像
或二值图像和梯度分量
.的时候,此参数也是可见的方法参数,您选择精明的
. - 阈值来源
-
如果您选择
指定通过对话框
,在对话框中输入您的阈值。如果你选择输入端口
,使用Th输入端口指定与输入数据相同的数据类型的阈值。选项时,此参数可见用户定义的阈值复选框。 - 阈值
-
在输入数据的范围内输入一个阈值。的时候,此参数是可见的方法参数,您选择
索贝尔
,普瑞维特
,或罗伯茨
,选择用户定义的阈值复选框,和,为阈值来源参数,您选择指定通过对话框
. . - 阈值(低高)
-
输入定义弱边缘和强边缘的低和高阈值。的时候,此参数是可见的方法参数,您选择
精明的
.然后选择用户定义的阈值复选框,和,为阈值来源参数,您选择指定通过对话框
.可调。 - 阈值比例因子(用于自动计算阈值)
-
输入一个乘数,用于调整自动阈值的计算。的时候,此参数是可见的方法参数,您选择
索贝尔
,普瑞维特
,或罗伯茨
,你清了用户定义的阈值复选框。可调。 - 边缘变薄
-
如果希望块执行边缘细化,则选中此复选框。这个选项需要额外的处理时间和内存资源。的时候,此参数是可见的方法参数,您选择
索贝尔
,普瑞维特
,或罗伯茨
,而对于输出类型参数,您选择二进制图像
或二值图像和梯度分量
. - 弱边缘和非边缘像素的近似百分比(用于自动计算阈值)
-
输入弱边缘和非边缘图像像素的近似百分比。该块使用这种近似计算自动阈值。的时候,此参数是可见的方法参数,您选择
精明的
.可调。 - 高斯滤波器的标准差
-
输入高斯滤波器的标准差,其导数与输入图像卷积。的时候,此参数是可见的方法参数,您选择
精明的
. - 舍入模式
-
选择舍入模式为定点操作。
- 溢出模式
-
定点操作时选择溢出模式。
- 产品输出
-
这里,内部系数是Sobel, Prewitt或Roberts掩模。如上图所示,乘数器的输出被放置到产品输出数据类型和缩放中。使用此参数指定如何指定此乘积输出字和分数长度。
当您选择
和第一次输入一样
,这些特征与块的第一个输入相匹配。当您选择
二进制扩展点
,您可以输入字长度和乘积输出的分数长度,以位为单位。当您选择
坡度和偏置变换
,您可以输入字的长度,以位为单位,以及乘积输出的斜率。计算机视觉系统工具箱™块中所有信号的偏置为0。
- 蓄电池
-
如上图所示,对累加器的输入被强制转换为累加器数据类型。加法器的输出保留在累加器数据类型中,因为输入的每个元素都被添加到其中。使用此参数指定如何指定该累加器字和分数长度。
当您选择
与产品产量相同
,这些特征与产品输出的特征相匹配。当您选择
和第一次输入一样
,这些特征与块的第一个输入相匹配。当您选择
二进制扩展点
,您可以输入累加器的字长度和分数长度,以位为单位。当您选择
坡度和偏置变换
,您可以输入单词长度(以位为单位)和累加器的斜率。计算机视觉系统工具箱块中所有信号的偏置为0。
- 梯度
-
选择如何指定Gv和Gh端口输出的字长度和分数长度。的时候,此参数是可见的输出类型你选择的参数,
梯度组件
或二值图像和梯度分量
:当您选择
蓄电池一样
,这些特性与蓄能器的特性相匹配。当您选择
与产品产量相同
,这些特征与产品输出的特征相匹配。当您选择
和第一次输入一样
,这些特征与块的第一个输入相匹配。当您选择
二进制扩展点
,您可以输入字长度和输出的分数长度,以位为单位。当您选择
坡度和偏置变换
,您可以输入字的长度(以位为单位)和输出的斜率。计算机视觉系统工具箱块中所有信号的偏置为0。
- 锁定数据类型设置,防止定点工具更改
-
选择此参数可防止定点工具覆盖在块掩码上指定的数据类型。有关更多信息,请参见
fxptdlg
,是Simulink中定点工具的参考页面万博1manbetx®文档。
参考文献
[1]冈萨雷斯,拉斐尔C.和理查德E.伍兹。《数字图像处理》第二版。恩格尔伍德悬崖,新泽西州:普伦蒂斯-霍尔出版社,2002年。
威廉·k·普拉特,《数字图像处理》,第2版。纽约:约翰·威利父子出版社,1991年。
另请参阅
图像处理工具箱™ |