MATLAB标定ZED双目摄像头步骤

Matlab version:2017b

Matlab标定双目摄像头三步走:

  • 图像采集
  • 单目相机标定
  • 双目相机标定

图像采集

利用Matlab对棋盘格进行图像采集,图片数量在15~25之间。采集代码如下:

% 代码功能:每次按下enter键,采集一次棋盘格图片,并将左右相机的图像分离,各自存到事先建好的目录下
clear all;close all;clc;% Open the ZED
zed = webcam('ZED')
% Set video resolution=720P
zed.Resolution = zed.AvailableResolutions{1};
% Get image size
[height width channels] = size(snapshot(zed))
ok = 1;
i = 0;
% Start loop
while ok% get key valuew = waitforbuttonpress;if w% Capture the current imageimg = snapshot(zed);% Split the side by side image image into two imagesimage_left = img(:, 1 : width/2, :);image_right = img(:, width/2 +1: width, :);% save imagesimwrite(image_left, ['E:\zed\leftImage\',num2str(i),'.jpg']);imwrite(image_right, ['E:\zed\rightImage\',num2str(i),'.jpg']);% Display the left and right imagessubplot(1,2,1);imshow(image_left);title('Image Left');subplot(1,2,2);imshow(image_right);title('Image Right');drawnow;i = i+1;end
end% close the camera instanceclear zed

这里插补一下ZED相机在Matlab中的使用方法:
在Matlab命令窗口输入

>> webcamlist

ZED相机被检测到的话,会得到

ans ='ZED'

初次使用这个命令会报错

Error using webcamlist (line 20)
MATLAB Support Package for Webcams has not been installed. Open  Support Package Installer to install the Webcam Support Package.

解决方法:点击错误里面的链接,注册一下Matlab的账号,下载安装一下支持包就可以了。
打开相机,输入

>> cam = webcam

Matlab会返回相机信息

cam =webcam with properties:Name: 'ZED'
Resolution: '2560x720'
AvailableResolutions: {1x4 cell}
WhiteBalanceMode: 'auto'
Sharpness: 4
Saturation: 5
Hue: 0
Gain: 4
WhiteBalance: 4600
Contrast: 4
Brightness: 4
Exposure: 2
ExposureMode: 'auto'

运行相机,输入

>> preview(cam)

抓取图片,输入

>> img = snapshot(cam);

关闭相机,输入

>> clear cam

单目相机标定

这里,先标定左相机。标定主要用的是Matlab的标定工具箱插件。插件下载地址:
Camera Calibration Toolbox for Matlab

将下载好的文件夹放在Matlab的toolbox目录下,然后在Matlab命令窗口输入

>> pathtool

在弹出的Set path 窗口中,点击Add Folder,添加toolbox_calib插件目录,点击save。

将Matlab当前文件夹切换到包含左相机图片的文件夹下。

在Matlab命令窗口输入

>> calib_gui

弹出工具栏窗口

选择第一个选项,弹出标定界面

点击“Image names”,Matlab命令窗口显示如下

这里是要求输入图片命名里除了数字和后缀之外的部分,比如图片命名为“left1.jpg”,这里要输入“left”,因为我的图片命名里只有1,2,3…数字,所以直接回车。

Image format是图片的格式,按照实际情况选择。回车。图片加载成功。

然后,点击标定界面的Extract grid corners(提取角点),Matlab命令窗口如下

一路回车,默认即可。最后会跳出第一幅图棋盘图,然后按顺时针或逆时针旋转棋盘格最外面的四个格子的内角点。

之后,Matlab的命令窗口要求输入格子的大小,单位mm,我的是30*30mm,所以输入30。

然后,会弹出一个角点提取的图片。

如果对角点提取不满意,即红色十字和实际的角点不是很接近,可以通过系数kc调整,如下图

注意kc的取值范围在-1~+1之间,一般可以试试-0.1、-0.2、-0.3。调好以后,在Satisfied with distortion? ([]=no, other=yes) 后输入1。之后会进入第二张图片进行角点提取,重复上述过程,直到所有图片的角点提取完成。

所有图片的角点提取完成后,Malba命令窗口会显示左相机的内参。

标定结束后可以通过标定界面按钮进行可视化的观察,比如误差图的查看,点击Analyse error

可以点击误差较大的点,在Matlab命令窗口显示这个点的基本信息。
左相机标定结果出来后,点击标定界面的Save,这时结果文件默认保存在当前文件夹下面,默认文件名为Calib_Results.mat,将其改为Calib_Results_left.mat(双目标定用到)。至此左摄像头标定结束,右摄像头标定过程与左一样,最后保存为Calib_Results_right.mat。

双目相机标定

Matlab命令行输入

>> stereo_gui

弹出立体标定界面,选择第一个Load

load左右相机标定结果的.mat文件,如果命名是“Calib_Results_left.mat”和“Calib_Results_right.mat”,直接回车,否则需要输入正确的文件名。

回车后,Matlab会显示左右相机的标定结果,点击一下标定界面的run,会显示优化后的标定结果。

至此,左、右相机的内参和双目相机的外参都标定好了。标定结束。
如果想将标定结果转换为opencv能用的文件,参考下面的博客。
参考博客

MATLAB标定ZED双目摄像头相关推荐

  1. zed双目摄像头 +yolo进行双目测距

    zed双目摄像头 +yolo进行双目测距 首先根据你电脑或者jetson系列中的cuda版本下载对应的zed sdk,去安装zed api 安装过程可能会出现import pyzed.sl as sl ...

  2. Jetson TX2入门之ZED双目摄像头

    Jetson TX2入门之ZED双目摄像头 简介 这里的ZED不是英雄联盟的英雄影流之主,而是stereolabs研发的一款双目摄像头,这款摄像头从镜头到传感器充满了尖端技术,将深度和运动跟踪提升到一 ...

  3. 双目摄像头三种标定方式标定结果对比

    不同的人利用不同的方法对双目摄像头进行标定,总结起来包括如下三种,(1)利用matlab分别对左.右摄像头进行标定:(2)利用matlab同时对双目摄像头进行标定:(3)利用opencv对摄像头进行标 ...

  4. 基于matlab的双目摄像头标定

    利用matlab对双目摄像头进行标定,本文使用的matlab版本为Matlab R2018b. (1)下载标定工具箱 网址:http://www.vision.caltech.edu/bouguetj ...

  5. 【手把手教你用Matlab做双目摄像头标定】Ubuntu环境

    [手把手教你用Matlab做双目摄像头标定] Ubuntu20.04环境 准备工作 你需要一个标定板 你需要一个双目摄像头 获取双目摄像头的设备号 跑起来看看 分割图像并完成拍照 使用Matlab进行 ...

  6. 双目摄像头标定完整过程 借助Matlab软件工具箱

    运用matlab2017 进行摄像头获取标定参数: 本人试过两种方法,好坏各有. ①运用matlab自带标定工具箱进行标定,非常省事,说下大概步骤,(嫌麻烦不上图了) 1.在命令行输入stereoCa ...

  7. 利用Matlab对双目摄像头进行标定

    一.环境准备 Python=3.6 Matlab=2021b 一张棋盘图(A3.A4打印均可)如下图所示. 二.利用双目摄像头进行拍摄  注意应当拍摄40张左右照片(后期需要删除误差较大的图片),棋盘 ...

  8. 要matlab标定数据做双目相机矫正OpenCV C++

    双目相机矫正 系列文章来了,C/CPP实现双目矫正(不使用OpenCV)及矫正源码解析正在更新中. 开始本文内容 标定步骤: matlab标定较为准确,命令行中输入stereoCameraCalibr ...

  9. 双目摄像头(CSI-IMX219)的标定

    1.介绍 网上关于这类标定有挺多教程的,但由于这个摄像头的特殊性,所以不可能完全安装教程来走. 目前来说有3种标定方法: ROS操作系统来标定 matlab标定 opencv标定 这三种方法我先试了用 ...

最新文章

  1. vs配置不依赖其他包路径
  2. 华为云部署html网页,手把手教你如何在华为云服务器上部署一个自己的弹幕网站!...
  3. 利用flask写的接口(base64, 二进制, 上传视频流)+异步+gunicorn部署Flask服务+多gpu卡部署
  4. linux 命令行图形界面切换
  5. 计算机病毒不会直接危害计算机用户的健康,北京语言大学入学测试机考(高起点)计算机基础模拟题...
  6. 我们建立数据中心,需要考虑哪些问题?
  7. 通过RDC访问内网电脑时提示“出现身份验证错误。要求的函数不受支持 这可能是由于CredSSP加密”...
  8. 基于ATMEGA128单片机的播种机控制系统
  9. ADB各种操作指令详解大汇总
  10. Hadoop2.7.1+Hbase1.2.1集群环境搭建(5)hbase安装
  11. win10开启自带wifi共享操作步骤
  12. 太极拳透劲的原理推测
  13. Flink Data Types Serialization
  14. 怎么制作位置分布图,怎么画网点分布图
  15. php target当前页面,href标签target=_blank属性的妙用
  16. 蝴蝶展翅鸿蒙云飞,关于蝴蝶的伤感句子 开辟鸿蒙,谁为情种?都只为风月情浓...
  17. csrf漏洞防御方案_CSRF 漏洞原理详解及防御方法
  18. Java实现-交错正负数
  19. 算法模版:暴力搜索之DFS【沈七】
  20. 小扎不要「脸」了?Facebook正式改名Meta!买它,满仓元宇宙

热门文章

  1. 推荐系统中协同过滤算法实现分析(重要两个图!!)
  2. python 3.7.3 shell_Python 3 运行 shell 命令
  3. 用Windows Media Encoder建数字电台
  4. 2的幂,3的幂,4的幂
  5. 什么是ddx 2000字
  6. WebSocket微聊系统简易流程图
  7. Pointers on C - C 和指针 - 书中源代码
  8. 目前最全DDOS攻击方式及防御措施,不看你就亏了!
  9. MediaRecorder录音原生时序
  10. C# DirectShow预览摄像头并截图