提示:文章仅作为自己学习过程中的记录,有问题请指出
前言
准备好双目棋盘格图像,图像越多越好,一般采集60组左右,标定之后还要进行筛选,保留30多组就可以了。(matlab标定需要的图像有没有白边都可以,opencv标定必须需要白边)
双目图像同步采集方法:海康威视工业相机Linux SDK开发指南详细步骤(Ubuntu20.04+单目、双目相机单次、连续拍照)
没有白边的棋盘格用来标定雷达
使用环境:matlab 2021b,ubuntu 20.04
没有白边的棋盘格:
有白边的棋盘格:
提示:以下是本篇文章正文内容,下面案例可供参考
一、Matlab双目标定
1.打开matlab,点击APP,里面有自带的单双和双目标定工具(如果没有的话可能是在安装matlab的时候没有选择Computer Vision Toolbox,可以获取更多APP进行安装)
(1)单目标定( 2)雷达相机联合标定 (3)双目标定
2.点击双目标定,然后添加图片
3.选择对应的双目图像保存文件,并输入棋盘格的一个方格的边长(单位mm)
4.点击确定加载图像,选择径向畸变和切向畸变,并标定
(1)选择两个还是三个径向畸变系数(3个一般更加准确)
(2)一般只用选择计算切向畸变(结果会更加准确)
(3)开始标定
5.查看重投影误差,并剔除误差比较高的(我这里一共有72组图像,剔除后保留40组左右就可以了)
剔除前,平均重投影误差:0.15
剔除后平均误差:0.10
6.标定完成之后导出参数
7.然后在工作区可以看到刚刚保存的参数,双击打开
这里有对应的相机1和相机2的参数,两个相机2到相机1之间的旋转矩阵R(需要转置才能使用)和平移矩阵T,E矩阵和F矩阵,平均重投影误差和对应的标定图像数量,可以根据自己的需要选择对应的参数。
对应的单个相机的参数:
其中使用的比较多的就是我选择出来的四个参数:
1.径向畸变[k1,k2,k3]
2.切向畸变[p1,p2]
3.内参矩阵,需要转置之后才能使用
4.焦距
注:一般在使用的时候畸变系数的顺序[k1,k2,p1,p2,k3]
二、opencv+C++双目标定(ubuntu)
opencv的双目标定主要参考opencv+C++双目标定(ubuntu)