配置环境: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中新建一个工程:
包含头文件如下:
#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操作测试如下: