matlab标定流程
使用双目相机拍照并分割图片:
【双目相机】基于matlab的参数标定1-使用双目相机拍照
照片拍摄好后,进入matlab标定工具箱,如下图所示。可以使用matlab2020a版本。
进入工具箱以后,选择Add Images。
选择左右相机照片的路径,Size of checkerboard square为棋盘中每一个方格的长度,单位为毫米,一定要准确测量方格的长度,如下图所示。
点击确定以后,会显示失效图片数,这也是为什么前期要多拍照的原因,然后点击确定进入校准界面
点击确定进入校准界面
这里,Radial Distortion Compute栏依次点击3 Coefficients、Tangential Distortion、Skew,然后点击Calibrate进行校准。
点击Calibrate进行校准后需要剔除一些误差较大的点,如上图所示,点击柱状图后对应图片处右键即可。
处理完毕后点击Export Camera Parameters即可
数据操作
工作栏的数据如下所示
CameraParameters1 与 CameraParameters2 为左右摄像头的内部参数,RotationOfCamera2 与 TranslationOfCamera2 为两个摄像头的旋转、平移参数。
平移参数可直接使用;但旋转参数需进行转置才能使用。
为了避免手工获取数据时出错,直接运行如下代码即可直接获取标定数据,并保存到表格文件中。文章来源:https://www.toymoban.com/news/detail-616358.html
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畸变向量
运行完毕后即可在对应文件内查看参数
注意第一行是空的,下一节会有用。文章来源地址https://www.toymoban.com/news/detail-616358.html
到了这里,关于【双目相机】基于matlab的参数标定2-使用matlab标定的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!