这是在下用的摄像头,还算便宜,如果是无畸变的摄像头可以直接跳过立体标定。也可以直接用两个相同的USB单目摄像头,不过进行立体标定的过程可能有点麻烦。
下面在下介绍在下实现3d重建的整个步骤。
1.先获取摄像头内参,外参
2.进行双目摄像头立体标定
3.进行立体匹配获得视差图(SGBM)
4.根据Z=b*f/d得到深度图
5.根据深度图绘制点云图
下面,在下按照各个步骤给大家进行讲解:
1.先获取摄像头内参,外参
https://blog.youkuaiyun.com/u012319493/article/details/77622053
获得以下矩阵
Mat M1 = Mat::zeros(3,3,CV_64F);//左相机内参矩阵
Mat M2 = Mat::zeros(3,3,CV_64F);//右相机内参矩阵
Mat D1 = Mat::zeros(1,14,CV_64F);//左相机畸变系数向量
Mat D2 = Mat::zeros(1,14,CV_64F);//右相机畸变系数向量
Mat R = Mat::zeros(3,3,CV_64F);//两相机相对旋转矩阵
Mat T = Mat::zeros(3,1,CV_64F);//相对平移矩阵
Mat R1 = Mat::zeros(3,3,CV_64F);//第一个摄像机的校正变换矩阵(旋转变换)
Mat R2 = Mat::zeros(3,3,CV_64F);//第二个摄像机的校正变换矩阵(旋转变换)
Mat P1 = Mat::zeros(3,4,CV_64F);//第一个摄像机在新坐标系下的投影矩阵
Mat P2 = Mat::zeros(3,4,CV_64F);//第二个摄像机在新坐标系下的投影矩阵
Mat Q = Mat::zeros(4,4,CV_64F);//深度差异映射矩阵