当我们从matlab等工具中拿到摄像头内部参数,在使用时却不知道哪个参数是表达什么意思的,下面为大家分享一下:
以下栗子中参数结合opencv来使用
摄像头内部参数表:
举个栗子:
在matlab中获取到摄像头的内部参数后,可以看到如下参数:
RadialDistortion 和TangentialDistortion 中存放的是畸变参数。
IntrinsicMatrix 存放的是摄像头的内参
1)当你双击打开时,会发现时一个矩阵参数(3*3)--------内参矩阵
这个和OpenCV中是转置的关系,注意不要搞错。
对应:
即:
743.5279 0 324.1220
0 745.5917 296.6568
0 0 1
原理介绍:
[cx,cy]是相机的光学中心(主点,principal point),s是倾斜参数,当x轴和y轴完全垂直时,s=0.
fx=f*sx,fy=f*sy,f是相机的焦距,以mm为单位,[sx,sy]代表在(x,y)方向上每毫米的像素量。
2)畸变参数
RadialDistortion 为 径向畸变,摄像头由于光学透镜的特性使得成像存在着径向畸变,可由K1,K2,K3确定。
TangentialDistortion 为 切向畸变,由于装配方面的误差,传感器与光学镜头之间并非完全平行,因此成像存在切向畸变,可由两个参数P1,P2确定。
需要注意参数的排放顺序,即K1,K2,P1,P2,K3
RadialDistortion : 0.0954 -0.2763 对应 K1,K2 ; K3默认为0
TangentialDistortion :0 0 对应 P1,P2
所以在opencv中使用时,K1,K2,P1,P2,K3顺序 :
0.0954 -0.2763 0 0 0
要点介绍:
径向畸变(RadialDistortion)
是由于透镜形状的制造工艺导致,造成图像点从主点开始沿着径向线发生位移;
其主要原因是由于透镜的制造原理使光线在远离透镜中心的地方折射效果更加明显,越远离中心点畸变的效果越显著。
对于空间中一条直线,由于径向畸变在成像平面上会变成一条曲线;
径向畸变是造成镜头畸变的主要因素,分为桶形畸变和枕形畸变。
切向畸变(TangentialDistortion)
是由于透镜CMOS或CCD的安装位置误差导致,发生在与半径垂直的方向上,但是通常没有径向畸变严重;
薄透镜畸变通常是由设计和加工过程中的瑕疵引起的镜头与成像平面不能保证完全的平行。
旋转矩阵(RotationMatrices)
3*3*num ,num是输入图像的数量
相机的外参,描述世界坐标系->相机坐标系的旋转变换
平移向量(TranslationVectors)
num*3,num是输入图像的数量
相机的外参,描述世界坐标系->相机坐标系的平移变换
希望对你有帮助。
友情链接:基于Matlab工具箱进行单目摄像头标定
文章来源: guo-pu.blog.csdn.net,作者:一颗小树x,版权归原作者所有,如需转载,请联系作者。
原文链接:guo-pu.blog.csdn.net/article/details/103075881