在CONV2输出矩阵(输入滤波器)索引问题

在CONV2输出矩阵(输入滤波器)索引问题

问题描述:

我正在寻找一种方式来声明我的内核/过滤器的中心,使我的二维卷积的输出是按照下图在CONV2输出矩阵(输入滤波器)索引问题

来源: http://machinelearninguru.com/computer_vision/basics/convolution/image_convolution_1.html enter image description here

我已经调查CONV2(输入,滤波器)但发现这种内置函数假定为一个M×N个滤光器,其中心总是位于(M,N)的位置在过滤器基质。我在https://www.mathworks.com/help/vision/ref/2dconvolution.html 处看到以下图像。在这种情况下双总和的结果将在输出矩阵位于(2,2)而不是(1,1)

enter image description here

Matlab的版本:MatlabR2014a

如果我正确理解你所需要使用的形状手柄CONV 2:

conv2(input,filter,'same') 
+0

是的......当M,N(滤波器矩阵的维数)是奇数时,它似乎工作,并且'滤波器'中的最大值位于中间。例如当M = N = 3并且max(滤波器)在(2,2)时。但是如果max(过滤器)不在中间怎么办?对于3x3的例子,令max最大为(2,1)。在这种情况下,“相同”的句柄不起作用。有没有办法确保输出索引是由滤波器矩阵的最大元素位置决定的?我想通过零填充滤波器矩阵生成newfilter,使滤波器矩阵的最大元素居中,然后使用conv2(x,newfilter,'same')... – NAASI

您可以使用的'full'形状参数然后索引到输出中以选择您想要的任何适当对齐的切片。