一种基于序列图像合成的特征点提取方法与流程

文档序号:11953514阅读:来源:国知局

技术特征:

1.一种基于序列图像合成的特征点提取方法,其特征是,该方法首先在被测场景内放置一块高精度角点的棋盘格标定板,利用一台摄像机对被测场景进行图像采集,并将第一帧图像作为基准图像,然后在保证被测物不出视场的前提下随机轻微移动摄像机同时继续对被测场景进行图像采集,以此获取N幅彼此之间存在相对微小位移的图像序列;再利用Harris角点提取法对各图像中标定板的所有角点进行提取,按照仿射变换的原则,利用标定板角点对图像序列进行配准,求取各图像相对于基准图像的亚像素级精度的位移;再对各图像相对基准图像位移的整数像素部分按照反方向平移,只保留相对于基准图像的亚像素位移偏差;将基准图像通过双线性插值放大为原分辨率的4倍作为初始高分辨率图像,然后根据序列图像相对于基准图像的亚像素位移偏差的大小来修正逐帧初始高分辨率图像;最后,利用合成的高分辨率图像进行特征点的提取;具体步骤如下:

步骤1:序列图像获取

首先在被测场景内摆放一块棋盘格标定板(3)、第一特征点图像(1)和第二特征点图像(2),调整摄像机参数,拍摄第一幅图像作为基准图像;在保证被测场景完全位于摄像机视场内的情况下轻微移动摄像机,待摄像机稳定后拍摄第二帧图像,以此类推,摄像机经过多次移动和拍摄,获得N张同一场景但又不完全相同的图像;

步骤2:序列图像配准

由于棋盘格标定板的角点具有很高的提取精度,因此本发明基于各帧图像之间对应标定板的角点位置进行配准;首先使用Harris角点提取法获得各帧图像中的标定板角点坐标,记为:

<mrow> <msub> <mi>V</mi> <mi>k</mi> </msub> <mo>=</mo> <mfenced open = "(" close = ")"> <mtable> <mtr> <mtd> <mtable> <mtr> <mtd> <msub> <mi>x</mi> <mn>1</mn> </msub> </mtd> <mtd> <msub> <mi>y</mi> <mn>1</mn> </msub> </mtd> </mtr> </mtable> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mtable> <mtr> <mtd> <msub> <mi>x</mi> <mi>i</mi> </msub> </mtd> <mtd> <msub> <mi>y</mi> <mi>i</mi> </msub> </mtd> </mtr> </mtable> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mo>.</mo> </mtd> </mtr> <mtr> <mtd> <mtable> <mtr> <mtd> <msub> <mi>x</mi> <mi>n</mi> </msub> </mtd> <mtd> <msub> <mi>y</mi> <mi>n</mi> </msub> </mtd> </mtr> </mtable> </mtd> </mtr> </mtable> </mfenced> <mo>,</mo> <mrow> <mo>(</mo> <mi>k</mi> <mo>=</mo> <mn>1</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mi>N</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

其中,Vk为第k帧图像中n个标定板角点的坐标值矩阵,N为图像序列数目,xi yi为第i个角点的坐标值;

由于摄像机只有轻微移动,近似认为各图像之间只存在平移和旋转,按照仿射变换的原则,利用各图像中标定板角点坐标矩阵Vk,(k=1,…,N)求解各帧图像相对于基准图像的转换关系,并利用最小二乘法进行优化,得到各帧图像相对于基准图像的转换矩阵为:

<mrow> <msub> <mi>T</mi> <mi>k</mi> </msub> <mo>=</mo> <mfenced open = "(" close = ")"> <mtable> <mtr> <mtd> <msub> <mi>a</mi> <mi>k</mi> </msub> </mtd> <mtd> <msub> <mi>b</mi> <mi>k</mi> </msub> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <msub> <mi>c</mi> <mi>k</mi> </msub> </mtd> <mtd> <msub> <mi>d</mi> <mi>k</mi> </msub> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> <mtr> <mtd> <msub> <mi>u</mi> <mi>k</mi> </msub> </mtd> <mtd> <msub> <mi>v</mi> <mi>k</mi> </msub> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> <mo>,</mo> <mrow> <mo>(</mo> <mi>k</mi> <mo>=</mo> <mn>2</mn> <mo>,</mo> <mo>...</mo> <mo>,</mo> <mi>N</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

其中,和(uk vk)分别表征了各待配准图像相对于基准图像的旋转分量和平移分量;

步骤3:高分辨率图像合成

根据步骤2中求得的转换矩阵,第k幅图像相对于基准图像的平移分量记为:

<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>u</mi> <mi>k</mi> </msub> <mo>=</mo> <msub> <mi>m</mi> <mrow> <mn>1</mn> <mi>k</mi> </mrow> </msub> <mi>&lambda;</mi> <mo>+</mo> <msub> <mi>m</mi> <mrow> <mn>2</mn> <mi>k</mi> </mrow> </msub> <mi>&lambda;</mi> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>v</mi> <mi>k</mi> </msub> <mo>=</mo> <msub> <mi>n</mi> <mrow> <mn>1</mn> <mi>k</mi> </mrow> </msub> <mi>&lambda;</mi> <mo>+</mo> <msub> <mi>n</mi> <mrow> <mn>2</mn> <mi>k</mi> </mrow> </msub> <mi>&lambda;</mi> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

其中,uk指图像在水平方向上的平移量,vk指图像在竖直方向上的平移量,λ为整像素单位,m1k,n1k为整数,-1<m2k<1,-1<n2k<1;

将各帧图像相对于基准图像平移分量中的小数部分保存至另一矩阵中,再将各转换矩阵中平移分量的小数部分去除,只保留整数像素部分,得到新的转换矩阵,依次求解所得新转换矩阵的逆矩阵,利用逆矩阵对除基准图像外的各帧图像进行变换,则新得到的图像序列相对于基准图像只存在亚像素的位移m2kλ和n2kλ;

对基准图像进行双线性插值,使其分辨率分别在横纵方向上扩充为原图的2倍,该图为合成图像的初始估计f(1),然后利用第二帧图像对初始估计进行修正,其相对于基准图像在x和y方向上的亚像素位移为分别为p2和q2,则根据p2和q2与半像素的大小关系依次对f(1)中每个像素的灰度值进行修正,得到f(2);同样地,利用图像序列依次对当前获得的最新合成图像进行修正;对于第k幅图像为fk,根据其与基准图像之间的相对亚像素位移的大小分为七种情况,图像均用矩阵来表示,分别对合成图像每行和每列像素值进行修正,具体计算公式如下:

<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>1</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>=</mo> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>1</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mo>-</mo> <mn>0.5</mn> <mo>&lt;</mo> <mi>p</mi> <mo>&lt;</mo> <mn>0.5</mn> <mo>,</mo> <mo>-</mo> <mn>0.5</mn> <mo>&lt;</mo> <mi>q</mi> <mo>&lt;</mo> <mn>0.5</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>0</mn> <mo>&lt;</mo> <mi>p</mi> <mo>&lt;</mo> <mn>0.5</mn> <mo>,</mo> <mn>0.5</mn> <mo>&le;</mo> <mi>q</mi> <mo>&lt;</mo> <mn>1</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>+</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>+</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>0.5</mn> <mo>&le;</mo> <mi>p</mi> <mo>&lt;</mo> <mn>1</mn> <mo>,</mo> <mn>0.5</mn> <mo>&le;</mo> <mi>q</mi> <mo>&lt;</mo> <mn>1</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>+</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>1</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>=</mo> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>+</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>1</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>0.5</mn> <mo>&le;</mo> <mi>p</mi> <mo>&lt;</mo> <mn>1</mn> <mo>,</mo> <mn>0</mn> <mo>&lt;</mo> <mi>q</mi> <mo>&lt;</mo> <mn>0.5</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>1</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>=</mo> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>1</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>2</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>1</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>=</mo> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>2</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>1</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> </mtd> <mtd> <mrow> <mn>0.5</mn> <mo>&lt;</mo> <mi>p</mi> <mo>&lt;</mo> <mn>0</mn> <mo>,</mo> <mo>-</mo> <mn>1</mn> <mo>&lt;</mo> <mi>q</mi> <mo>&le;</mo> <mo>-</mo> <mn>0.5</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>2</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>2</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>2</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>,</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>2</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>,</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>2</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>2</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>2</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>2</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> </mtd> <mtd> <mrow> <mo>-</mo> <mn>1</mn> <mo>&lt;</mo> <mi>p</mi> <mo>&le;</mo> <mo>-</mo> <mn>0.5</mn> <mo>,</mo> <mo>-</mo> <mn>1</mn> <mo>&lt;</mo> <mi>q</mi> <mo>&le;</mo> <mo>-</mo> <mn>0.5</mn> </mrow> </mtd> </mtr> <mtr> <mtd> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>,</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>,</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>2</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <msup> <mi>f</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </msup> <mrow> <mo>(</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>:</mo> <mn>2</mn> <mo>*</mo> <mi>i</mi> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>2</mn> <mo>,</mo> <mn>2</mn> <mo>*</mo> <mi>j</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>f</mi> <mi>k</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> </mfenced> </mtd> <mtd> <mrow> <mo>-</mo> <mn>1</mn> <mo>&lt;</mo> <mi>p</mi> <mo>&le;</mo> <mo>-</mo> <mn>0.5</mn> <mo>,</mo> <mo>-</mo> <mn>0.5</mn> <mo>&le;</mo> <mi>q</mi> <mo>&lt;</mo> <mn>0</mn> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

其中,f(k)为合成图像的第k次修正值,fk为待处理的第k帧图像,i,j分别用来表示图像的第i行和第j列,p,q分别为待处理的图像相对于基准图像在水平和数值方向上的亚像素平移分量;

若图像序列共有N幅图像,则所有图像处理完成后得到合成图像f(N),最后再将f(N)中每个像素值都除以N,即得到最终的合成图像;

步骤4:特征点精确提取

基于图像序列合成的图像的分辨率为原图像序列分辨率的4倍,打开合成图像,使用传统Harris角点提取法对第一特征点图像(1)和第二特征点图像(2)进行提取,得到像素坐标后除以2,即是特征点最终的坐标位置。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1