如何使用vsCode打开intel D435i深度相机

news2024/11/16 12:07:57

一、下载并安装相机SDK文件

1.SDK下载地址:

Release Intel® RealSense™ SDK 2.0 (v2.54.2) · IntelRealSense/librealsense · GitHub

2.下载后,双击即可安装


 

3.环境配置

1)window的开始菜单,搜索环境变量,选择编辑系统环境变量

2)选择高级,选择环境变量

3)在系统变量里面,单击path,添加环境变量:C:\Program Files (x86)\Intel RealSense SDK 2.0\bin\x64

 4)单击图标即可打开相机软件

5)打开软件后,通过图片操作可以打开相机

二、安装openCV环境

打开cmd命令提示符窗口,输入pip install opencv-python,即可实现openCV的自动安装。

命令行输入python回车

再输入import cv2,无报错,表明安装ok。

#导入openCV库,实现相应的图片读写
import cv2  #导入openCV库的代码
#读取多通道
color_2 = cv2.imread('2.jpg')  #读取图片(316, 474, 3)
print(color_2.shape)  #输出通道
#读取单通道
gray_img = cv2.imread('2.jpg', cv2.IMREAD_GRAYSCALE)
print(gray_img.shape)  # 输出 
#指定文件的质量
cv2.imwrite('anglababy.jpg',color_2,(cv2.IMWRITE_JPEG_QUALITY,1))#数字越小越模糊
#绘图,用这个color_2的通道绘图
cv2.imshow('my_img_name_1', color_2)
cv2.imshow('my_img_name_2', gray_img)
cv2.waitKey(0)  # 阻塞等键盘输入, 使图片展示而不被关闭
cv2.destroyAllWindows()

简单使用例程:

基础使用可参考博文:

【基础知识】4、python-opencv 超详细介绍_opencv-python-CSDN博客

三、下载pyrealsense文件,完成本地安装

(此操作是已经完成VScode,python的安装后)

下载地址:https://pypi.org/project/pyrealsense2/#files 

下载版本与python版本对应,在命令行输入python即可查看版本号

命令行输入:pip install  D:\安装文件夹\pyrealsense2-2.55.1.6486-cp311-cp311-win_amd64.whl 即可实现pyrealsense文件本地安装。

安装完这个文件后,就可以利用VScode打开相机,相关代码为:

import pyrealsense2 as rs       
import numpy as np              
import cv2                          

if __name__ == "__main__":
    pipeline = rs.pipeline() #创建一个管道对象,这是进行所有后续RealSense操作的基础
    config = rs.config() #创建一个配置对象
    config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)      
    #初始化RealSenseSense摄像头,并配置为捕获640x480的深度和颜色图像;指定的深度数据格式,代表16位无符号整数;每秒30帧
    config.enable_stream(rs.stream.color,640, 480, rs.format.bgr8, 30)
    #启用彩色流,rs.format.bgr8表示每个像素由3个字节(即24位)表示,分别对应蓝色、绿色和红色通道。
    pipeline.start(config)
    #接受config的参数,启用管道
    try:
        while True:    #使用while循环不断捕获图像数据,直到用户关闭窗口。
            frames = pipeline.wait_for_frames()            
            # 使用wait_for_frames()函数等待捕获到一组深度和颜色图像帧的函数。返回的结果为一个包含深度和颜色帧的对象用于后续处理
            depth_frame = frames.get_depth_frame()          #获取深度帧
            color_frame = frames.get_color_frame()          #获取颜色帧
            if not depth_frame or not color_frame:          #如果捕获到的帧中没有深度或颜色图像,则跳过当前循环,等待下一帧。
                continue

            
            depth_image = np.asanyarray(depth_frame.get_data())     # 将深度帧转换为NumPy数组
            color_image = np.asanyarray(color_frame.get_data())     # 将颜色帧转换为NumPy数组
      
            # cv2.applyColorMap()将深度图像转化为彩色图像,以便更好的可视化分析
            # cv2.convertScaleAbs(depth_image, alpha=0.03)将每个像素值乘以缩放因子0.03,像素值缩放后并返回一个8位无符号整数类型的图像
            # cv2.COLORMAP_JET是使用JET颜色映射表,表示将灰度映射到JET表上,生成彩色图
            depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.07), cv2.COLORMAP_JET)      
            # 将图像color_impage和depth_colormap水平堆叠
            images = np.hstack((color_image, depth_colormap))
            # 设置窗口,窗口大小根据图像自动调整
            cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE) 
            # 将图像images显示在窗口中         
            cv2.imshow('RealSense', images)
            #使用cv2.waitKey()函数等待用户按下键盘上的某个键,并返回按键的ASCII码。
            key = cv2.waitKey(1)                    
            # key&0xFF表示只取低8位,再判断是否位‘q’或者esc
            if key & 0xFF == ord('q') or key == 27:           
                cv2.destroyAllWindows() # 关闭窗口
                break
    finally:
        # 停止管道流,释放资源
        pipeline.stop()

b站相关配置视频:

​​​​​​​Windows下的Inter Realsens D435/D435i环境配置,深度相机用Python调用_哔哩哔哩_bilibili

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

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

相关文章

【成品设计】基于STM32的智能防盗门控制系统的设计

《基于STM32的智能防盗门控制系统的设计》 所需器件: STM32最小系统板。角度传感器:做为地震检测模块。温度传感器:作为火灾检测模块。指纹传感器:作为指纹识别采集模块。舵机模块:0度代表关门。90度代表开门。报警模…

【IC验证】UVM实验lab01

1. 工厂的注册、创建和覆盖 1.1 注册 object组件使用宏uvm_obeject_ultis(string name)来创建,component组件使用uvm_object_ultis(string name, parent)来创建 class trans extends uvm_object;/*定义*/bit[31:0] data;uvm_object_ultis(trans)/*注册*/function …

HTML如何让文字底部线条不紧贴在文字下面(既在内容下方又超出内容区域)

hello,大家好,星途星途今天给大家带来的内容是如何让文字底部线条不紧贴在文字下面。 话不多说,先上效果图 简单来说就是padding和margin的区别。 在网页设计中,有时我们想要给某个元素添加一个装饰性的线条,比如底部…

【面试题-004】ArrayList 和 LinkList区别

文章目录 List和setArrayList扩容机制HashMap扩容机制HashMap初始容量(Initial Capacity)和负载因子(Load Factor)HashMap与HashTable区别 ?HashMap底层数据结构?ConcurrentHashMap底层数据结构&#xff1f…

HTML静态网页成品作业(HTML+CSS)—— 美食湘菜介绍网页(5个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有5个页面。 二、作品演示 三、代…

AI 正在攻克难题——赋予计算机嗅觉

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

NLP(1)-TF-IDF算法介绍

一、TF-IDF算法介绍 TF-IDF(term frequency–inverse document frequency,词频-逆向文件频率)是一种用于信息检索(information retrieval)与文本挖掘(text mining)的常用加权技术。 TF-IDF是一…

Java:流程控制语句

文章目录 一、顺序结构二、分支结构2.1 if2.2 switch 三、循环结构3.1 for3.2 while3.3 do...while 四、流程控制4.1 break4.2 continue 五、结语 一、顺序结构 顺序结构语句是Java程序默认的执行流程,按照代码的先后顺序,从上到下依次执行。 二、分支结…

理解NSCopying协议

NSCopying 协议用于让对象能够被复制。实现这个协议的类需要定义如何创建该对象的副本。这个副本是独立的,不会与原对象共享内存地址。 为什么需要 NSCopying 协议? 当你需要复制对象时,例如将对象存储到一个集合(如数组、字典&…

锐捷校园网自助服务-字符过滤存在缺陷

锐捷校园网自助服务-字符过滤存在缺陷 漏洞介绍 令人感到十分遗憾的是,锐捷网络安全应急响应中心对漏洞上报似乎缺少了一些奖励,令人对官方上报漏洞失去了些许兴趣​。 该缺陷仅仅打破了安全检查防护,并没有造成实质性危害,至于…

ChatGPT成知名度最高生成式AI产品,使用频率却不高

5月29日,牛津大学、路透社新闻研究所联合发布了一份生成式AI(AIGC)调查报告。 在今年3月28日—4月30日对美国、英国、法国、日本、丹麦和阿根廷的大约12,217人进行了调查,深度调研他们对生成式AI产品的应用情况。 结果显示&…

Ubuntu22.04下源码编译安装pythonocc-7.8

Ubuntu22.04下源码编译安装pythonocc-7.8 本文介绍Ubuntu下手动编译安装pythonocc,及安装过程遇到的各种坑 基本依赖安装 sudo apt-get update sudo apt-get install -y wget libglu1-mesa-dev libgl1-mesa-dev libxmu-dev libxi-dev build-essential cmake libf…

Angular17(1):使用Angular CLI创建空项目

要创建一个空的 Angular 项目,可以使用 Angular CLI(命令行界面)。以下是使用 Angular CLI 创建一个新项目的步骤: 1、安装 Angular CLI: 打开你的命令行界面(在 Windows 上是 CMD、PowerShell 或 Git Bas…

浮点数精度问题(详细)

文章目录 1.什么是浮点数2. 二进制与十进制的转换2.1 二进制与十进制的相互转换(方法介绍,思维理解)2.2 在线转换工具 3.浮点数的 IEEE754 表示4.C# 浮点型float、double 、decimal 比较5.解决运算精度问题5.1 浮点数预算精度问题5.2 解决方案5.2.1 放大倍数计算5.2…

基于PHP+MySQL开发的一套游泳馆预约报名小程序开发源码模板

最近新开发了一套游泳馆线上预约报名小程序,其主要功能有预约功能,报名功能,支付功能,个人中心,订单管理,商品管理等等。 游泳馆预约报名小程序系统-运行环境 开发语言:PHP 数据库:M…

升级SVN服务器web管理工具EasyPHP17.1

1、卸载EasyPHP12.1,删除C盘安装路径下C:\Program Files (x86)\EasyPHP12**文件 2、安装EasyPHP-Devserver-17.0-setup,链接见下方官网地址 PHP DEVSERVER | LOCAL PHP DEVELOPMENT ENVIRONMENTA complete and ready-to-use PHP development environmen…

MySQL 自定义函数(实验报告)

一、实验名称: 自定义函数 二、实验日期: 2024年 6 月 1 日 三、实验目的: 掌握MySQL自定义函数的创建及调用; 四、实验用的仪器和材料: 硬件:PC电脑一台; 配置:内存&#…

LabVIEW实现汽车逆变器功能测试系统

​介绍了如何利用LabVIEW开发汽车逆变器(包括功率板和控制板)的自动测试设备(ATE),实现对额定800V电压、300A电流的逆变器进行功能测试。系统通过CAN2.0通讯协议,实现电机控制、温度传感器监测、电压校验和…

docker一键部署EFK系统(elasticsearch filebeat kibana metricbeat es-head)

EFK日志系统搭建 EFK日志系统介绍功能需求搭建elasticsearch集群规划前提部署核对证书及权限 EFK日志系统介绍 Elasticsearch 是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大量日志数据,也可用于…

7、css3实现边框不停地跑动效果

效果例图&#xff1a; 1、上html代码&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><meta …