一种设备带角度侧装的鱼眼图像校正方法
技术领域
本发明涉及一种图像校正方法,具体涉及一种设备带角度侧装的鱼眼图像校正方法。
背景技术
鱼眼镜头是一种焦距为16mm或更短的并且视角接近或等于180°的镜头。它是一种极端的广角镜头。鱼眼镜头属于超广角镜头中的一种特殊镜头,它的视力角力求达到或超出人眼所能看到的范围。鱼眼镜头图像的超大广角特点,使得镜头所拍摄图像能够给人十分强烈的透视效果,然而这种震撼人心的感染力不得不以十分强烈的图像畸变作为代价。这种畸变的结果就是只有镜头中心景物几乎没有畸变,其他地方都存在严重的景物失真,这种失真规则是,越远离镜头中心的景物形变越严重。想要在这种严重失真图像的基础上恢复出真实景物,就需要进行失真图像的几何校正。
现有技术涉及的校正方法,存在图像像素点离中心点越远,校正效果越不理想,校正后裁剪有效面积过大,且大多是针对整圆的鱼眼图像来进行的算法设计等问题。中国专利公开号CN104778656公开了球面透视投影的鱼眼图像校正方法,需要对获取的鱼眼图像到球面的映射进行计算,此映射过程不仅计算量大,且主要针对的是整圆的鱼眼图像。中国专利公开号CN103996172公开了一种基于多步校正的鱼眼图像校正方法,该方法不仅需要一个对摄像机镜头定标的过程,且校正后的图像离中心点距离越远,则越呈现出一种拉长的放射状,整体图像需要裁剪的面积较大,与使用鱼眼镜头是为了保证大视野的目的相违背。
发明内容
为弥补现有技术的不足,本发明提供一种带角度侧装的鱼眼图像校正方法,利用鼓型鱼眼图像最大限度的利用传感器,使得获得的鱼眼图像有效监控面积占比更大。
本发明是通过如下技术方案实现的:
一种设备带角度侧装的鱼眼图像校正方法,其特殊之处在于:
包括以下步骤:
S1、鱼眼有效范围提取:
采集鼓型鱼眼图像,采用逐列扫描算法对采集的原始图像进行有效范围的提取;
S2、对图像进行桶形畸***校正:
S2.1、寻找最适横纵坐标的畸变因子设为k1、k2;
S2.2、已知桶形畸变数学模型为ru=rd(1+krd 2),其中ru是非畸变图像中某像素点到图像中心的距离,rd是畸变后该像素点到图像中心的距离,k是畸变因子,由于ru,rd与畸变横纵坐标xu,yu以及xd,yd有关,将步骤S2.1中的横纵坐标畸变因子带入畸变数学模型公式,可得到变形公式:xu=xd(1+k1xd 2+k2yd 2);
S2.3、由于桶形畸变校正横坐标根据1/2W对称,纵坐标根据1/2H对称,因此在遍历图像时以1/2W和1/2H为分界线,设畸变图像上像素点横纵坐标为(xd,yd),校正后未畸变图像为(xu,yu),L1为当前像素点纵坐标位置,L2为当前像素点横坐标位置,可得到以下一组方程:
yd = L1-H/2
xd = L2-W/2
xu = xd (1+ k1xd 2+k2yd 2) + W/2
yu = yd+ H/2
由以上方程便求出桶形畸变校正后的鱼眼图像;
S3、对图像进行角度校正:
对经过粗校正的图像进行角度校正,利用S2中已经进行横纵向的粗校正后的图像进行角度校正;
S4、对校正后的图像进行有效范围切割:
对图像进行角度校正后,原图上不存在的点会使用黑色像素点补充,所以在图像局部会引入黑色区域,此时利用逐列扫描算法对校正后的图像进行有效范围的切割提取;
S5、对图像进行三次方贝塞尔曲线反向投影变换:
贝塞尔曲线三次方函数公式为:
B(t) = P0(1-t)3 + 3P1t(1-t)2 + 3P2t2(1-t) + P3t3
其中,P0,P1,P2,P3为曲线上的四个点,反映到图像上,P0为图像左边界上一点,P3为图像右边界上一点,P1,P2点分别固定为横坐标为整幅图像1/3处和2/3处的某点,t是辅助参数,它的值范围是[0,1],B(t)为校正后的图像坐标,设y轴上的位移为k,图像宽为W,高为H,图像弯曲比例为rate,则可以得到四组点对分别为P0(0,k),P1(W/3,H*rate + k),P3(2W/3,H*rate + k),P4(W,k),可以得到校正前后与横纵坐标相关的两组方程,设x’,y’为校正后的图像坐标,则有:
x’= P0x(1-t)3 + 3P1xt(1-t)2 + 3P2xt2(1-t) + P3xt3
y’= P0y(1-t)3 + 3P1yt(1-t)2 + 3P2yt2(1-t) + P3yt3
其中,设当前横坐标为i,则t=i/W,在多数参数固定的情况下可推出三次方贝塞尔曲线的反向投影公式,使得每个校正后的鱼眼图像在原图上都能找到一个对应的点;
S6、对结果图像进行有效范围切割:
利用逐列扫描算法对校正后的图像进行有效范围的切割提取,最终得到一张侧面安装带角度时获取的鱼眼图像校正图。
本发明的一种设备带角度侧装的鱼眼图像校正方法,步骤S1中采用逐列扫描算法对采集的原始图像进行有效范围的提取,具体做法为:
S1.1、计算图像上每一行各像素点的亮度,确定该行像素点的最大亮度Imax和最小亮度Imin,则该行最大像素点的亮度之差Isub为:
Isub=Imax-Imin
设边界阈值为T,逐列从左到右扫描,当Isub>T时,则认为已经扫描到鼓型鱼眼图像有效区域的左侧边缘;
S1.2、按照步骤S1.1的方法,逐列从右到左扫描鱼眼图像的像素点,当扫描到某列图像像素点Isub >T时,则认为已经扫描到鱼眼图像有效区域右侧边缘;
S1.3、将步骤S1.1和步骤S1.2中扫描到的左右边界作为鱼眼图像有效区域的边界对图像进行截取。
进一步的,所述边界阈值T的取值范围为30-70,优选T=50。
本发明的一种设备带角度侧装的鱼眼图像校正方法,步骤S3对图像进行角度校正具体做法为:
S3.1、假设校正前图像为矩形,矩形的宽和高分别为W1、H1,角度校正后图像为梯形,上底、下底分别为W1、W2,高仍为H1,确定W2的宽度即可以得到角度校正后图像四个顶点位置,倾斜的角度预设α,可根据安装及角度的改变而任意改变角度大小,由两图之间的关系可得到:
W2=2×H1×tanα + W1
S3.2、由上述公式求出的下底W2的宽度,可以得到角度校正后的四个顶点坐标分别为((W2 -W1) / 2,0)、(W2+(W2 - W1) / 2,0)、(0, H1)、(W2,H1);
S3.3、利用原图的四个顶点坐标位置和步骤S3.2中求出的角度校正后的四个顶点坐标位置,可求出两幅图像间的单应矩阵,由于单应矩阵是一个3×3矩阵,所以可以写成:
S3.4、令h22=1来进行归一化,由此可知,一个单应矩阵包含8个未知数,需要8个方程来求解,由于一对点提供两个方程,因此四个点对即可求解H,则两张图间的H映射关系就可以表示成:
S3.5、利用步骤S3.3中求得的单应矩阵H即可逐点计算出角度校正后图像各点的位置。
作为优选方案,步骤S5中图像进行三次方贝塞尔曲线反向投影变换后,为了避免孔洞现象,最后利用双线性插值法对校正后的图像进行平滑插值。
作为优选方案,步骤S4与步骤S6对图像进行有效范围切割提取方法与步骤S1相同。
本发明的有益效果是:本发明不仅可以使得获取的原始鱼眼图像有效面积占比最大化,还能对侧装带一定角度时获取的鱼眼图像有一定的角度修正,使其不会出现明显俯视视角,并且无需对摄像机镜头进行定标,就可以找到图像对应的映射点,并对鱼眼图像有一个良好的校正结果,此外,利用本发明所提到的方法校正能最小限度的对图像内容进行裁剪,保证有效监控面积最大化。
附图说明
附图1是本发明的校正方法流程示意图;
附图2是采集的原始鱼眼图像示意图;
附图3是图像畸变校正后和校正前的坐标示意图;
附图4是角度校正前和校正后的示意图;
附图5是三次方贝塞尔曲线示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明,以帮助本领域的技术人员对本发明的发明构思、技术方案有更完整、准确和深入的理解,本发明的保护范围包括但不限于以下实施例,在不偏离本申请的精神和范围的前提下任何对本发明的技术方案的细节和形式所做出的修改均落入本发明的保护范围内。
附图是本发明的一种具体实施方式。该实施例的一种带角度侧装的鱼眼图像校正方法,包括以下步骤:
S1. 鱼眼有效范围提取:
采集鼓型鱼眼图像,由于采集到的鼓型鱼眼图像存在如附图2所示的无效区域,需要对原始图像进行有限范围的提取,采用逐列扫描算法,具体方法为:
S1.1、计算图像上每一行各像素点的亮度,确定该行像素点的最大亮度Imax和最小亮度Imin,则该行最大像素点的亮度之差Isub为:
Isub=Imax-Imin 公式(1)
设边界阈值为T=50(T取值范围为30-70),逐列从左到右扫描,当Isub>T时,则认为已经扫描到鼓型鱼眼图像有效区域的左侧边缘;
S1.2、按照步骤S1.1的方法,逐列从右到左扫描鱼眼图像的像素点,当扫描到某列图像像素点Isub >T时,则认为已经扫描到鱼眼图像有效区域右侧边缘;
S1.3、将步骤S1.1和步骤S1.2中扫描到的左右边界作为鱼眼图像有效区域的边界对图像进行截取。
S2. 对图像进行桶形畸***校正:
对提取了有效区域的鱼眼图像进行粗校正,由于获取的图像为鼓型鱼眼图像,在提取了鱼眼有效区域后,整张图像与桶形畸变的图像类似,由此想到可以用桶形畸变校正的方法先对原始的鱼眼图像做一个整体的粗校正,其具体方法为:
S2.1、寻找最适横纵坐标的畸变因子设为k1,k2,本实施例中综合图像大小,图片扭曲程度,镜头选取等因素,预设k1=-0.00000005,k2=-0.0000007;
S2.2、如附图3所示,已知桶形畸变的数学模型为:
ru=rd(1+krd 2) 公式(2)
其中ru是非畸变图像中某像素点到图像中心的距离,rd是畸变后该像素点到图像中心的距离,k是畸变因子(畸变因子与具体的镜头相关),由于ru,rd与畸变横纵坐标xu,yu以及xd,yd有关,将步骤S2.1中的横纵坐标畸变因子带入公式(2),可得到变形公式:
xu=xd(1+k1xd 2+k2yd 2) 公式(3)
S2.3、由于桶形畸变校正横坐标根据1/2W对称,纵坐标根据1/2H对称,因此在遍历图像时以1/2W和1/2H为分界线,设畸变图像上像素点横纵坐标为(xd,yd),校正后未畸变图像为(xu,yu),L1为当前像素点纵坐标位置,L2为当前像素点横坐标位置,综合公式(3),可得到以下一组方程:
yd= L1-H/2
xd= L2-W/2
xu= xd(1+ k1xd 2+k2yd 2)+ W/2 公式(4)
yu= yd+ H/2
由以上方程便可以求出桶形畸变校正后的鱼眼图像。
S3. 对图像进行角度校正:
对经过粗校正的图像进行角度校正,利用S2中已经进行横纵向的粗校正后的图像进行角度校正,具体方法为:
S3.1、如附图4所示,假设校正前图像的宽和高分别为W1、H1,角度校正后上底、下底分别为W1、W2,高仍为H1,确定W2的宽度即可以得到角度校正后图像四个顶点位置,倾斜的角度预设30°,但可根据安装及角度的改变而任意改变角度大小,由两图之间的关系可得到:
W2=2×H1×/3+ W1 公式(5)
S3.2、由公式(5)求出的下底W2的宽度,可以得到角度校正后的四个顶点坐标分别为((W2 -W1) / 2,0)、(W2+(W2 - W1) / 2,0)、(0, H1)、(W2,H1);
S3.3、利用原图的四个顶点坐标位置和步骤S3.2中求出的角度校正后的四个顶点坐标位置,可求出两幅图像间的单应矩阵,由于单应矩阵是一个3×3矩阵,所以可以写成:
S3.4、由此可知,一个单应矩阵包含8个未知数(一般令h22=1来进行归一化),需要8个方程来求解,由于一对点提供两个方程,因此四个点对即可求解H。则两张图间的H映射关系就可以表示成:
S3.5、利用步骤S3.3中求得的单应矩阵H即可逐点计算出角度校正后图像各点的位置。
S4. 对校正后的图像进行有效范围切割:
由于步骤S3中对图像进行了角度上的校正,而角度校正后原图上不存在的点会使用黑色像素点补充,所以在图像局部会引入黑色区域,此时需要重复步骤S1,利用逐列扫描算法对校正后的图像进行有效范围的切割提取。
S5. 对图像进行三次方贝塞尔曲线反向投影变换:
由于步骤S2及步骤S4只是对鱼眼图像进行一个畸***校正及角度校正,所以仍需要对图像进行更进一步的校正,以确保图像画面信息的可读性,因此采用一种全新的鱼眼图像校正方法,利用三次方贝塞尔曲线的反向投影变换,对畸变的鱼眼图像进行二次校正;
如附图5所示,贝塞尔曲线可以通过控制曲线上的四个点(起始点、终止点以及两个相互分离的中间点)来创造、编辑图形,绘制出一条光滑曲线,图中P0是曲线的开始点,P3是曲线的结束点,P1和P2是控制曲线走势的控制点,t是辅助参数,它的值范围是[0,1],已知三次函数公式为:
B(t) = at3 + bt2 + ct + d 公式(7)
带入P0,P1,P2,P3四个点可得:
B(t) = P0(1-t)3 + 3P1t(1-t)2 + 3P2t2(1-t) + P3t3 公式(8)
反映到图像上,P0为图像左边界上一点,P3为图像右边界上一点,P1,P2点分别固定为横坐标为整幅图像1/3处和2/3处的某点,B(t)为校正后的图像坐标,设y轴上的位移为k,图像宽为W,高为H,图像弯曲比例为rate(rate取值范围是[0,1]),则可以得到四组点对分别为P0(0,k),P1(W/3,H*rate + k),P3(2W/3,H*rate + k),P4(W,k),带入公式(8)中,可以得到校正前后与横纵坐标相关的两组方程,设x’,y’为校正后的图像坐标则有:
x’= P0x(1-t)3 + 3P1xt(1-t)2 + 3P2xt2(1-t) + P3xt3 公式(9)
y’= P0y(1-t)3 + 3P1yt(1-t)2 + 3P2yt2(1-t) + P3yt3 公式(10)
其中,设当前横坐标为i,则t=i/W,在多数参数固定的情况下可推出三次方贝塞尔曲线的反向投影公式,使得每个校正后的鱼眼图像在原图上都能找到一个对应的点,避免孔洞现象,最后利用双线性插值法对校正后的图像进行平滑插值。
S6. 对结果图像进行有效范围切割
重复步骤S1,利用逐列扫描算法对校正后的图像进行有效范围的切割提取,最终得到一张侧面安装带角度时获取的鱼眼图像校正图。