欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab梯度检测,matlab:关于梯度的一阶导数边缘检测 -凯发k8官方网

发布时间:2024/10/14 循环神经网络 24 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 matlab梯度检测,matlab:关于梯度的一阶导数边缘检测 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

这很简单 . 您关心的是使用蒙版执行图像过滤,其中每个蒙版都是衍生过滤器 . 通过这种方法,knedlsepp是正确的,因为这样做只会找到关于给定方向的偏导数 . 您可以指定一个遮罩来检测水平边,另一个遮罩指示垂直边 .

gx 代表 vertical 边缘响应,使用垂直微分滤波器, gy 代表 horizontal 边缘响应,使用水平微分滤波器 . 要获得响应,您可以拍摄图像并使用任何蒙版的2d卷积对其进行过滤 .

接下来,您将两个响应一起 combine 以获得总体幅度响应 . 但是, edge 会在引擎盖下执行大量噪声清理,并执行阈值处理以获得最终响应 . 简单地计算幅度并不是 edge 的全部故事 .

在任何情况下,为了检测水平边缘,prewitt掩模看起来像这样:

gy_prewitt =

-1 -1 -1

0 0 0

1 1 1

使用上述掩码执行过滤可找到水平边缘响应,或 gy .

要查找垂直边缘响应或 gx ,您只需 transpose 上面的掩码并找到滤波器响应,因此:

gx_prewitt =

-1 0 1

-1 0 1

-1 0 1

sobel面罩与prewitt面罩略有不同 . 掩模的中心行(对于垂直)或列(对于水平)的中心行更夸张,并且加权两倍 . 水平面具是:

gy_sobel =

-1 -2 -1

0 0 0

1 2 1

同样,sobel的垂直掩模定义为:

gx_sobel =

-1 0 1

-2 0 2

-1 0 1

值得注意的是,掩码 equals to zero 中所有系数的总和,实际上是实际看到的任何边缘检测掩码的属性 .

现在,要确定整体边缘响应,您可以对每个水平, gy 和垂直 gx 进行过滤响应,并对每个相应像素应用幅度运算:

out = sqrt(gx.^2 gy.^2);

如果你想更直观地解释为什么sobel面具与prewitt略有不同,我建议你看一下这篇文章 . 如果你不能使用内置的卷积方法,它提供了一个非常好的解释以及如何自己实现过滤操作的好图表:

这是图表:

基本上,对于要在图像中过滤的每个像素,提取3 x 3邻域并在邻域中的像素和所需的过滤器之间执行加权和 . 在这种情况下,这将是sobel垂直边缘检测器 .

祝好运!

总结

以上是凯发k8官方网为你收集整理的matlab梯度检测,matlab:关于梯度的一阶导数边缘检测的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

网站地图