双目摄像头Matlab参数定标

这篇具有很好参考价值的文章主要介绍了双目摄像头Matlab参数定标。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前期准备

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

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

1、注意事项

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

如图所示:
双目摄像头Matlab参数定标
双目摄像头Matlab参数定标

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。如下图所示:双目摄像头Matlab参数定标打开后如图所示:双目摄像头Matlab参数定标
2、导入双目的左右照片到Stereo Camera CalibratorAPP。具体操作,如下图所示:
双目摄像头Matlab参数定标
3、点击确认后就可以分析导入的左右的照片了。这个过程会自动剔除掉不合格(误差过大)的左右照片。
双目摄像头Matlab参数定标
4、导入照片后就可以进行双目定标了。
导入左右照片后,如图所示:
双目摄像头Matlab参数定标
5、设置双目相机的定标参数,如图所示。
双目摄像头Matlab参数定标

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

四、双目参数提取

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

>> stereoParams.CameraParameters1.IntrinsicMatrix'#左相机参数

ans =

  831.0889   -4.0855  659.4243
         0  831.8663  487.3259
         0         0    1.0000

>> stereoParams.CameraParameters2.IntrinsicMatrix'#右相机参数

ans =

  831.1982   -3.5773  632.5308
         0  832.1221  479.3084
         0         0    1.0000

Matlab如图所示:
双目摄像头Matlab参数定标
2、获取左右相机畸变系数。

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

 # 左右相机畸变系数:[k1, k2, p1, p2, k3]

>> stereoParams.CameraParameters1.RadialDistortion

ans =

   -0.0806    0.3806   -0.5229 #k1  k2  k3

>> stereoParams.CameraParameters1.TangentialDistortion

ans =

   -0.0033    0.0005    #p1     p2

Matlab如图所示:
双目摄像头Matlab参数定标
3、获取双目的旋转矩阵和平移矩阵,注意旋转矩阵的转置。

 # 旋转矩阵
>> stereoParams.RotationOfCamera2'

ans =

    1.0000    0.0017   -0.0093
   -0.0018    1.0000   -0.0019
    0.0093    0.0019    1.0000
    
 # 平移矩阵
>> stereoParams.TranslationOfCamera2

ans =

 -119.9578    0.1121   -0.2134

Matlab如图所示:
双目摄像头Matlab参数定标

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

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

至此,双目摄像头的参数就定标完了。文章来源地址https://www.toymoban.com/news/detail-404961.html

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

到了这里,关于双目摄像头Matlab参数定标的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 使用python-opencv对双目摄像头进行立体视觉图像矫正,去畸变

    使用python-opencv对双目摄像头进行立体视觉图像矫正,去畸变

            1、一张棋盘图         可以直接从opencv官方github下载,这是一个拥有10*7个格子的棋盘,共有 9*6个角点,每个格子24mm ,本文所使用的就是这一个棋盘。你需要将它打印在A4纸上用于后续使用。(也可以根据官方教程自行设置棋盘大小OpenCV: Create calibration pattern)

    2024年02月10日
    浏览(16)
  • 基于Raspberry Pi和双目摄像头的无人机目标识别、跟踪与实时测距系统开发

    硬件选择: Raspberry Pi 4: 它是一款功能强大的微型计算机,可以轻松地与各种传感器和摄像头配合使用。 双目摄像头: 例如选择Raspberry Pi相容的Arducam双目摄像头,双目摄像头可以捕捉到两个略有差异的图像,这对于空间测距非常重要。 算法: 使用**立体视觉(Stereo Vision)**算法

    2024年02月12日
    浏览(9)
  • 基于HDMI接口和DDR存储器的VmodCAM双目摄像头驱动verilog程序开发

    基于HDMI接口和DDR存储器的VmodCAM双目摄像头驱动verilog程序开发

    目录 一、理论基础 二、核心程序 三、仿真结论         VmodCAM板提供数字成像适用于任何Digilent FPGA系统的功能带有VHDCI连接器的板。它有两个特点Aptina MT9D112 200万像素CMOS数字图像传感器。传感器可以提供框架速率从15 FPS以上,具体取决于决议。其片上系统设计集成了图像流

    2024年02月11日
    浏览(12)
  • 智能车摄像头三轮PID参数调节

    智能车摄像头三轮PID参数调节

    代码已上传CSDN,包含摄像头和PID控制,设置了VIP可取这个小门槛,有兴趣可以点击下方链接自取哈。 https://download.csdn.net/download/weixin_53129688/87714428 https://download.csdn.net/download/weixin_53129688/87714428  

    2024年02月11日
    浏览(6)
  • 使用MATLAB控制电脑摄像头

    使用MATLAB控制电脑摄像头 随着人工智能和计算机视觉的快速发展,越来越多的应用需要在计算机上使用摄像头。然而,如何控制电脑摄像头成为了很多使用者面临的难题。本篇文章将介绍如何使用MATLAB控制电脑摄像头。 步骤1:安装MATLAB 首先,我们需要安装MATLAB软件。在安装

    2024年02月08日
    浏览(7)
  • opencv上设置摄像头曝光参数的经验

    opencv上设置摄像头曝光参数的经验

    实际应用中我们需要调整摄像头的参数比如曝光,由于opencv的后端是一般编译是支撑多种插件,详细信息请参考OpenCV: Video I/O with OpenCV Overview,这里引用里面的图:   对于VideoCaputure,后端有ffmpge,V4L,DShow等,opencv并没有完全用统一参数来屏蔽后端的差异性,也就是部分参数

    2024年02月05日
    浏览(10)
  • ffmpeg 拉取多路摄像头并按照时间参数截图

    1、拉取2路摄像头并存成图片: ffmpeg -r 1 -ss 00:00:05 -t 00:00:06   -i rtsp://admin:hisense2021@192.168.1.64:554/live0.264  -i rtsp://192.168.31.23/live_stream -map 0:v    image20.jpg -map 1:v   image21.jpg ffmpeg -r 1 -ss 00:00:05 -t 00:00:06   -i rtsp://admin:hisense2021@192.168.1.64:554/live0.264  -i rtsp://192.168.31.23/live_stream -m

    2024年02月03日
    浏览(7)
  • 手机摄像头+Matlab完成图像的自动识别

    手机摄像头+Matlab完成图像的自动识别

    Matlab中有现成的图像识别的例子。如果已经有摄像头了,那么就用摄像头进行试验。但是本老觉得笔记本摄像头很不方便,又不舍得花钱去买新的摄像头(主要是穷),既然手机有摄像头,那能不能用手机的摄像头呢?那样就很方便了。 Matlab没啥干不了的,有两种方法,一种

    2024年02月12日
    浏览(12)
  • 利用OBS和手机摄像头录课(录屏/录像)时的方法与参数设置

    利用OBS和手机摄像头录课(录屏/录像)时的方法与参数设置

    目录 1. OBS下载地址 2. OBS录屏设置 2.1 使用向导设置做全局设置 2.2 详细设置 2.2.1 视频设置 2.2.2 音频设置 2.2.3 输出设置 2.2.4 快捷键设置 3. 麦克风降噪设置 4. 使用OBS录屏功能 5. 用手机作为网络摄像头采集图像 5.1 配置手机摄像头 5.2 为OBS中设置手机IP摄像头 6. 本文的OBS参数设

    2024年02月11日
    浏览(7)
  • 【正点原子FPGA连载】 第三十章双目OV5640摄像头LCD显示实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

    【正点原子FPGA连载】 第三十章双目OV5640摄像头LCD显示实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: http://www.openedv.com/thread-340252-1-1.html 双目摄像头是在一个模组上集成了两个摄像头,实现了双通道的图像采集。双目摄像头一般应用于安防监控、

    2024年02月13日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包