发明名称 用于图像拼接的鱼眼图像校正方法
摘要 本发明提供了一种用于图像拼接的鱼眼图像校正方法,该方法对于存在部分图像重叠的两幅鱼眼图像通过计算机进行校正处理,采用了独特的校正原理,利用两幅鱼眼图像中相匹配的像素点,找出两幅鱼眼图像之间由拍摄时的俯仰角度引起的拼接夹角,由此反推求得两幅鱼眼图像拍摄时的俯仰角度,并通过俯仰变换映射处理校正拍摄时俯仰角度的误差对鱼眼图像的全景拼接处理所带来的倾斜、重影等负面影响,并且本发明方法具有鲁棒性较好、计算准确度高的优点。
申请公布号 CN102222337A 申请公布日期 2011.10.19
申请号 CN201110159291.5 申请日期 2011.06.14
申请人 重庆大学 发明人 张小洪;杨梦宁;洪明坚;徐玲;林晓泽
分类号 G06T7/00(2006.01)I 主分类号 G06T7/00(2006.01)I
代理机构 重庆博凯知识产权代理有限公司 50212 代理人 张先芸
主权项 1.用于图像拼接的鱼眼图像校正方法,其特征在于,对于存在部分图像重叠的两幅鱼眼图像Q<sub>1</sub>和Q<sub>2</sub>,通过计算机进行校正处理,所述校正处理包括如下步骤:a)将鱼眼图像Q<sub>1</sub>和Q<sub>2</sub>分别映射到以相机焦距f为半径的球面坐标UVW上,其中U轴表示水平方向,V轴表示竖直方向,W轴表示镜头轴心方向;球面坐标上的映射点(u,v,w)与鱼眼图像上第n行第m列像素点(m,n)的映射关系为:<maths num="0001"><![CDATA[<math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><mi>m</mi><mo>=</mo><mi>f</mi><mo>&CenterDot;</mo><mi>&theta;</mi><mo>&CenterDot;</mo><mi>cos</mi><mi>&phi;</mi><mo>+</mo><mfrac><mi>M</mi><mn>2</mn></mfrac></mtd></mtr><mtr><mtd><mi>n</mi><mo>=</mo><mi>f</mi><mo>&CenterDot;</mo><mi>&theta;</mi><mo>&CenterDot;</mo><mi>sin</mi><mi>&phi;</mi><mo>+</mo><mfrac><mi>N</mi><mn>2</mn></mfrac></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>其中<maths num="0002"><![CDATA[<math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><mi>&theta;</mi><mo>=</mo><mi>arctan</mi><mrow><mo>(</mo><mfrac><msqrt><msup><mi>u</mi><mn>2</mn></msup><mo>+</mo><msup><mi>v</mi><mn>2</mn></msup></msqrt><mi>w</mi></mfrac><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>&phi;</mi><mo>=</mo><mi>arctan</mi><mrow><mo>(</mo><mfrac><mi>v</mi><mi>u</mi></mfrac><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>其中,m∈{1,2,...,M},M表示鱼眼图像中像素点的总列数;n∈{1,2,...,N},N表示鱼眼图像中像素点的总行数;b)分别对鱼眼图像Q<sub>1</sub>和Q<sub>2</sub>在球面坐标上的映射点进行失真校正映射处理得到鱼眼图像Q<sub>1</sub>和Q<sub>2</sub>各自对应的透视平面图像P<sub>1</sub>和P<sub>2</sub>;透视平面图像上第y行第x列像素点(x,y)与球面坐标上映射点(u,v,w)的失真校正映射关系为:<maths num="0003"><![CDATA[<math><mfenced open='{' close='' separators=' '><mtable><mtr><mtd><mi>x</mi><mo>=</mo><mi>f</mi><mo>&CenterDot;</mo><mrow><mo>(</mo><mfrac><mi>&pi;</mi><mn>2</mn></mfrac><mo>+</mo><mi>arccos</mi><mrow><mo>(</mo><mfrac><mi>w</mi><msqrt><msup><mi>u</mi><mn>2</mn></msup><mo>+</mo><msup><mi>w</mi><mn>2</mn></msup></msqrt></mfrac><mo>)</mo></mrow><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>y</mi><mo>=</mo><mi>f</mi><mo>&CenterDot;</mo><mrow><mo>(</mo><mi>&pi;</mi><mo>-</mo><mi>arctan</mi><mrow><mo>(</mo><mfrac><msqrt><msup><mi>u</mi><mn>2</mn></msup><mo>+</mo><msup><mi>w</mi><mn>2</mn></msup></msqrt><mi>v</mi></mfrac><mo>)</mo></mrow><mo>)</mo></mrow></mtd></mtr></mtable><mo>;</mo></mfenced></math>]]></maths>c)使用尺度不变特征变换算法求取透视平面图像P<sub>1</sub>和P<sub>2</sub>中相匹配的像素点,得到透视平面图像P<sub>1</sub>和P<sub>2</sub>的图像重叠区域<img file="FDA0000068218380000014.GIF" wi="33" he="65" />和<img file="FDA0000068218380000015.GIF" wi="60" he="65" />d)在俯仰角取值区间[α<sub>-</sub>,α<sub>+</sub>]内取图像重叠区域<img file="FDA0000068218380000016.GIF" wi="32" he="65" />的预设俯仰角α<sub>1</sub>和图像重叠区域<img file="FDA0000068218380000017.GIF" wi="38" he="65" />的预设俯仰角α<sub>2</sub>;根据预设俯仰角α<sub>1</sub>对图像重叠区域<img file="FDA0000068218380000018.GIF" wi="33" he="64" />的各个像素点进行俯仰变换映射处理,得到图像重叠区域<img file="FDA0000068218380000019.GIF" wi="33" he="64" />各个像素对应的俯仰修正像素点;根据预设俯仰角α<sub>2</sub>对图像重叠区域<img file="FDA00000682183800000110.GIF" wi="38" he="64" />的各个像素点进行俯仰变换映射处理,得到图像重叠区域<img file="FDA00000682183800000111.GIF" wi="38" he="64" />各个像素对应的俯仰修正像素点;对图像重叠区域的像素点进行俯仰变换映射处理得到其对应的俯仰修正像素点的具体过程是:d1)根据图像重叠区域的像素点在其所在透视平面图像中的行列位置<img file="FDA00000682183800000112.GIF" wi="129" he="49" />借助所述失真校正映射关系找到该图像重叠区域的像素点<img file="FDA0000068218380000021.GIF" wi="106" he="50" />对应的鱼眼图像在球面坐标上的映射点<img file="FDA0000068218380000022.GIF" wi="172" he="49" />d2)将球面坐标上的映射点<img file="FDA0000068218380000023.GIF" wi="149" he="49" />俯仰变换映射为修正映射点<img file="FDA0000068218380000024.GIF" wi="207" he="49" /><maths num="0004"><![CDATA[<math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msup><mover><mi>u</mi><mo>^</mo></mover><mo>&prime;</mo></msup></mtd></mtr><mtr><mtd><msup><mover><mi>v</mi><mo>^</mo></mover><mo>&prime;</mo></msup></mtd></mtr><mtr><mtd><msup><mover><mi>w</mi><mo>^</mo></mover><mo>&prime;</mo></msup></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mi>cos</mi><mi>&alpha;</mi></mtd><mtd><mo>-</mo><mi>sin</mi><mi>&alpha;</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mi>sin</mi><mi>&alpha;</mi></mtd><mtd><mi>cos</mi><mi>&alpha;</mi></mtd></mtr></mtable></mfenced><mfenced open='[' close=']'><mtable><mtr><mtd><mover><mi>u</mi><mo>^</mo></mover></mtd></mtr><mtr><mtd><mover><mi>v</mi><mo>^</mo></mover></mtd></mtr><mtr><mtd><mover><mi>w</mi><mo>^</mo></mover></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>其中,α表示俯仰变换映射时对应的预设俯仰角;d3)借助所述失真校正映射关系,对修正映射点<img file="FDA0000068218380000026.GIF" wi="183" he="50" />进行失真校正映射处理得到俯仰修正像素点<img file="FDA0000068218380000027.GIF" wi="155" he="49" />则<img file="FDA0000068218380000028.GIF" wi="128" he="49" />即为该图像重叠区域的像素点<img file="FDA0000068218380000029.GIF" wi="106" he="49" />对应的俯仰修正像素点;e)按下式计算图像重叠区域<img file="FDA00000682183800000210.GIF" wi="33" he="65" />和<img file="FDA00000682183800000211.GIF" wi="38" he="65" />中两对相匹配像素点对应的俯仰修正连线夹角ω:<maths num="0005"><![CDATA[<math><mrow><mi>&omega;</mi><mo>=</mo><mi>arcsin</mi><mrow><mo>(</mo><mfrac><mrow><mrow><mo>(</mo><msubsup><mover><mi>y</mi><mo>^</mo></mover><mrow><mn>2</mn><mi>a</mi></mrow><mo>&prime;</mo></msubsup><mo>-</mo><msubsup><mover><mi>y</mi><mo>^</mo></mover><mrow><mn>2</mn><mi>b</mi></mrow><mo>&prime;</mo></msubsup><mo>)</mo></mrow><mo>&CenterDot;</mo><mrow><mo>(</mo><msubsup><mover><mi>x</mi><mo>^</mo></mover><mrow><mn>1</mn><mi>a</mi></mrow><mo>&prime;</mo></msubsup><mo>-</mo><msubsup><mover><mi>x</mi><mo>^</mo></mover><mrow><mn>1</mn><mi>b</mi></mrow><mo>&prime;</mo></msubsup><mo>)</mo></mrow><mo>-</mo><mrow><mo>(</mo><msubsup><mover><mi>y</mi><mo>^</mo></mover><mrow><mn>1</mn><mi>a</mi></mrow><mo>&prime;</mo></msubsup><mo>-</mo><msubsup><mover><mi>y</mi><mo>^</mo></mover><mrow><mn>1</mn><mi>b</mi></mrow><mo>&prime;</mo></msubsup><mo>)</mo></mrow><mo>&CenterDot;</mo><mrow><mo>(</mo><msubsup><mover><mi>x</mi><mo>^</mo></mover><mrow><mn>2</mn><mi>a</mi></mrow><mo>&prime;</mo></msubsup><mo>-</mo><msubsup><mover><mi>x</mi><mo>^</mo></mover><mrow><mn>2</mn><mi>b</mi></mrow><mo>&prime;</mo></msubsup><mo>)</mo></mrow></mrow><mrow><msup><mrow><mo>(</mo><msubsup><mover><mi>x</mi><mo>^</mo></mover><mrow><mn>1</mn><mi>a</mi></mrow><mo>&prime;</mo></msubsup><mo>-</mo><msubsup><mover><mi>x</mi><mo>^</mo></mover><mrow><mn>1</mn><mi>b</mi></mrow><mo>&prime;</mo></msubsup><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msubsup><mover><mi>y</mi><mo>^</mo></mover><mrow><mn>1</mn><mi>a</mi></mrow><mo>&prime;</mo></msubsup><mo>-</mo><msubsup><mover><mi>y</mi><mo>^</mo></mover><mrow><mn>1</mn><mi>b</mi></mrow><mo>&prime;</mo></msubsup><mo>)</mo></mrow><mn>2</mn></msup></mrow></mfrac><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>其中,<img file="FDA00000682183800000213.GIF" wi="167" he="53" />表示图像重叠区域<img file="FDA00000682183800000214.GIF" wi="33" he="64" />中像素点<img file="FDA00000682183800000215.GIF" wi="167" he="53" />根据预设俯仰角α<sub>1</sub>进行俯仰变换映射处理得到的俯仰修正像素点,<img file="FDA00000682183800000216.GIF" wi="178" he="52" />表示图像重叠区域<img file="FDA00000682183800000217.GIF" wi="38" he="64" />中像素点<img file="FDA00000682183800000218.GIF" wi="178" he="52" />根据预设俯仰角α<sub>2</sub>进行俯仰变换映射处理得到的俯仰修正像素点,且<img file="FDA00000682183800000219.GIF" wi="168" he="52" />与<img file="FDA00000682183800000220.GIF" wi="178" he="52" />为一对相匹配的像素点;<img file="FDA00000682183800000221.GIF" wi="163" he="52" />表示图像重叠区域<img file="FDA00000682183800000222.GIF" wi="33" he="65" />中像素点<img file="FDA00000682183800000223.GIF" wi="163" he="52" />根据预设俯仰角α<sub>1</sub>进行俯仰变换映射处理得到的俯仰修正像素点,<img file="FDA00000682183800000224.GIF" wi="174" he="52" />表示图像重叠区域<img file="FDA00000682183800000225.GIF" wi="38" he="65" />中像素点<img file="FDA00000682183800000226.GIF" wi="173" he="53" />根据预设俯仰角α<sub>2</sub>进行俯仰变换映射处理得到的俯仰修正像素点,且<img file="FDA00000682183800000227.GIF" wi="163" he="53" />与<img file="FDA00000682183800000228.GIF" wi="173" he="53" />为另一对相匹配的像素点;由此计算出图像重叠区域<img file="FDA00000682183800000229.GIF" wi="33" he="64" />和<img file="FDA00000682183800000230.GIF" wi="38" he="64" />中每两对相匹配像素点对应的俯仰修正连线夹角,并从中统计出现概率最高的俯仰修正连线夹角,作为预设俯仰角α<sub>1</sub>和α<sub>2</sub>在当前取值时图像重叠区域<img file="FDA00000682183800000231.GIF" wi="33" he="65" />和<img file="FDA00000682183800000232.GIF" wi="38" he="65" />的俯仰修正拼接夹角;f)让预设俯仰角α<sub>1</sub>和α<sub>2</sub>以取值精度Δα分别历遍俯仰角取值区间[α<sub>-</sub>,α<sub>+</sub>]内所有可能的取值,针对预设俯仰角α<sub>1</sub>和α<sub>2</sub>的每一组取值重复执行步骤d)~e),求得预设俯仰角α<sub>1</sub>和α<sub>2</sub>在各组取值时图像重叠区域<img file="FDA00000682183800000233.GIF" wi="33" he="65" />和<img file="FDA00000682183800000234.GIF" wi="39" he="65" />的俯仰修正拼接夹角,将其中俯仰修正拼接夹角的绝对值最小情况下|α<sub>1</sub>|-|α<sub>2</sub>|的值最小时所对应的预设俯仰角α<sub>1</sub>和α<sub>2</sub>分别作为鱼眼图像Q<sub>1</sub>和Q<sub>2</sub>的校正俯仰角α<sub>Q1</sub>和α<sub>Q2</sub>;g)根据校正俯仰角α<sub>Q1</sub>对鱼眼图像Q<sub>1</sub>在球面坐标上的映射点进行俯仰变换映射处理得到鱼眼图像Q<sub>1</sub>的俯仰校正球面图像D′<sub>1</sub>;根据校正俯仰角α<sub>Q2</sub>对鱼眼图像Q<sub>2</sub>在球面坐标上的映射点进行俯仰变换映射处理得到鱼眼图像Q<sub>2</sub>的俯仰校正球面图像D′<sub>2</sub>;俯仰校正球面图像上像素点(u′,v′,w′)与鱼眼图像在球面坐标上映射点(u,v,w)的俯仰变换映射关系为:<maths num="0006"><![CDATA[<math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msup><mi>u</mi><mo>&prime;</mo></msup></mtd></mtr><mtr><mtd><msup><mi>v</mi><mo>&prime;</mo></msup></mtd></mtr><mtr><mtd><msup><mi>w</mi><mo>&prime;</mo></msup></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mi>cos</mi><mi>&alpha;</mi></mtd><mtd><mo>-</mo><mi>sin</mi><mi>&alpha;</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mi>sin</mi><mi>&alpha;</mi></mtd><mtd><mi>cos</mi><mi>&alpha;</mi></mtd></mtr></mtable></mfenced><mfenced open='[' close=']'><mtable><mtr><mtd><mi>u</mi></mtd></mtr><mtr><mtd><mi>v</mi></mtd></mtr><mtr><mtd><mi>w</mi></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>其中,α<sub>Q</sub>表示俯仰变换映射时对应的校正俯仰角;h)分别对俯仰修正球面图像D′<sub>1</sub>和D′<sub>2</sub>进行失真校正映射处理,得到鱼眼图像Q<sub>1</sub>的俯仰校正透视平面图像P′<sub>1</sub>以及鱼眼图像Q<sub>2</sub>的俯仰校正透视平面图像P′<sub>2</sub>,校正完成;俯仰校正透视平面图像上第y′行第x′列像素点(x′,y′)与俯仰修正球面图像上像素点(u′,v′,w′)的失真校正映射关系为:<maths num="0007"><![CDATA[<math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><msup><mi>x</mi><mo>&prime;</mo></msup><mo>=</mo><mi>f</mi><mo>&CenterDot;</mo><mrow><mo>(</mo><mfrac><mi>&pi;</mi><mn>2</mn></mfrac><mo>+</mo><mi>arccos</mi><mrow><mo>(</mo><mfrac><msup><mi>w</mi><mo>&prime;</mo></msup><msqrt><msup><mi>u</mi><mrow><mo>&prime;</mo><mn>2</mn></mrow></msup><mo>+</mo><msup><mi>w</mi><mrow><mo>&prime;</mo><mn>2</mn></mrow></msup></msqrt></mfrac><mo>)</mo></mrow><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msup><mi>y</mi><mo>&prime;</mo></msup><mo>=</mo><mi>f</mi><mo>&CenterDot;</mo><mrow><mo>(</mo><mi>&pi;</mi><mo>-</mo><mi>arctan</mi><mrow><mo>(</mo><mfrac><msqrt><msup><mi>u</mi><mrow><mo>&prime;</mo><mn>2</mn></mrow></msup><mo>+</mo><msup><mi>w</mi><mrow><mo>&prime;</mo><mn>2</mn></mrow></msup></msqrt><msup><mi>v</mi><mo>&prime;</mo></msup></mfrac><mo>)</mo></mrow><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></math>]]></maths>
地址 400044 重庆市沙坪坝区沙正街174号