主要内容

边缘检测

在图像中,边是沿着图像强度的快速变化路径的曲线。边缘通常与场景中物体的边界相关联。边缘检测用于识别图像中的边缘。

要找到边,可以使用边缘函数。这个函数使用以下两个标准之一来寻找图像中强度变化迅速的地方:

  • 在强度的一阶导数大于某个阈值的地方

  • 在强度的二阶导数有零交叉点的地方

边缘提供几个导数估计器,每个估计器实现这些定义中的一个。对于其中一些估计器,您可以指定操作是否应该对水平边、垂直边或两者都敏感。边缘返回一个二值图像,其中边的位置为1,其他位置为0。

最强大的边缘检测方法是边缘提供的是Canny方法。Canny方法不同于其他边缘检测方法,它使用两个不同的阈值(检测强边缘和弱边缘),只有当弱边缘连接到强边缘时,才会在输出中包含弱边缘。因此,该方法比其他方法更不容易受到噪声的影响,更容易检测到真正的弱边缘。

检测图像中的边缘

这个例子展示了如何使用Canny边缘检测器和Sobel边缘检测器来检测图像中的边缘。

将图像读入工作空间并显示它。

我= imread (“coins.png”);imshow(我)

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

对未经滤波的输入图像应用索贝尔边缘检测器。然后,应用Canny边缘检测器对未经滤波的输入图像。

BW1 =边缘(我“索贝尔”);BW2 =边缘(我“精明”);

并排显示过滤后的图像进行比较。

tiledlayout(1,2) nexttile imshow(BW1)“索贝尔过滤”nexttile imshow(BW2) title(“精明的过滤”

图中包含2个轴对象。标题为Sobel Filter的Axes对象1包含一个类型为image的对象。标题为Canny Filter的Axes对象2包含一个类型为image的对象。

Baidu
map