《OpenCV图像处理》---上机实验报告2图像的离散傅里叶变换实验名称:图像的离散傅里叶变换实验目的:1、进一步学习OpenCV的使用方法;2、学会计算以及显示傅里叶变换后的幅度图像。三、实验内容:1、学习有关傅立叶变换的知识;2、计算并显示傅立叶变换后的幅度图像。四、实验原理:对一张图像使用傅里叶变换就是将它分解成正弦和余弦两部分,也就是将图像从空间域转换到频域,这一转换的理论基础来自于以下事实:任一函数都可以表示成无数个正弦和余弦函数的和的形式。傅里叶变换就是一个用来将函数分解的工具。计算以及显示傅里叶变换后的幅度图像的步骤如下:个人收集整理勿做商业用途将图像延扩到最佳尺寸为傅立叶变化的结果分配空间进行离散傅立叶变换将复数转换为幅度对数尺度缩放剪切和重分布幅度图象限五、实验运行环境:Windows7操作系统,MicrosoftVisualC++2008ExpressEdition个人收集整理勿做商业用途六、实验源代码:#include<>#include"opencv2/core/"#include"opencv2/imgproc/"#include"opencv2/highgui/"#include<iostream>usingnamespacecv;usingnamespacestd;intmain(intargc,char**argv){ constchar*filename=argc>=2?argv[1]:""; MatI=imread(filename,CV_LOAD_IMAGE_GRAYSCALE); if(()) return-1; Matpadded; intm=getOptimalDFTSize(); intn=getOptimalDFTSize(); copyMakeBorder(I,padded,0,m-,0,n-,BORDER_CONSTANT,Scalar::all(0));个人收集整理勿做商业用途 Matplanes[]={Mat_<float>(padded),Mat::zeros((),CV_32F)};个人收集整理勿做商业用途 plexI; merge(planes,plexI); plexI); plexI,planes); magnitude(planes[0],planes[1],planes[0]); MatmagI=planes[0]; magI+=Scalar::all(1); log(magI,magI); magI=magI(Rect(0,0,&-2,&-2)); intcx=m
OpeCV图像离散傅里叶变换 来自淘豆网m.daumloan.com转载请标明出处.