利用ZED_SDK结合OpenCV显示ZED2双目相机图像

在做有的项目时,需要通过简单的代码利用ZED_SDK结合OpenCV显示ZED2双目相机图像

官方给了相关代码示例:

但是太多、太复杂了,并且难找,有时候我们并不需要那些复杂的功能,或者我们需要简单的打开相机的代码,这样才能更简便的去和我们别的功能的代码相结合。

下面是利用ZED_SDK结合OpenCV显示ZED2双目相机图像的简单代码示例:

import pyzed.sl as sl
import cv2
import numpy as np

def main():
    # 初始化 ZED 相机
    zed = sl.Camera()

    # 设置相机初始化参数
    init_params = sl.InitParameters()
    init_params.camera_resolution = sl.RESOLUTION.HD720
    init_params.depth_mode = sl.DEPTH_MODE.NONE

    # 打开相机
    err = zed.open(init_params)
    if err != sl.ERROR_CODE.SUCCESS:
        exit(1)

    # 创建 Mat 对象用于存储左目和右目图像
    image_left = sl.Mat()
    image_right = sl.Mat()

    # 循环获取和显示图像
    key = ''
    while key != 113:  # 按 'q' 键退出
        if zed.grab() == sl.ERROR_CODE.SUCCESS:
            # 获取左目和右目图像
            zed.retrieve_image(image_left, sl.VIEW.LEFT)
            zed.retrieve_image(image_right, sl.VIEW.RIGHT)

            # 将图像转换为 OpenCV 格式以显示
            image_left_ocv = image_left.get_data()
            image_right_ocv = image_right.get_data()

            # 将左右图像并排合并
            images_combined = np.hstack((image_left_ocv, image_right_ocv))

            # 使用 OpenCV 显示图像
            cv2.imshow("ZED Stereo", images_combined)

            # 等待按键事件
            key = cv2.waitKey(5)

    # 关闭相机
    zed.close()

if __name__ == "__main__":
    main()

我安装的ZED_SDK版本的4.0的。

如果只想打开左相机,代码示例如下:

import pyzed.sl as sl
import cv2

def main():
    # 初始化 ZED 相机
    zed = sl.Camera()

    # 设置相机初始化参数
    init_params = sl.InitParameters()
    init_params.camera_resolution = sl.RESOLUTION.HD720  # 设置分辨率为 HD720
    init_params.depth_mode = sl.DEPTH_MODE.NONE  # 不需要深度信息

    # 打开相机
    err = zed.open(init_params)
    if err != sl.ERROR_CODE.SUCCESS:
        exit(1)

    # 创建一个 Mat 对象用于存储左目图像
    image_left = sl.Mat()

    # 循环获取和显示图像
    key = ''
    while key != 113:  # 按 'q' 键退出
        if zed.grab() == sl.ERROR_CODE.SUCCESS:
            # 获取左目图像
            zed.retrieve_image(image_left, sl.VIEW.LEFT)

            # 将图像转换为 OpenCV 格式以显示
            image_left_ocv = image_left.get_data()

            # 使用 OpenCV 显示图像
            cv2.imshow("ZED Left Eye", image_left_ocv)

            # 等待按键事件
            key = cv2.waitKey(5)

    # 关闭相机
    zed.close()

if __name__ == "__main__":
    main()

如果只想打开右相机,代码示例如下:
 

import pyzed.sl as sl
import cv2

def main():
    # 初始化 ZED 相机
    zed = sl.Camera()

    # 设置相机初始化参数
    init_params = sl.InitParameters()
    init_params.camera_resolution = sl.RESOLUTION.HD720
    init_params.depth_mode = sl.DEPTH_MODE.NONE

    # 打开相机
    err = zed.open(init_params)
    if err != sl.ERROR_CODE.SUCCESS:
        exit(1)

    # 创建一个 Mat 对象用于存储右目图像
    image_right = sl.Mat()

    # 循环获取和显示图像
    key = ''
    while key != 113:  # 按 'q' 键退出
        if zed.grab() == sl.ERROR_CODE.SUCCESS:
            # 获取右目图像
            zed.retrieve_image(image_right, sl.VIEW.RIGHT)

            # 将图像转换为 OpenCV 格式以显示
            image_right_ocv = image_right.get_data()

            # 使用 OpenCV 显示图像
            cv2.imshow("ZED Right Eye", image_right_ocv)

            # 等待按键事件
            key = cv2.waitKey(5)

    # 关闭相机
    zed.close()

if __name__ == "__main__":
    main()

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Run-away

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值