cvDFT

傅里叶变换是复数域变换。而一个复数在openCV中需要用双通道来表示,第一通道表示实部,第二通道表示虚部。

如  复数1+2i,1保存在第一通道,2保存在第二通道。


代码示例:

// cvDFT.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <cv.h>
#include <highgui.h>
#ifdef _DEBUG
#pragma comment(lib,"opencv_imgproc220d.lib")
#pragma comment(lib,"opencv_core220d.lib")
#pragma comment(lib,"opencv_highgui220d.lib")
#else
#pragma comment(lib,"opencv_imgproc220.lib")
#pragma comment(lib,"opencv_core220.lib")
#pragma comment(lib,"opencv_highgui220.lib")
#endif


float data1[]={
1,2,
3,4
};


void Show_Mat2D(CvArr* mat,int row,int col);
void main()
{
CvMat *mat_src,*mat_dst,*mat_test1,*mat_test2;
mat_src=cvCreateMat(2,2,CV_32FC2);
mat_dst=cvCreateMat(2,2,CV_32FC2);
mat_test1=cvCreateMat(2,2,CV_32FC1);
mat_test2=cvCreateMat(2,2,CV_32FC1);
cvZero(mat_src);
cvZero(mat_dst);
cvZero(mat_test1);
cvZero(mat_test2);
cvSetData(mat_test1,data1,mat_test1->step);
cvMerge(mat_test1,mat_test2,NULL,NULL,mat_src);/至此mat_src完成初始化,
//第一通道为实部,数据为data1,第二通道为虚部,全部为0
///
//正变换测试
cvDFT(mat_src,mat_dst,CV_DXT_FORWARD);
cvSplit(mat_dst,mat_test1,mat_test2,NULL,NULL);/将变换之后的实部虚部分开
printf("********************正变换结果:\n");


printf("实部为:\n");
Show_Mat2D(mat_test1,2,2);
printf("虚部为:\n");
Show_Mat2D(mat_test2,2,2);


/
反变换测试,将mat_dst反变换回去。
cvZero(mat_src);
cvDFT(mat_dst,mat_src,CV_DXT_INV_SCALE);反变换


cvSplit(mat_src,mat_test1,mat_test2,NULL,NULL);/将反变换后的实部虚部分开
printf("************反变换结果:\n");
printf("实部为:\n");
Show_Mat2D(mat_test1,2,2);
printf("虚部为:\n");
Show_Mat2D(mat_test2,2,2);
return ;
}


void Show_Mat2D(CvArr* mat,int row,int col)
{
int i,j;
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
{
printf("%.3f   ",cvGet2D(mat,i,j).val[0]);
}
printf("\n");
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值