【发布时间】:2012-11-08 10:04:18
【问题描述】:
什么是一个过滤器矩阵,相当于使用带有参数“full”的 imfilter 在图像上应用 [1 1 1] 两次?它仍然是一个 1x3 矩阵吗?
【问题讨论】:
标签: matlab convolution
什么是一个过滤器矩阵,相当于使用带有参数“full”的 imfilter 在图像上应用 [1 1 1] 两次?它仍然是一个 1x3 矩阵吗?
【问题讨论】:
标签: matlab convolution
卷积是关联的,这意味着(f*g)*h = f*(g*h)。所以不是
r = conv(conv(x, [1,1,1]), [1,1,1])
您可以预先计算两个过滤器的卷积,然后将其仅应用于每个图像一次:
tmp_filter = conv([1,1,1], [1,1,1]);
...
r1 = conv(x1, tmp_filter)
r2 = conv(x2, tmp_filter)
其中新过滤器是[1 2 3 2 1],但它与原始过滤器的大小不同。
【讨论】:
1s 是仅四肢重叠时,2s 是两个元素重叠时,3 是功能完全重叠时跨度>
same参数,它返回一个与第一个参数大小相同的输出,它给你[2,3,2](相当于[0,2,3,2,0])。
same,得到的内核并不等同于两个内核的合成。编写内核时需要使用full。这与用于将卷积应用于图像的模式无关。
full 参数告诉filter 函数返回与过滤后的图像大小相同的图像。您可以多次应用相同的过滤器,但如果您每次都使用full,则大小不应改变。
【讨论】:
full 导致输出大于输入。 same 保留大小。此外,这个答案并没有解决这个问题。