首页 文章

MATLAB中的Canny算子矩阵:如何实现/获取? (只是过滤,没有边缘检测器)

提问于
浏览
0

我正在使用MATLAB(2011)制作一个项目,它使用户可以过滤灰度图像(使用卷积但不查找边缘) . 我知道边缘有[edge]函数,我知道对于某些运算符(如sobel),你可以使用[fspecial]来获取矩阵 .

我找到了一个矩阵(或多个),对应于我需要的每个操作符:sobel,roberts,robinson,Laplacian等...

然后我以这种方式应用过滤器:

Result_image = conv2(Original_image, matrix_filter);

但我找不到一个Canny运营商......

我读到canny是从应用拉普拉斯算子开始的varius步骤实现的 . 但是呢?以下步骤是什么?如何才能将矩阵应用于图像?

我正在寻找矩阵,或者找到它的方法或至少一个例子来理解“多步骤程序” .

我找到了一个页面,告诉了实现边缘运算符的步骤 . 过滤的步骤是什么? (导数X,导数Y,梯度,非最大抑制,滞后) . 该页面是Canny Edge Detector(由Mikel Rodriguez提供) .

1 回答

  • 1

    正如您所指出的,Canny Edge Detector是 algorithm not a filter . 这意味着您无法拥有"Canny"过滤器 .

    让我们看看算法中涉及的步骤(WikipediaOpenCV implementation):

    • 高斯滤波(使用高斯滤波器)

    • 图像的梯度(使用其他边缘滤波器,例如Sobel滤波器)

    • 非最大限制(不涉及过滤器)

    • 阈值处理(不涉及过滤器)

    如你所见,没有Canny过滤器,所以我担心你不能得到这样的过滤器 .

相关问题