opencv学习:二维浮点数离散傅里叶变换及其扩展边界优化

opencv中提供了傅里叶变换函数cvDFT,执行二维浮点数离散傅里叶变换的代码如下:

void fft2(const IplImage* src, IplImage* dst)
{
    //实部、虚部  
    IplImage *image_Re = 0, *image_Im = 0, *Fourier = 0;  

    image_Re = cvCreateImage(cvGetSize(src), IPL_DEPTH_32F, 1);  //实部  

    image_Im = cvCreateImage(cvGetSize(src), IPL_DEPTH_32F, 1);  //虚部  

    Fourier = cvCreateImage(cvGetSize(src), IPL_DEPTH_32F, 2);   //二通道图像
    
    //将实部从8u转换为32f
    cvConvertScale(src, image_Re);  
    
    // 虚部置零  
    cvZero(image_Im);  
    
    //将实部与虚部合并到Fourier中
    cvMerge(image_Re, image_Im, 0, 0, Fourier);  
  
    // 进行正向离散傅里叶变换 
    cvDFT(Fourier, dst, CV_DXT_FORWARD);  
    cvReleaseImage(&image_Re);  
    cvReleaseImage(&image_Im);  
    cvReleaseImage(&Fourier);  
}

将图像中心移到原点:

void cvShiftDFT(CvArr* src, CvArr* dst)
{
	//定义变量 
	CvMat * tmp;
    CvMat 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值