一、前期准备

1、安装好python3,可以在anaconda中安装python3。
2、一个合适的双目摄像头。
3、一台可以运行Matlab的电脑。
4、一张棋盘图(可A4打印,若效果不佳,则可A3打印)。
棋盘图如下图所示:需要测量小方框的边长(一般单位为毫米:mm)。

二、使用双目摄像头(左+右)拍摄棋盘图

1、注意事项

注意:
1、左、右摄像头图像中必须包含单独的完整的棋盘图。
2、可适当前后、左右、上下翻转棋盘图,在符合上述条件1的情况下。
3、拍摄左右双目的照片40~50张比较合适。

如图所示:

2、双目拍照代码(python)

take_photo.py内容如下:

import cv2
import sys
#引入库cap = cv2.VideoCapture(1) #读取笔记本内置摄像头或者0号摄像头i = 0
while True:ret, frame = cap.read()if (ret):cv2.namedWindow("Video01",0)   #创建一个名为Video01的窗口,0表示窗口大小可调#cv2.resizeWindow("Video01",1280,720) ##创建一个名为Video01的窗口,设置窗口大小为 1920 * 1080 与上一个设置的 0 有冲突cv2.imshow("Video01", frame)#等待按键按下c = cv2.waitKey(1) & 0xff#r若按下w则保存一张照片if c ==ord("w"):cv2.imwrite("./val_001/%d.bmp" %i, frame) #自己设置拍摄的照片的存储位置print("Save images %d succeed!" %i)i+=1#若按下Q键,则退出循环if c == ord("q"):break#随时准备按q退出
cap.release()
#关掉所有窗口
cv2.destroyAllWindows()

注意:
1、运行take_photo.py前,注意设置左右照片的存储位置。
2、运行take_photo.py后,按下键盘上的“W”键拍摄一张照片。当拍摄的照片数量足够时,按下“Q”键退出程序运行。
3、程序退出后,打开存储照片的文件夹查看照片是否合适。

3、双目左右照片分割(python)

resize.py内容如下:

import numpy as np
import cv2#img1 = cv2.imread(r"/Users/inbc/Desktop/zuo/Left1.bmp")
#img2 = cv2.imread(r"/Users/inbc/Desktop/you/Right1.bmp")
for i in range(0,7) :#imgT = cv2.imdecode(np.fromfile('./images/%d.bmp'  %i ,dtype=np.uint8), -1)imgT = cv2.imdecode(np.fromfile('./val/%d.bmp'  %i ,dtype=np.uint8), -1) #读取拍摄的左右双目照片# cv2.imshow("zuo", img1[300:1200, 500:2000])# cv2.imshow("you", img2[300:1200, 500:2000])# cv2.waitKey(0)#设置左右照片的存储位置cv2.imwrite("./val/zuo/reLeft%d.bmp"  %i  ,imgT[0:720, 0:1280] )#imgL的第一个参数是图片高度像素范围,第二个参数是图片宽度的像素范围cv2.imwrite("./val/you/reRight%d.bmp" %i ,imgT[0:720, 1280:2560] )print("Resize images%d Fnished!" %i)print("Fnished All!!!")

注意:
1、运行resize.py前,注意设置左、右照片的分别的存储位置。
2、运行resize.py后,终端打印"Fnished All!!!"表示分割完成。
3、程序退出后,打开存储照片的文件夹查看照片,是否分割完成,左摄像头照片存放在zuo,右摄像头照片存放在you。(文件名可自己更改)

三、Matlab双目参数标定

1、打开Matlab后,点开app,找到Stereo Camera Calibrator。如下图所示:打开后如图所示:
2、导入双目的左右照片到Stereo Camera CalibratorAPP。具体操作,如下图所示:

3、点击确认后就可以分析导入的左右的照片了。这个过程会自动剔除掉不合格(误差过大)的左右照片。

4、导入照片后就可以进行双目定标了。
导入左右照片后,如图所示:

5、设置双目相机的定标参数,如图所示。

6、进行双目定标,并导出双目参数矩阵到Matlab中,进行下一步的处理。

四、双目参数提取

1、左、右相机内参数获取,注意参数矩阵的转置:

>> stereoParams.CameraParameters1.IntrinsicMatrix'#左相机参数ans =831.0889   -4.0855  659.42430  831.8663  487.32590         0    1.0000>> stereoParams.CameraParameters2.IntrinsicMatrix'#右相机参数ans =831.1982   -3.5773  632.53080  832.1221  479.30840         0    1.0000

Matlab如图所示:

2、获取左右相机畸变系数。

注意: 左右相机畸变系数:[k1, k2, p1, p2, k3] ,顺序要正确。

 # 左右相机畸变系数:[k1, k2, p1, p2, k3]>> stereoParams.CameraParameters1.RadialDistortionans =-0.0806    0.3806   -0.5229 #k1  k2  k3>> stereoParams.CameraParameters1.TangentialDistortionans =-0.0033    0.0005    #p1     p2

Matlab如图所示:

3、获取双目的旋转矩阵和平移矩阵,注意旋转矩阵的转置。

 # 旋转矩阵
>> stereoParams.RotationOfCamera2'ans =1.0000    0.0017   -0.0093-0.0018    1.0000   -0.00190.0093    0.0019    1.0000# 平移矩阵
>> stereoParams.TranslationOfCamera2ans =-119.9578    0.1121   -0.2134

Matlab如图所示:

4、获取基线距离,单位:mm, 为平移向量的第一个参数(取绝对值)。

 self.baseline = 119.9578 # 单位:mm, 为平移向量的第一个参数(取绝对值)

至此,双目摄像头的参数就定标完了。

耐心一点,慢慢来总会成功的!!!

双目摄像头Matlab参数定标相关推荐

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

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

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

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

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

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

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

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

  5. 使用MATLAB toolbox标定摄像头的参数

    前言: 在使用orb slam的时候,有个Settings.yaml文件,里面需要填写所用摄像头的参数,包括焦距(focal length),光学中心(optical center,也叫偏斜参数(sk ...

  6. MATLAB标定ZED双目摄像头

    MATLAB标定ZED双目摄像头步骤 Matlab version:2017b Matlab标定双目摄像头三步走: 图像采集 单目相机标定 双目相机标定 图像采集 利用Matlab对棋盘格进行图像采集 ...

  7. python怎么让摄像头图像暂停然后在启动_双目摄像头测量距离

    前言 在计算机视觉中,可以通过双目摄像头实现,常用的有BM 算法和SGBM 算法等,双目测距跟激光不同,双目测距不需要激光光源,是人眼安全的,只需要摄像头,成本非常底,也用于应用到大多数的项目中.本章 ...

  8. Android双目三维重建:Android双目摄像头实现双目测距

    Android双目三维重建:Android双目摄像头实现双目测距 目录 Android双目三维重建:Android双目摄像头实现双目测距 1.开发版本 2.Android双目摄像头 3.双目相机标定 ...

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

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

最新文章

  1. 2019年陕西省普通高校招生考生成绩统计表(理工、艺理、体育)
  2. HLS-搭建Nginx流媒体服务器
  3. PostgreSQL数据库设置远程连接
  4. 06-Java 本地文件操作
  5. swagger + springboot 传递 List参数解决
  6. c 语言简单的聊天程序,写一个C-S程序,实现简单的聊天功能。(tcp/ip)
  7. Java之品优购课程讲义_day20(5)
  8. Java代码块回调,QueueEvent - 队列化执行线程和代码块
  9. 2021年自驾游数据报告
  10. 如何删除 Mac 上的 Office 许可证文件?
  11. JS地图经纬度正则表达式校验
  12. 网络通信中 TCP 产生 RST 的三个条件分析
  13. 通过调用接口查询ISBN的图书信息
  14. A7139射频模块wor配置解析
  15. NetWORK ShortCuts 创建
  16. U8备份提示“远程组件初始化失败”
  17. 7-139 手机话费 (10分)
  18. 媒体查询 iPad 竖屏
  19. java IO初识与Linux网络I/O模型简介
  20. 图像识别购物超方便!

热门文章

  1. 【转帖】超能课堂(186) CPU中的那些指令集都有什么用?
  2. 收藏:团队应该提倡和反对的约章几则
  3. 科学计算机怎么使用幂,科学计算器e的幂次方怎么算 科学计算器怎么进行指数计算,我想算e的...
  4. 爱奇艺适配鸿蒙,鸿蒙天尊_爱奇艺鸿蒙天尊官网
  5. 入手评测 科大讯飞翻译机3.0和2.0有什么区别 哪个好
  6. 零点高级PS教程 第3期案实战例教程48节 价值1999元
  7. 前端部署及发布服务知识点
  8. 曝光IT行业一个借钱不还玩消失的垃圾
  9. JPS Command Not Found
  10. leetcode 1818 绝对值,排序,二分法,最大值