You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

偶数尺寸线性滤波器的相关性原理及中心定义(附实例)

嘿,我来帮你把这两个问题讲明白~

1. 偶数尺寸滤波器的相关性计算原理

相关性计算的核心逻辑其实和奇数尺寸滤波器是一致的:滑动滤波器窗口遍历图像,将滤波器的每个元素与图像对应位置的元素相乘,再把所有乘积相加,得到对应位置的相关值。

唯一的区别在于对齐方式:奇数尺寸的滤波器有一个明确的中心像素,计算时会把这个中心和图像的每个像素对齐;而偶数尺寸的滤波器没有天然的单个中心像素,所以通常是约定滤波器的窗口以某种偏移方式和图像的像素(或像素间隙)对齐,最终只要保证滤波器完全覆盖图像上的某块区域,就计算该区域的乘积和。

2. 偶数维度滤波器的“中心”定义与实例计算

关于“中心”的定义

偶数维度的滤波器没有单个像素可以作为绝对中心,行业里常用的约定是:

  • 从坐标角度看,2×2滤波器的“中心参考点”是(0.5, 0.5)(以滤波器左上角为(0,0)的话),也就是四个像素的中间位置;
  • 在实际相关性计算中,我们不需要纠结这个虚拟的中心,更关注滤波器的滑动覆盖范围:只要滤波器能完全放在图像的某块区域上,就计算该区域的乘积和。

具体实例计算

给定:

import numpy as np
filter = np.array([[a, b], [c, d]])
image = np.array([[0, 1, 0], [1, 1, 1], [0, 1, 0]])

我们做互相关计算(注意:相关性不翻转滤波器,卷积才会翻转),步骤如下:
图像是3×3,2×2滤波器能覆盖的有效区域有4个(对应滤波器左上角在图像的(0,0)、(0,1)、(1,0)、(1,1)位置):

  • 当滤波器左上角对齐图像(0,0):覆盖图像区域[[0,1],[1,1]],计算得:0*a + 1*b + 1*c + 1*d = b + c + d
  • 当滤波器左上角对齐图像(0,1):覆盖图像区域[[1,0],[1,1]],计算得:1*a + 0*b + 1*c + 1*d = a + c + d
  • 当滤波器左上角对齐图像(1,0):覆盖图像区域[[1,1],[0,1]],计算得:1*a + 1*b + 0*c + 1*d = a + b + d
  • 当滤波器左上角对齐图像(1,1):覆盖图像区域[[1,1],[1,0]],计算得:1*a + 1*b + 1*c + 0*d = a + b + c

最终的相关性计算结果是一个2×2的数组:

[[b+c+d, a+c+d],
 [a+b+d, a+b+c]]

如果用Python工具库计算,比如scipy.signal.correlate(image, filter, mode='valid'),得到的结果和上面手动计算的一致。

内容的提问来源于stack exchange,提问作者datascienceandpizza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:07:14