ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

利用matlab进行双目相机标定

2022-08-21 16:03:10  阅读:169  来源: 互联网

标签:标定 内参 相机 畸变 matlab path fileNames


采集图像

  1. 命令行窗口输入cameraCalibrator打开相机标定工具箱。
  2. 单击Add Images后的小三角,选择from camera
    image
  3. 选择相机,设置相机属性。
    image
    设置分辨率
    image
    设置保存路径和拍照总数。总数尽量多些,因为不一定每张图像都能用。之后点击capture开始拍照。
    image
    image

分割图像

运行分割图像的程序。左相机图像被保存在camera1中,右相机图像被保存在camera2中。

clc;
clear all;

path = ['H:/calibration/',datestr(now,'yyyy-mm-dd'),'/'];
dirOutput=dir(fullfile(path,'*.png'));
fileNames={dirOutput.name};
sz = size(fileNames);
mkdir([path,'/camera1']);mkdir([path,'/camera2']);mkdir([path,'result']);

for i = 1:sz(2) 
    img = imread([path,fileNames{i}]);
    szImg = size(img); % 480 1280 3
    imgLeft = img(:,1:szImg(2)/2,:);
    imgRight = img(:,szImg(2)/2+1:szImg(2),:);
    imwrite(imgLeft,[path,'/camera1/',fileNames{i}]);
    imwrite(imgRight,[path,'/camera2/',fileNames{i}]);
end

标定双目相机

  1. 在命令行窗口输入stereoCameraCalibrator,点击Add Images,选择图像属性。
    image
  2. 选择属性
    image
    compute intrinsics:计算相机内参。
    use fixed intrinsics:加载工作空间中预先训练好的相机内参。
    image

相机的畸变参数有径向畸变K1,K2,K3,切向畸变P1,P2

选择2Coefficients选项代表默认将K3视为0(K3通常在鱼眼镜头中使用,普通镜头一般不考虑),那么标定得到的径向畸变只有K1和K2两个值。如果选择3Coefficients则标定后也会得到K3值。

Skew值和我们得到的内参矩阵有关,如果未选中Skew,得到的内参就是下面式1,选中得到的内参便是式2,两者的区别就是有没有考虑到Skew偏斜系数
式1
image
式2
image

Tangential Distortion就是问你考不考虑切向畸变,不选中则切向畸变P1=P2=0;

在Opencv中,畸变系数使用时顺序为K1、K2、P1、P2、K3。

需要注意的是,
1.opencv使用这些参数时,内参矩阵IntrinsicMatrix和旋转矩阵RotationOfCamera2需要转置后再使用。这点非常重要,否则你立体校正的结果都是错的,何况立体匹配。
2.在更改相机分辨率进行测距时,需要使用相应分辨率的图片进行重新标定,否则得到的距离结果是错误的。
双目测距注意事项(Matlab+Opencv)

  1. 点击calibrate开始标定。
    选择导出标定参数或者导出标定程序
    image

标签:标定,内参,相机,畸变,matlab,path,fileNames
来源: https://www.cnblogs.com/hezexian/p/16610113.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有