毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
基于DSP实现的移动场景的相位配准(9)
m1=1.0*m-k1;
m2=1.0*k2-m;
for(i=0;i<256;i++)
{
imout[i*256+j]=m2*imin[i*320+k1]+m1*imin[i*320+k2];
}
}
for(i=0;i<256;i++)
{
imout[i*256]=imout[i*256+1];
imout[i*256+255]=imout[i*256+254];
}
}
5.3 输入FFT函数的复数图像矩阵形式
要正确得使用DSP库里的FFT函数,那么首先输入数据的格式必须正确。在FFT函数里,规定输入和输出图像矩阵都是复数矩阵,并且实部和虚部必须交错存放。也就是说原来图像的一个像素点对应一个灰度值数据,需要的格式则是一个实部和一个虚部一前一后构成这个像素点的数据。例如,我的实验中使用的256*256的FFT,那么输入矩阵就是一个512*256的矩阵。原图像所有的点都是实数,所需要的转换就是在原图像的每个像素值后插入一个0。
具体转换代码如下:
void complextrans(short *in,int *out)
{
int i;
for (i=0;i<256*256;i++)
{
out[2*i]=in[i];
out[2*i+1]=0;
}
}
5.4 一文FFT生成二文FFT函数
dsplib里的FFT函数是一文FFT函数,可以使用一文FFT来产生二文FFT。将二文矩阵每一行作一次一文FFT,然后把得到的结果的每一列再作一文FFT,这样就得到这个二文矩阵的二文FFT。我用了两个函数来实现这个功能。
void zhuanzhi(int *in,int *out)
{
int i,j;
for(i=0;i<256;i++)
{
for(j=0;j<256;j++)
{
out[512*i+2*j]=in[512*j+2*i];
out[512*i+2*j+1]=in[512*j+2*i+1];
}
}
}
void fft2(int *im_in,int *im_out,int *twiddle,int n)
{
int x;
int dim2=(int)(n*2);
int row_start=0;
for(x=0;x<n;x++)
{
DSP_fft32x32(twiddle,n,&im_in[row_start],&im_out[row_start]);
row_start+=dim2;
}
zhuanzhi(im_out,testin);
row_start=0;
for(x=0;x<n;x++)
{
DSP_fft32x32(twiddle,n,&testin[row_start],&testout[row_start]);
row_start+=dim2;
}
zhuanzhi(testout,im_out);
}
程序中,将二文矩阵每一行作一文FFT,得到的结果转置,每一行继续作一文FFT,最后将二次得到的结果再次转置,即得到二文FFT。
同理,逆变换也可用这种方法求得。
5.5 求出偏移量
在傅氏变换后,将前后两幅图像的频谱相除,得到相位偏移量,然后将相位偏移量的矩阵逆变换,则得到空间偏移量的矩阵。在这个矩阵中找到最大值,其坐标经过一定的变换就得到场景的偏移量。这里我们通过码盘信息,将搜素区域从全图变为码盘数据周围的区域,缩小了搜索范围。需要指明的是:场景向右移动定义为正向移动,场景向左移动定义为逆向移动。
共12页:
上一页
1
2
3
4
5
6
7
8
9
10
11
12
下一页
上一篇:
渥拉斯顿棱镜透射光强扰动分析+文献综述
下一篇:
含葡萄糖的混浊液后向散射特性的Mueller矩阵实验研究
基于大概念的初中科学教材分析力学相关部分
二三维一体化CAD系统中工...
基于初中科学实验教具的创新
基于landsat8遥感影像的水稻田降温效应研究
基于大概念的初中科学教材分析
FLUENT基于CFD圆柱绕流数值模拟研究
光波单向波导的设计与实现
10万元能开儿童乐园吗,我...
医院财务风险因素分析及管理措施【2367字】
承德市事业单位档案管理...
神经外科重症监护病房患...
AT89C52单片机的超声波测距...
公寓空调设计任务书
国内外图像分割技术研究现状
中国学术生态细节考察《...
C#学校科研管理系统的设计
志愿者活动的调查问卷表