(一)手把手教双目相机标定(超详细,附代码)[通俗易懂]

2022-09-02 16:38:13 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

内容提要: 双目相机标定目的:求出左、右相机的内、外参数矩阵以及畸变参数 使用软件:matlab 2018 标定过程分三步走:

  1. 图像采集
  2. 图像分割
  3. matlab工具箱标定

第一步 图像采集 本实例采用的双目相机如下图所示:

采集程序见双目相机拍摄demo程序(vs2017) 用vs2017打开采集程序,界面如下:

点击Start Preview按钮,双目相机打开。

点击Capture,即可抓拍。为了保证标定效果,笔者建议将标定棋盘放在不同位置,抓拍十张以上照片。

第二步 图像切割 双目相机直接采集到的图像中包含左右相机的分图像,标注时要求将直接采集到的图像进行切割。本人采用matlab程序编写的切割代码。

clear; A=imread(‘16.jpg’); //读取原图 [m ,n,~]=size(A); //读取原图尺寸,原图为三通道 n1=n/2;

picture_1=zeros(m,n1,3); picture_2=zeros(m,n1,3); picture_1=A(:,1:n1,:); picture_2=A(:,n1 1:n,:);

cd(‘C:UsershongyiDesktop3_27_2left’); //将切割好的左右图像保存到指定文件夹 imwrite(picture_1,‘16_l.jpg’); cd(‘C:UsershongyiDesktop3_27_2right’); imwrite(picture_2,‘16_r.jpg’);

切割效果

第三步 使用matlab标定 打开matlab,在命令行窗口输入stereoCameraCalibrator,运行。

点击界面左上角的Add Images,输入左相机图片和右相机图片所在的文件夹,以及标定板的网格尺寸。(本人使用的标定板尺寸为30mm)

点击确定,标定板上的点就会被自动识别。

点击界面上方的Calibrate键,启动标定过程。在界面下方可以看到误差统计和可视化展示。

点击界面上方按钮Export Camera Parameters,即可导出标定结果。在matlab主界面可查看。

左右相机的内参数矩阵、畸变参数以及旋转矩、平移矩阵都可以得出。 下一节将会将利用标定结果,利用双目相机拍摄的原图上的任何一个平面点求取其空间坐标。有兴趣的小伙伴可以持续关注哦!!!!!!!!!!!!!!

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140468.html原文链接:https://javaforall.cn

0 人点赞