鉴于图像,我正在应用fft然后反向fft。
我希望得到与原始图像相同的结果,但我得到了大量的数字。
我使用以下简单代码:
fid=fopen("C:\\res3\\padded2.txt","w+");
for (int i=0;i<padded2.rows;i++){
for (int j=0;j<padded.cols;j++){
fprintf(fid,"%f ", padded2.at<float>(i,j));
}
fprintf(fid,"\n");
}
fclose(fid);
Mat fftimg;
dft(padded2, fftimg);
Mat ifftimg;
dft(fftimg,ifftimg,cv::DFT_INVERSE);
fid=fopen("C:\\res3\\inversefftimage.txt","w+");
for (int i=0;i<ifftimg.rows;i++){
for (int j=0;j<ifftimg.cols;j++){
fprintf(fid,"%f ",ifftimg.at<float>(i,j));
}
fprintf(fid,"\n");
}
fclose(fid);
如您所见,我将图像打印到fft + ifft之前和之后的文件中。当我检查文件时,我看到fft + ifft后的数字非常不同。 fft + ifft之后的数字要大得多(大约30,000而不是大约4-5)。
有人可以解释一下这种行为吗?我应该改变什么来获得相同的结果?
我正在使用VS 2012和Windows 8开发OpenCV 2.4.5。
提前致谢!
吉尔。