高斯金字塔越界

Gaussian Pyramid Out of Bounds

我正在尝试使用 C++ 为高斯金字塔编写自己的代码。

我尝试了http://persci.mit.edu/pub_pdfs/pyramid83.pdf中所述的减少和扩展方程式,方程式(1)和(2)。但是,当我尝试访问

时,我的数组索引超出范围

[2i + m][2j + n][(i - m) / 2][(j - n) / 2]

我的高斯核:5x5矩阵; g1Image:原图缩小1级,行列尺寸均为原图的一半。

我的 mn 设置为 -2 < m/n <= 2,因此当我访问我的 Gaussian 内核时,我将索引加 2,成为

w[m + 2][n + 2] * original_image[2i + m][2j + n]

我确实尝试将 mn 也设置为 0 < m/n <=4,等式变为

w[m][n] * original_image[2i + m][2j + n] or w[m][n] * original_image[2i + m - 2][2j + n - 2]

任何提到的方程式都超出范围。

w[m][n] * original_image[2i][2j] 用于减少等式和 w[m][n] * g1Image[i / 2][j / 2] for expand equation 正在运行。

但是,显示的图像好像没有平滑效果。

任何人都可以向我解释我应该如何为每个高斯金字塔缩减、高斯金字塔扩展以及 m 和 n 边界设置我的图像维度?

我已经通过加入这一行解决了问题

index1 = (2 * h) + m; index2 = (2 * w) + n;

if(index1  >= 0 && index1 < Height && index2 >= 0 && index2 < Width)
     temp = w[m + 2][n + 2] * original_image[index1][index2];

更多信息:
http://www.songho.ca/dsp/convolution/convolution.html