int
main(
int
argc,
char
*
argv[])
... {
unsigned int i;
CvMat* s = cvCreateMat(1,32,CV_32FC1);
CvMat* d = cvCreateMat(1,32,CV_32FC1);
CvMat* s2 = cvCreateMat(1,32,CV_32FC1);
for(i=0;i<32;i++)
cvSetReal2D(s,0,i,i);
//显示一下输入信号
for(i=0;i<32;i++)
printf("%6.2f ",cvGetReal2D(s,0,i));
printf(" ");
//DFT 离散傅立叶变换
cvDFT(s,d,CV_DXT_FORWARD); //CV_DXT_FORWARD 代表了正变换:空域-〉频域
printf("The result of DFT: ");
for(i=0;i<32;i++)
printf("%6.2f ",cvGetReal2D(d,0,i));
//DFT 离散傅立叶逆变换
cvDFT(d,s2,CV_DXT_INVERSE); //逆变换
printf(" The result of IDFT: ");
for(i=0;i<32;i++)
printf("%6.2f ",cvGetReal2D(s2,0,i));
printf(" ");
system("pause");
return 0;
}
... {
unsigned int i;
CvMat* s = cvCreateMat(1,32,CV_32FC1);
CvMat* d = cvCreateMat(1,32,CV_32FC1);
CvMat* s2 = cvCreateMat(1,32,CV_32FC1);
for(i=0;i<32;i++)
cvSetReal2D(s,0,i,i);
//显示一下输入信号
for(i=0;i<32;i++)
printf("%6.2f ",cvGetReal2D(s,0,i));
printf(" ");
//DFT 离散傅立叶变换
cvDFT(s,d,CV_DXT_FORWARD); //CV_DXT_FORWARD 代表了正变换:空域-〉频域
printf("The result of DFT: ");
for(i=0;i<32;i++)
printf("%6.2f ",cvGetReal2D(d,0,i));
//DFT 离散傅立叶逆变换
cvDFT(d,s2,CV_DXT_INVERSE); //逆变换
printf(" The result of IDFT: ");
for(i=0;i<32;i++)
printf("%6.2f ",cvGetReal2D(s2,0,i));
printf(" ");
system("pause");
return 0;
}
结果:
0.00
1.00
2.00
3.00
4.00
5.00
6.00
7.00
8.00
9.00
10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00
20.00 21.00 22.00 23.00 24.00 25.00 26.00 27.00 28.00 29.00
30.00 31.00
The result of DFT:
496.00 - 16.00 162.45 - 16.00 80.44 - 16.00 52.74 - 16.00 38.63 - 16.00
29.93 - 16.00 23.95 - 16.00 19.50 - 16.00 16.00 - 16.00 13.13 - 16.00
10.69 - 16.00 8.55 - 16.00 6.63 - 16.00 4.85 - 16.00 3.18 - 16.00
1.58 - 16.00
The result of IDFT:
0.00 32.00 64.00 96.00 128.00 160.00 192.00 224.00 256.00 288.00
320.00 352.00 384.00 416.00 448.00 480.00 512.00 544.00 576.00 608.00
640.00 672.00 704.00 736.00 768.00 800.00 832.00 864.00 896.00 928.00
960.00 992.00
Press any key to continue . . .
10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00
20.00 21.00 22.00 23.00 24.00 25.00 26.00 27.00 28.00 29.00
30.00 31.00
The result of DFT:
496.00 - 16.00 162.45 - 16.00 80.44 - 16.00 52.74 - 16.00 38.63 - 16.00
29.93 - 16.00 23.95 - 16.00 19.50 - 16.00 16.00 - 16.00 13.13 - 16.00
10.69 - 16.00 8.55 - 16.00 6.63 - 16.00 4.85 - 16.00 3.18 - 16.00
1.58 - 16.00
The result of IDFT:
0.00 32.00 64.00 96.00 128.00 160.00 192.00 224.00 256.00 288.00
320.00 352.00 384.00 416.00 448.00 480.00 512.00 544.00 576.00 608.00
640.00 672.00 704.00 736.00 768.00 800.00 832.00 864.00 896.00 928.00
960.00 992.00
Press any key to continue . . .