问题描述
我在下面的这段代码应该模糊一个二维浮点数组,给定内核大小“blurRad”,但是在使用它时,值似乎向下和向右移动,有什么解释吗?
void blur() {
blurw(blurh());
}
float[][] blurh() {
float[][] t = new float[width][height];
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
float total = 0;
for (int k = -blurRad; k < blurRad; k++) {
if (i+k > width || i+k < 0)
continue;
total += grid[i+k][j];
}
total -= grid[i][j];
t[i][j] = total / (blurRad * 2 - 1);
}
}
return t;
}
void blurw(float[][] t) {
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
float total = 0;
for (int k = -blurRad; k < blurRad; k++) {
if(j+k > height || j + k < 0)
continue;
total += t[i][j+k];
}
total -= t[i][j];
grid[i][j] = total / (blurRad * 2 - 1);
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)