毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
基于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矩阵实验研究
基于LabVIEW的火焰光谱采集系统研究
ZnO与多巴胺分子界面特性研究
基于平均场理论二组分一...
基于平均场理论二组分三...
基于abaqus的水下爆炸气泡数值模拟
基于复合光栅投影的三维面形测量
基于虚拟仪器的高中物理实验教学设计
淮安市老漂族心理与休闲体育现状的研究
林业机械作业中的安全性问题【2230字】
人事管理系统开题报告
组态王文献综述
紫陵阁
大学生就业方向与专业关系的研究
弹道修正弹实测弹道气象数据使用方法研究
适合宝妈开的实体店,适...
小学《道德与法治》学习心得体会
浅谈动画短片《天降好运》中的剧本创作