高斯金字塔越界
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级,行列尺寸均为原图的一半。
我的 m
和 n
设置为 -2 < m/n <= 2
,因此当我访问我的 Gaussian 内核时,我将索引加 2,成为
w[m + 2][n + 2] * original_image[2i + m][2j + n]
我确实尝试将 m
和 n
也设置为 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];
我正在尝试使用 C++ 为高斯金字塔编写自己的代码。
我尝试了http://persci.mit.edu/pub_pdfs/pyramid83.pdf中所述的减少和扩展方程式,方程式(1)和(2)。但是,当我尝试访问
时,我的数组索引超出范围[2i + m][2j + n]
和 [(i - m) / 2][(j - n) / 2]
。
我的高斯核:5x5矩阵; g1Image:原图缩小1级,行列尺寸均为原图的一半。
我的 m
和 n
设置为 -2 < m/n <= 2
,因此当我访问我的 Gaussian 内核时,我将索引加 2,成为
w[m + 2][n + 2] * original_image[2i + m][2j + n]
我确实尝试将 m
和 n
也设置为 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];