使用偶数大小的卷积核进行图像卷积

6

我在想,当您使用2x2的卷积核进行卷积时,结果放在哪里?对于对称掩模,结果应用于与掩模中心相对应的像素;那么当一个掩模没有中心时会发生什么?此外,为什么有人要使用偶数大小的卷积核?


一个 2x2 的卷积核的另一个可能用途是在一个骨架中找到所有的直角。在我的情况下,这对于在环状骨架网络中找到最小的分支点集合非常有用。我发现使用 cv2.filter2D( python ) 进行卷积会将结果放置在右下像素中。 - Jon
有趣的@Jon,感谢您的建议,我会研究一下。 - darkpirate
1个回答

7

不管你使用哪种方法,都可能会在最终图像中得到0.5像素的偏移。通过将2x2的示例作为3x3进行零填充,您可以直观地了解为什么会发生这种情况,例如:

 k00  k01   0
 k10  k11   0
  0    0    0

为什么要使用偶数大小-卷积的一个应用是交叉相关(翻转其中一个图像会将卷积变为相关,反之亦然)。交叉相关有许多用途,包括模板匹配(在较大的图像中查找目标图像),因此如果您的模板具有偶数大小,则结果卷积/相关也将涉及偶数大小的“核”。


有哪些特定的方法可以应用,你能举个例子吗? - darkpirate
抱歉,是的,我只是在扩展答案以包括一个例子。 - Paul R
有趣的是,你是随意选择中心点的吗?而且当你这样做时,在所有卷积(相关)过程中它保持不变吗? - darkpirate
是的,除了结果的移位之外,这并不重要。另外,还有一个需要考虑的例子是双线性插值 - 对于这种情况,您实际上有一个2x2的内核,其中系数是您的插值因子。 - Paul R
@PaulR,实际上这很重要。如果您将结果像素放在左上角,您可以在相同的内存占用下使用简单的扫描线操作执行卷积。 - Tatarize
显示剩余10条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接