chap 6 DFT and IDFT
(一)最简单的方法:
#include<opencv2/opencv.hpp>
// chap 6 DFT and IDFT
void main()
{
IplImage* src=cvLoadImage("D:\\lxlx\\one.jpg",0); // src 8UC1
IplImage* temp=cvCreateImage(cvGetSize(src),8,1); // 中间变量,用于显示图像
CvMat* srcMat=cvCreateMat(src->height,src->width,CV_64FC1);
cvConvert(src,srcMat); // 类型转换:图像指针转矩阵
cvDFT(srcMat,srcMat,CV_DXT_FORWARD); // DFT
cvConvert(srcMat,temp); // 将矩阵转换为图像,方便显示DFT结果
cvNamedWindow("DFT");
cvShowImage("DFT",temp);
cvZero(temp); // 清零,方便下次使用
cvDFT(srcMat,srcMat,CV_DXT_INV_SCALE); // IDFT
cvConvert(srcMat,temp); // 将 IDFT 结果矩阵转换为图像指针
cvNamedWindow("IDFT");
cvShowImage("IDFT",temp); // IDFT
cvWaitKey(0);
}
运行结果:DFT 显示结果类似纹理图