【双目相机】基于matlab的参数标定2-使用matlab标定

matlab标定流程

使用双目相机拍照并分割图片:
【双目相机】基于matlab的参数标定1-使用双目相机拍照

照片拍摄好后,进入matlab标定工具箱,如下图所示。可以使用matlab2020a版本。
【双目相机】基于matlab的参数标定2-使用matlab标定_第1张图片进入工具箱以后,选择Add Images。
【双目相机】基于matlab的参数标定2-使用matlab标定_第2张图片选择左右相机照片的路径,Size of checkerboard square为棋盘中每一个方格的长度,单位为毫米,一定要准确测量方格的长度,如下图所示。
【双目相机】基于matlab的参数标定2-使用matlab标定_第3张图片点击确定以后,会显示失效图片数,这也是为什么前期要多拍照的原因,然后点击确定进入校准界面
【双目相机】基于matlab的参数标定2-使用matlab标定_第4张图片点击确定进入校准界面
【双目相机】基于matlab的参数标定2-使用matlab标定_第5张图片
这里,Radial Distortion Compute栏依次点击3 Coefficients、Tangential Distortion、Skew,然后点击Calibrate进行校准。
【双目相机】基于matlab的参数标定2-使用matlab标定_第6张图片点击Calibrate进行校准后需要剔除一些误差较大的点,如上图所示,点击柱状图后对应图片处右键即可。
【双目相机】基于matlab的参数标定2-使用matlab标定_第7张图片处理完毕后点击Export Camera Parameters即可

数据操作

工作栏的数据如下所示
【双目相机】基于matlab的参数标定2-使用matlab标定_第8张图片CameraParameters1 与 CameraParameters2 为左右摄像头的内部参数,RotationOfCamera2 与 TranslationOfCamera2 为两个摄像头的旋转、平移参数。

平移参数可直接使用;但旋转参数需进行转置才能使用。

为了避免手工获取数据时出错,直接运行如下代码即可直接获取标定数据,并保存到表格文件中。

rowName = cell(1,10);
rowName{1,1} = '平移矩阵';
rowName{1,2} = '旋转矩阵';
rowName{1,3} = '相机1内参矩阵';
rowName{1,4} = '相机1径向畸变';
rowName{1,5} = '相机1切向畸变';
rowName{1,6} = '相机2内参矩阵';
rowName{1,7} = '相机2径向畸变';
rowName{1,8} = '相机2切向畸变';
rowName{1,9} = '相机1畸变向量';
rowName{1,10} = '相机2畸变向量';
aaa='out2.xlsx';
xlswrite(aaa,rowName(1,1),1,'A2');
xlswrite(aaa,rowName(1,2),1,'A3');
xlswrite(aaa,rowName(1,3),1,'A6');
xlswrite(aaa,rowName(1,4),1,'A9');
xlswrite(aaa,rowName(1,5),1,'A10');
xlswrite(aaa,rowName(1,6),1,'A11');
xlswrite(aaa,rowName(1,7),1,'A14');
xlswrite(aaa,rowName(1,8),1,'A15');
xlswrite(aaa,rowName(1,9),1,'A16');
xlswrite(aaa,rowName(1,10),1,'A17');
xlswrite(aaa,stereoParams.TranslationOfCamera2,1,'B2');  % 平移矩阵
xlswrite(aaa,stereoParams.RotationOfCamera2.',1,'B3');  % 旋转矩阵
xlswrite(aaa,stereoParams.CameraParameters1.IntrinsicMatrix.',1,'B6');  % 相机1内参矩阵
xlswrite(aaa,stereoParams.CameraParameters1.RadialDistortion,1,'B9');  % 相机1径向畸变(1,2,5)
xlswrite(aaa,stereoParams.CameraParameters1.TangentialDistortion,1,'B10');  % 相机1切向畸变(3,4)
xlswrite(aaa,stereoParams.CameraParameters2.IntrinsicMatrix.',1,'B11');  % 相机2内参矩阵
xlswrite(aaa,stereoParams.CameraParameters2.RadialDistortion,1,'B14');  % 相机2径向畸变(1,2,5)
xlswrite(aaa,stereoParams.CameraParameters2.TangentialDistortion,1,'B15');  % 相机2切向畸变(3,4)
xlswrite(aaa,[stereoParams.CameraParameters1.RadialDistortion(1:2), stereoParams.CameraParameters1.TangentialDistortion,...
    stereoParams.CameraParameters1.RadialDistortion(3)],1,'B16');  % 相机1畸变向量
xlswrite(aaa,[stereoParams.CameraParameters2.RadialDistortion(1:2), stereoParams.CameraParameters2.TangentialDistortion,...
    stereoParams.CameraParameters2.RadialDistortion(3)],1,'B17');  % 相机2畸变向量

运行完毕后即可在对应文件内查看参数
【双目相机】基于matlab的参数标定2-使用matlab标定_第9张图片注意第一行是空的,下一节会有用。

你可能感兴趣的:(matlab,开发语言)