2、子孔径自由拼接的算法
子孔径自由拼接中最主要要实现的步骤就是提取出相应的子孔径,并统计出重叠区域的数量,然后依次消倾斜拼接,最后消除残差完成综合优化。利用对子孔径进行重新编写序号,将重新编序后的1号子孔径为标准参考子孔径,就可以直接运用上2.2.1中的方法把其当做全孔径进行拼接。现以五个孔径拼接举例:
第一步,先将其重新标序,如图2.2所示;
第二步,将各子孔径上的每一个像素点的权重计算出来:
为了能保证拼接图像的平滑和质量,本文将采用加权平均拼接算法。利用离孔径中心越近权重越大的原理,确定出各像素点的权重,确定权重公式如下:
公式(2.3)中r为子孔径半径, 和 为子孔径中心点坐标。
第三步对子孔径进行拼接:
设五个矩阵 、 、 、 、 包含了子孔径1到5的倾斜系数和偏移系数等数据,通过两两孔径拼接可以将其全部解出。
首先解除倾斜系数和偏移量:
(2.4)
公式(2.4)中, 表示x轴的倾斜系数, 表示y轴的倾斜系数, 表示光轴方向上的平移量
然后解除出各个孔径的残差:
(2.5)
根据公式(2.5)建立矩阵方程:
= (2.6)
公式(2.6)满足最小二乘法的正规方程 V=L-CX
V= , L= , C= , X=
根据最小二乘法的公式: 就可解出各自孔径的平移残差和倾斜残差,用残差来补偿各子孔径应该消除的倾斜系数,并乘上加权系数,即可将所有的子孔径拼接到序数为1的标准参考子孔径上了。
2.3 本章小结
本章首先讨论了全孔径拼接的原理和算法,并在此基础上提出自由选取所需子孔径进行拼接的原理,并举出一个实例详细阐述了自由拼接的算法过程。为下文进行仿真建立了一个理论基础。
3. matlab实现算法仿真
3.1 matlab仿真思路
在上文中已经提出子孔径自由拼接的原理算法,在下面的反正中只需要将持续按照算法编写出即可。选择matlab进行仿真较C++既有优势又有劣势,matlab可以直接运用函数公式,编写程序的难度较C++低,但其执行速度和效率没有C++高。由于本文只进行实验室仿真,不需要投入实际运用,所以选择matlab.
3.2 子孔径自由拼接的实现
3.2.1 读入实验测得的全孔径
利用干涉仪得到一个500mm口径的圆形干涉波面,将其读入matlab程序中,经过边缘提取之后,放入一个600×600的坐标轴中,读入完成后,如图3.1所示 Matlab平面拼接干涉仪的子孔径自由拼接研究(4):http://www.youerw.com/tongxin/lunwen_9068.html