1.用想要标定的相机拍摄各种角度的照片。(我用的是电脑相机拍摄手机上的图片,手机上全屏的图片用尺子测量的是小格子的边长为7mm),15到20张即可。
2.打开matlab命令行输入cameraCalibrator回车。点Add images,导入所拍的照片,改为7mm,确定。
3.点击Options,勾选如图所示。点击Calibrate。
4,最后点击。Export Camera Parameters导出参数。
5,回到matlab工作区。
IntrinsicMatrix对应内参,注意这个和程序中是转置的关系,注意不要搞错。
RadiaDistortion即为相机的畸变矩阵对应k1,k2,k3。
TangentialDistortion对应p1,p2。
畸变参数键洞野,总共有五个,径向畸变3个(k1,k2,k3)和切向畸变2个(p1,p2)。
RotationMatrices为16张图片的外参矩阵translationVectors 为16张图片的转移矩阵。因为每张图片对应一个世界坐标系(旋转矩阵和平移矩阵是世界坐标系相对于摄像机坐标系的,而算法中规定世界坐标系是标定板为z=0的平面,对于不同位置的标定板,其世界坐标系的定义是不同的,这也就不难解释为什么有多个旋转矩阵和平移矩阵了),所以稿喊实际情况时,内参矩阵,畸变矩阵确定后,选一个合适的世界坐标系,将其对应的外参矩阵和平移矩阵带入即可用于颤凳相机的坐标系转换。
至此,相机标定结束。
matlab相机标定后,焦距需要在计算后读取。1、打开matlab,找到APP,下三角祥升陵查看更多选项
2、在图像处理和计算机视觉这一栏中找到黄色的这笑信两个工具箱,cameracalibrator工具箱用来做单个相机标定,谨戚stereocameracalibrator工具箱用来做双目相机标定,先打开第一个工具箱。
3、添加拍摄好的标定板的图片,拍摄标定板时最好占满半屏以上,有平移有旋转
4、输入标定板中相邻棋盘格之间实际距离,标定精度很大程度取决于标定板的精度,相机标定后,通过计算读取结果。
首先是因为 一个像素的大小不是正方形。dx: 单个像素在 X 方向上的 单位长度;
dy: 单个像素在 y 方向上的 单毁消位长度;
如纤茄知果纳衫长6cm, 占了10个像素,则 dx=0.6cm/pixel
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)