我正在使用这个函数来移动矩阵的元素。为此,我在 1-3 象限和 2nd-4th 之间转换。它适用于 N 的偶数值,但对于奇数 N 它不适用于最后一个元素。我需要使用这种转变,因为我必须在傅立叶变换之后使用
void ftshifting(double **filter,int rows,int cols){
int r2,c2,tmp1_3,tmp2_4;
r2 = rows/2;
c2 = cols/2;
for (int i = 0; i<r2; i++){
for (int k = 0; k<c2; k++){
tmp1_3 = filter[i][k];
filter[i][k] = filter[i+r2][k+c2];
filter[i+r2][k+c2] = tmp1_3;
tmp2_4 = filter[i+r2][k];
filter[i+r2][k] = filter[i][k+c2];
filter[i][k+c2] = tmp2_4;
}
}
}