openCV傅里叶变换及逆变换实现代码

您所在的位置:网站首页 易经所有卦象图解 openCV傅里叶变换及逆变换实现代码

openCV傅里叶变换及逆变换实现代码

2022-07-07 12:01| 来源: 网络整理| 查看: 265

/* 

   opencv

的傅里叶变换及逆变换实现。傅里叶变换需要将数据表示为复数形式,通过一个两通道矩阵

 

   

来记录复数的实部和虚部,

然后通过

cvDFT

来实现变换。

对于图片变换也是一样,

只是矩阵换成

IplImage 

   

格式,用两个单通道图片来分别表示实部和虚部,用两通道图片来存放变换结果。

 

[email protected] 

*/ 

#include

 

 

#include

 

#include

 

#include

 

 

usingnamespace

 std; 

 

 

int

 main(

int

 argc,

char

*argv[])  

{  

 

float

 r[] = {23,23,214,214,32,53}; 

 

float

 i[] = {22,32,33,42,31,12}; 

 

 

CvMat *re = cvCreateMat(1,6,CV_32FC1);

//

实部

 

 

CvMat *im = cvCreateMat(1,6,CV_32FC1);

//

虚部

 

 

 

CvMat *re_dst = cvCreateMat(1,6,CV_32FC1);

//

变换后实部

 

 

CvMat *im_dst = cvCreateMat(1,6,CV_32FC1);

//

变换后虚部

 

 

 

CvMat *re_ = cvCreateMat(1,6,CV_32FC1);

//

反变换后实部

 

 

CvMat *im_ = cvCreateMat(1,6,CV_32FC1);

//

反变换后虚部

 

 

 

cvInitMatHeader(re, 1, 6, CV_32FC1, r); 

//

初始化实部

 

 

cvInitMatHeader(im, 1, 6, CV_32FC1, i); 

//

初始化虚部

 

 

 

CvMat *sum_src = cvCreateMat(1,6,CV_32FC2);

//

实部虚部结合体

 

 

CvMat *sum_dst = cvCreateMat(1,6,CV_32FC2);

//

变换后实部虚部结合体

 

 

CvMat *sum_ = cvCreateMat(1,6,CV_32FC2);

//

反变换后实部虚部结合体

 

 

 

cout



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3