#include "Image_FFT.h"
/*
中心化,根据傅里叶性质的平移性质
*/
void FFT_Shift(double * src,int size_w,int size_h){
for(int j=0;j
for(int i=0;i
if((i+j)%2)
src[j*size_w+i]=-src[j*size_w+i];
}
}
/*
图像快速傅里叶变换,图像大小为2的N次幂
*/
void ImageFFT(IplImage * src,Complex * dst){
//FFT_Shift(src, src);
if(src->depth!=IPL_DEPTH_8U)
exit(0);
int width=src->width;
int height=src->height;
double *image_data=(double*)malloc(sizeof(double)*width*height);
for(int j=0;j
for(int i=0;i
image_data[j*width+i]=GETPIX(src, j, i);
}
FFT_Shift(image_data,width, height);//图像中心化
FFT2D(image_data, dst, width, height);
free(image_data);
}
/*