ZED双目相机环境配置

官方资料:stereolabs/zed-python-api: Python API for the ZED SDK (github.com)

1,配置ZED相机环境

1.安装CUDA

查看电脑是否安装CUDA,安装过程可参考以下博文:

如何选择匹配的CUDA版本:https://blog.csdn.net/iamqianrenzhan/article/details/89343601

cuda安装教程+cudnn安装教程:https://blog.csdn.net/sinat_23619409/article/details/84202651

win10下CUDA和CUDNN的安装:https://blog.csdn.net/u010618587/article/details/82940528

2.安装ZED-SDK

下载与电脑操作系统以及CUDA版本对应的SDK,官方下载链接如下:

ZED SDK 3.8 - Download | Stereolabs

选择 <= 自己电脑CUDA版本的SDK

安装SDK成功后,我们进入ZED SDK文件夹中的tools子文件夹,运行ZED Explorer.exe 以及 ZED Depth Viewer.exe,查看ZED相机是否能正常启用工作。

报错:缺少dll,去bin文件夹下,找到dll,复制到tools下

3.安装ZED-Python-API(pyzed)

默认电脑已配置好Python-OpenCV环境,

pip install cythonpip install numpypip install opencv-python pip install pyopengl

ZED SDK 安装文件夹中有一个 Python 脚本(get_python_api.py),可以自动检测操作系统、CUDA 和 Python 版本并下载相应的预编译 Python API 包(pyzed)。

首先在ZED SDK文件夹中,找到get_python_api.py脚本,并获取其路径信息,最后我是在Anaconda Prompt运行该脚本。在下图中的运行结果可以看到检测出操作系统、CUDA版本等信息,并自动下载与其对应的ZED-Python-API 包。

如果遇到ZED-Python-API 包下载不下来,或者报错的情况。我们可以复制运行结果中的下载链接(如:上图中对应的API下载链接是 https://download.stereolabs.com/zedsdk/4.1/whl/win_amd64/pyzed-4.1-cp38-cp38-win_amd64.whl),在浏览器上直接访问,即可下载。

下载得到ZED-Python-API 包,也就是pyzed的.whl文件,将pyzed.whl文件放入ZED SDK 文件夹。

然后在Anaconda Prompt 输入 pip install 命令,对pyzed.whl文件进行安装,这样我们就完成了对ZED相机的Win11-Python开发环境配置。

进入bin文件夹下,将所有dll文件复制到E:\Anaconda3\envs\zed\Lib\site-packages\pyzed下

4、Hello ZED(Python)

配置好 ZED 的 Python 开发环境后,我们可以进行一个简单的教程案例来实现调用ZED的Python API。

在本例中,我们简单地检索ZED相机的序列号:打开 ZED相机,然后打印其序列号,然后关闭相机。

import pyzed.sl as sldef main():# Create a Camera objectzed = sl.Camera()# Create a InitParameters object and set configuration parametersinit_params = sl.InitParameters()init_params.sdk_verbose = False# Open the cameraerr = zed.open(init_params)if err != sl.ERROR_CODE.SUCCESS:exit(1)# Get camera information (ZED serial number)zed_serial = zed.get_camera_information().serial_numberprint("Hello! This is my serial number: {0}".format(zed_serial))# Close the camerazed.close()if __name__ == "__main__":main()

5,image_capture.py

import pyzed.sl as sl
import cv2
import os
import numpy as np
# 2. 捕获图像
def image_capture():zed = sl.Camera()# 设置相机的分辨率1080和采集帧率30fpsinit_params = sl.InitParameters()init_params.camera_resolution = sl.RESOLUTION.HD1080  # Use HD1080 video modeinit_params.camera_fps = 30  # fps可选:15、30、60、100err = zed.open(init_params)  # 根据自定义参数打开相机if err != sl.ERROR_CODE.SUCCESS:exit(1)runtime_parameters = sl.RuntimeParameters()  # 设置相机获取参数runtime_parameters.sensing_mode = sl.SENSING_MODE.STANDARDi = 0# 创建sl.Mat对象来存储图像(容器),Mat类可以处理1到4个通道的多种矩阵格式(定义储存图象的类型)image = sl.Mat()  # 图像disparity = sl.Mat()  # 视差值dep = sl.Mat()  # 深度图depth = sl.Mat()  # 深度值point_cloud = sl.Mat()  # 点云数据# 获取分辨率resolution = zed.get_camera_information().camera_resolutionw, h = resolution.width , resolution.heightx,y = int(w/2),int(h/2)  # 中心点while True:# 获取最新的图像,修正它们,并基于提供的RuntimeParameters(深度,点云,跟踪等)计算测量值。if zed.grab(runtime_parameters) == sl.ERROR_CODE.SUCCESS:  # 相机成功获取图象# 获取图像timestamp = zed.get_timestamp(sl.TIME_REFERENCE.CURRENT)  # 获取图像被捕获时的时间点zed.retrieve_image(image, sl.VIEW.LEFT)  # image:容器,sl.VIEW.LEFT:内容img = image.get_data()  # 转换成图像数组,便于后续的显示或者储存# 获取视差值zed.retrieve_measure(disparity,sl.MEASURE.DISPARITY,sl.MEM.CPU)dis_map = disparity.get_data()# 获取深度zed.retrieve_measure(depth,sl.MEASURE.DEPTH,sl.MEM.CPU)  # 深度值zed.retrieve_image(dep,sl.VIEW.DEPTH)  # 深度图depth_map = depth.get_data()dep_map = dep.get_data()# 获取点云zed.retrieve_measure(point_cloud,sl.MEASURE.XYZBGRA,sl.MEM.CPU)point_map = point_cloud.get_data()print('时间点',timestamp.get_seconds(),'中心点视差值',dis_map[x,y],'中心点深度值',depth_map[x,y],'中心点云数据',point_map[x,y])# 利用cv2.imshow显示视图,并对想要的视图进行保存view = np.concatenate((cv2.resize(img,(640,360)),cv2.resize(dep_map,(640,360))),axis=1)cv2.imshow("View", view)key = cv2.waitKey(1)if key & 0xFF == 27:  # esc退出breakif key & 0xFF == ord('s'):  # 图像保存savePath = os.path.join("./images", "V{:0>3d}.png".format(i))  # 注意根目录是否存在"./images"文件夹cv2.imwrite(savePath, view)i = i + 1zed.close()image_capture()

代码中涉及的可选参数(点击关键字可进入官方文档链接)

分辨率选择

可捕获的视图

计算获得的视图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/853474.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MoCo v3(ICCV 2021)

paper&#xff1a;An Empirical Study of Training Self-Supervised Vision Transformers official implementation&#xff1a;https://github.com/facebookresearch/moco-v3 出发点 本文并没有提出一种新的方法&#xff0c;而是对计算机视觉领域最近进展中的一个重要且基础…

沃尔玛自养号测评:优势与技术要求解析

沃尔玛自养号测评是一种卖家在沃尔玛平台上提升店铺权重和排名的营销手段。传统运营策略的局限性日益显现&#xff0c;如营销手段单一、难以应对市场竞争等。因此&#xff0c;许多卖家为了提升店铺权重和排名&#xff0c;选择了自养号测评这一技术手段。 以下是对沃尔玛自养号…

关于BERT和embedding

embedding到一个低维向量&#xff0c;但是需要回到onehot高维表示&#xff0c;所以大部分填词游戏最后都需要加上一个MLP接头。 word2vec如此简单的结构&#xff0c;学习到的是embedding 基于计数的统计方法和word2vec融合就形成了glove词嵌入模型 总结&#xff1a;通过各种…

消费者消费数据时报错:INVALID_REPLICATION_FACTOR

今天部署了kafka集群&#xff0c;三台服务器&#xff0c;启动后&#xff0c;生产者发送数据&#xff0c;消费者接收数据的时候报错&#xff0c;INVALID_REPLICATION_FACTOR。 查了很多资料&#xff0c;说是要改kafka下config目录的server.properties,可能是副本数太小&#xff…

【计算机视觉】人脸算法之图像处理基础知识(四)

图像的几何变换 图像的几何变换是指在不改变图像内容的前提下对图像的像素进行空间几何变换。主要包括图像的平移变换、镜像变换、缩放和旋转等。 1.插值算法 插值通常用来放缩图像大小&#xff0c;在图像处理中常见的插值算法有最邻近插值法、双线性插值法、二次立方、三次…

sap怎么批量给信息记录打上删除标识

1.MEMASSIN-----事务代码 2.选择完成字段 3.根据条件查询需要冻结的信息记录 4.输入查询条件 5.全部勾选完成标识&#xff0c;点击保存&#xff0c;即可冻结完成

盘点国内外免费AI视频工具,助你先人一步拥抱AI

哈喽&#xff0c;各位小伙伴们好&#xff0c;我是给大家带来各类黑科技与前沿资讯的小武。 6月13日&#xff0c;Luma AI 在 X 平台&#xff08;原 Twitter&#xff09;宣布其视频生成模型 Dream Machine 开放测试&#xff0c;并提供免费试用&#xff0c;这在海外 AI 圈掀起了一…

配置中心理论学习

配置中心是一种用于集中管理应用程序配置信息的系统或服务。在微服务架构中&#xff0c;由于服务数量众多且可能分布在不同的环境中&#xff0c;配置中心的作用尤为突出。它允许开发者将配置信息从应用程序代码中分离出来&#xff0c;集中存储和管理&#xff0c;从而提高配置的…

买什么样的护眼大路灯比较好?五款专业级别的护眼灯推荐

在这个生活节奏的加快和科技的进步的时代&#xff0c;许多家长越来越关注生活质量以及身心健康问题。其中孩子的眼睛视力健康也逐渐引起了家长们的注意。 现在的孩子从早上睁开眼就开始学习&#xff0c;有时候还需要使用到电子产品辅助学习&#xff0c;晚上的写作业的情况更是…

【perl】基本语法 /备忘录/

分享 perl 语言学习资源 Perl 教程|极客教程 (geek-docs.com) Perl [zh] (runebook.dev) Perl 运算符 | 菜鸟教程 (runoob.com) Perl Documentation - Perldoc Browser Search the CPAN - metacpan.org 当然还有一些经典书籍&#xff0c;不再列举。 1、数字 1.1、数字表…

判断QT程序是否重复运行

打开exe&#xff0c;再次打开进行提示。 main.cpp添加&#xff1a; #include "QtFilePreview.h" #include <QtWidgets/QApplication> #include <windows.h> #include <qmessagebox.h> #pragma execution_character_set("utf-8")bool Ch…

免费个人站 独立站 wordpress 自建网站

制作免费网站 | 免费网站构建器 | WordPress.com https://bioinformatics7.wordpress.com WordPress.com

【总线】设计fpga系统时,为什么要使用总线?

目录 为什么用总线 为什么选择AMBA 总结 系列文章 【总线】AMBA总线架构的发展历程-CSDN博客 【总线】设计fpga系统时&#xff0c;为什么要使用总线&#xff1f;-CSDN博客 【总线】AMBA总线家族的明星成员&#xff1a;AXI协议简介-CSDN博客 为什么用总线 在FPGA系统设计…

【Python安装教程】2024年最新版Python环境搭建及模块安装,保姆教程,手把手操作,不信你还不会!

前言 Python 可应用于多个平台&#xff0c;如 Windows 、 Linux 和 MacOS 。 如何检测电脑是否安装了Python&#xff1f; 按键盘winR键&#xff0c;打开运行框。输入CMD&#xff0c;回车确定。输入where Python后回车&#xff0c;如有安装则会显示Python的安装位置。如未安装…

原码、反码和补码

原码 原码是数字的二进制表示方式&#xff0c;由符号位和绝对值&#xff08;数值位&#xff09;构成。原码的第一位代表符号位&#xff08;0 代表正数&#xff0c;1 代表负数&#xff09;&#xff1b;第二位开始就是数字的绝对值。 反码 反码的表示方法区分正负数。 正数时…

欧洲杯德语词汇与表达,柯桥零基础德语培训

欧洲杯 - die Europameisterschaft 足球 - der Fuball 比赛 - das Spiel / die Partie 球员 - der Spieler 教练 - der Trainer 裁判 - der Schiedsrichter 球迷 - die Fans 进球 - das Tor 守门员 - der Torwart / der Torhter 前锋 - der Strmer 中场 - der Mittelf…

C语言经典指针运算笔试题图文解析

指针运算常常出现在面试题中&#xff0c;画图解决是最好的办法。 题目1&#xff1a; #include <stdio.h> int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));return 0; } //程序的结果是什么&…

安装包的方式安装哪吒agent被控端(黑群晖也一样)

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。 前言 前几天&#xff0c;收了台服务器&#xff0c;16核16G的&#xff0c;价格也不贵&#xff0c;之前我记得发过文章推荐过&#xff0c;这几天搞了搞&#xff0c;性能还不错&#xff0c;…

javaWeb项目-ssm+jsp学生请假系统功能介绍

本项目源码:java-ssm-jsp学生请假系统源码说明文档资料资源-CSDN文库 项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;springboot、SSM、vue、MYSQL…

文章MSM_metagenomics(一):介绍

介绍 欢迎大家关注全网生信学习者系列&#xff1a; WX公zhong号&#xff1a;生信学习者Xiao hong书&#xff1a;生信学习者知hu&#xff1a;生信学习者CDSN&#xff1a;生信学习者2 用于复现Huang et al. [huang2024establishment]研究分析的计算工作流程&#xff0c;所有复…