一.实验目的:
理解图像傅立叶变换,掌握二维FFT函数的调用方法。理解图像频谱的物理意义。
二.实验内容及
步骤
新产品开发流程的步骤课题研究的五个步骤成本核算步骤微型课题研究步骤数控铣床操作步骤
:
1. 在菜单中添加一选项,然后建立消息映射函数,在函数中调用一维傅立叶变换函数,实现二维傅立叶变换,并计算图像的频谱。
2. 在菜单中添加一选项实现低通滤波。
3. 在菜单中添加一选项实现高通滤波。
四. 实验结果及代码:
DFFT的正反变化
巴特沃斯低通
理想高通
程序代码:
void CYdcView::OnDfft()
{
// TODO: Add your command handler code here
long w,h;
long i,j;
w=m_DibHead->biWidth;
h=m_DibHead->biHeight;
int *lpsrc=new int [w*h];
int flag=0;
for(i=0;i
*FD=new complex[w*h];
complex *TD=new complex[w*h];//反变换
bh.DFFT(FD,lpsrc,w,h);
// bh.move(FD,w,h);
bh.DIFFT(TD,FD,w,h);//反变换
memcpy(FD,TD,sizeof(complex)*w*h);//反变换
for(i=0;ibiWidth;
h=m_DibHead->biHeight;
int *lpsrc=new int [w*h];
//int flag=0;
for(i=0;i *FD=new complex[w*h];
// complex *TD=new complex[w*h];//反变换
bh.DFFT(FD,lpsrc,w,h);
bh.move(FD,w,h);
// bh.DIFFT(TD,FD,w,h);//反变换
// memcpy(FD,TD,sizeof(complex)*w*h);//反变换
for(i=0;ibiWidth;
h=m_DibHead->biHeight;
complex *FD=new complex[w*h];
complex *TD=new complex[w*h];
int *lpsrc=new int [w*h];
for(i=0;id0*d0)//理想低通
// FD[i*w+j]=0;//理想低通
if((i!=h/2)&&(j!=w/2))
FD[i*w+j]*=1.0/(1+(sqrt((i-h/2)*(i-h/2)+(j-w/2)*(j-w/2)))
*(d0/sqrt((i-h/2)*(i-h/2)+(j-w/2)*(j-w/2))/d0));
}
bh.move(FD,w,h);
bh.DIFFT(TD,FD,w,h);
for(i=0;ibiWidth;
h=m_DibHead->biHeight;
complex *FD=new complex[w*h];
complex *TD=new complex[w*h];
int *lpsrc=new int [w*h];
for(i=0;i
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
:
1. 巴特沃斯低通滤波器
;
2. 理想高通滤波器
以上二式中: