配置环境:Windows7+VS2012
下载资源包,解压后例如以下图:
要嵌入VS2012中,须要相应的lib文件,于是接下来使用VS2012来生成相应的lib文件
在VS2012/Common7/IDE目录中找到四个文件例如以下:
将这四个文件放到VS2012/VC/bin目录中:
在cmd操作例如以下:
出现以上情况时,表示lib.exe能够正常执行
输入下面命令:
lib /machine:i386 /def:libfftw3-3.def
lib /machine:i386 /def:libfftw3f-3.def
lib /machine:i386 /def:libfftw3l-3.def
就生成了相应的lib文件
将以上的文件分别放入VS2012安装目录中,fftw3.h放入include目录,相应的lib文件放入lib目录中,dll文件放入windows/system32目录中,配置完毕。
接下来測试FFTW库:
在VS2012中新建一个project:
包括头文件例如以下:
#include "stdafx.h"
#include "fftw3.h"
#include "iostream"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "opencv.hpp"
using namespace cv;
using namespace std;
加入完毕后,抄一段代码例如以下:
void test2()
{
fftw_complex *in, *out;
fftw_plan p;
int N= 8;
int i;
int j;
in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);
out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);
for( i=0; i < N; i++)
{
in[i][0] = 1.0;
in[i][1] = 0.0;
printf("%6.2f ",in[i][0]);
}
printf("\n");
p=fftw_plan_dft_1d(N,in,out, FFTW_FORWARD, FFTW_ESTIMATE);
fftw_execute(p);
for(j = 0;j < N;j++)
{
printf("%6.2f ",out[j][0]);
}
printf("\n");
fftw_destroy_plan(p);
fftw_free(in);
fftw_free(out);
system("pause");
}
int main()
{
test2();
system("pause");
return 0;
}
測试结果例如以下:
对图像的fft操作測试例如以下: