如何解决为什么我的模糊函数会将值向下和向右移动?
我在下面的这段代码应该模糊一个二维浮点数组,给定内核大小“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 举报,一经查实,本站将立刻删除。