scipy.ndimage.filters.convolve 究竟如何用于 3D 输入?
How exactly scipy.ndimage.filters.convolve works for 3D input?
我想知道当输入图像的形状为 RxCxD 且滤波器的形状为 rxcxD 时,它如何计算输出 (RxCxD) 的每个元素?
PS。我想得到大小为 RxCx1
的输出
在 2D 中更容易思考,但在 3D 中的工作方式相同。 output[i, j, k] = np.sum(input[i:i+r, j:j+c, k:k+D] * filter)
的单个值输出大小实际上将是 RxCxD,但您可能只想在三维中保留一个切片。即,您可能想要的是 k = (D-1)//2
切片:convolve(input, filter)[..., (D-1)//2]
因为您似乎不想在 k 维度上移动:即,取第三维的中间给您完整的情况重叠(无偏移)。
我想知道当输入图像的形状为 RxCxD 且滤波器的形状为 rxcxD 时,它如何计算输出 (RxCxD) 的每个元素?
PS。我想得到大小为 RxCx1
的输出在 2D 中更容易思考,但在 3D 中的工作方式相同。 output[i, j, k] = np.sum(input[i:i+r, j:j+c, k:k+D] * filter)
的单个值输出大小实际上将是 RxCxD,但您可能只想在三维中保留一个切片。即,您可能想要的是 k = (D-1)//2
切片:convolve(input, filter)[..., (D-1)//2]
因为您似乎不想在 k 维度上移动:即,取第三维的中间给您完整的情况重叠(无偏移)。