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

Posted &奥克兰老爹ζ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用Matlab对双目摄像头进行标定相关的知识,希望对你有一定的参考价值。

一、环境准备

Python=3.6

Matlab=2021b

一张棋盘图(A3、A4打印均可)如下图所示。

二、利用双目摄像头进行拍摄 

注意应当拍摄40张左右照片(后期需要删除误差较大的图片),棋盘格可以左右旋转多次拍照。

如下图所示:

 利用双目摄像头拍照后,需对照片进行左右分割,分割代码如下:

import numpy as np
import cv2

for i in range(0, 23):
    # imgT = cv2.imdecode(np.fromfile('./images/%d.bmp'  %i ,dtype=np.uint8), -1)
    imgT = cv2.imdecode(np.fromfile('E:\\\\zhaopian\\\\%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("E:\\\\zhaopian\\\\you%d.bmp" % i, imgT[0:720, 0:1280])  
    cv2.imwrite("E:\\\\zhaopian\\\\zuo%d.bmp" % i, imgT[0:720, 1280:2560])
    print("Resize images%d Fnished!" % i)

print("已经全部分割")

注意代码中拍摄的图片保存的格式应该为bmp,而不是jpg。代码中图片保存路径均可根据自己实际需要进行修改。

三、利用Matlab进行双目参数标定

打开Matlab后,点app,找到Camera Calibrator,如图所示。

打开后如图所示。

 接下来导入图片。

选择图片保存的文件夹。

 

接下来便进入下面这个页面。

 

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

接下来便可以点击Calibrate开始进行标定了(我这里只取部分图片作为示例)。

 

 我们需要删除这些误差较大的数据,如下图所示。

最后点击右上方的“√” 即可以回到Matlab主页面查看自己双目摄像头的各个参数了。

 

 

 

 

 

以上是关于利用Matlab对双目摄像头进行标定的主要内容,如果未能解决你的问题,请参考以下文章

三维视觉 | 02 双目标定过程参数说明

三维视觉 | 02 双目标定过程参数说明

三维视觉 | 02 双目标定过程参数说明

OpenCV C++双目摄像头实现双目测距

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

OpenCV C++双目三维重建:双目摄像头实现双目测距