实时保存realsense图片或视频流

Ubuntu驱动D435得到深度图 Ubuntu驱动D435得到深度图和彩色图 阅读详情
# -*- encoding: utf-8 -*-
"""
@File    : save_image.py
@Time    : 2019/10/23 14:44
@Author  : Dontla
@Email   : sxana@qq.com
@Software: PyCharm
"""
import pyrealsense2 as rs
import numpy as np
import cv2
import os
import time

# Configure depth and color streams
pipeline = rs.pipeline()
# 创建 config 对象:
config = rs.config()
# config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)

# Start streaming
pipeline.start(config)

try:
    while True:

        # Wait for a coherent pair of frames(一对连贯的帧): depth and color
        frames = pipeline.wait_for_frames()
        # depth_frame = frames.get_depth_frame()
        color_frame = frames.get_color_frame()

        if not color_frame:
            continue

        color_image = np.asanyarray(color_frame.get_data())

        # Show images
        cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)

        cv2.imshow('RealSense', color_image)

        c = cv2.waitKey(1)

        # 手动采集(空格键)
        # 敲击空格将图像保存(空格的ascii码是32)
        if c == 32:

            # 计算文件夹里jpg文件数量,以便于关闭软件后重新打开采集不会将已有图片覆盖
            count = 0
            for filename in os.listdir('./imgs/'):
                if filename.endswith('.jpg'):
                    count += 1
            # print(count)

            # 保存图像,保存到上一层的imgs文件夹内,以1、2、3、4...为文件名保存图像
            cv2.imwrite('./imgs/{}.jpg'.format(count + 1), color_image)

        # 自动采集(回车键)
        # 如果按下回车键则自动采集(回车键ascii码是13)
        if c == 13:
            # 获取时间以在循环中判断是否经过了某段时间
            time0 = time.time()
            flag = True
            while flag:
                # 之前卡死是因为进了这个循环出不去了了,没法wait_for_frames同时opencv窗口也没法waitKey刷新所以就卡死了,所以必须再把wait_for_frames和waitKey加进来

                # Wait for a coherent pair of frames(一对连贯的帧): depth and color
                frames = pipeline.wait_for_frames()
                # depth_frame = frames.get_depth_frame()
                color_frame = frames.get_color_frame()

                if not color_frame:
                    continue

                color_image = np.asanyarray(color_frame.get_data())

                # Show images
                cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)

                cv2.imshow('RealSense', color_image)

                c = cv2.waitKey(1)

                # 计算文件夹里jpg文件数量,以便于关闭软件后重新采集不会将已有图片覆盖
                count = 0
                for filename in os.listdir('./imgs/'):
                    if filename.endswith('.jpg'):
                        count += 1

                # 设置延时时间(单位:秒)
                time_delay = 1
                c = cv2.waitKey(10)
                if c == 13:
                    flag = False
                # 使用经过的时间差来对操作进行延时,这样可避免流停滞,但此方法不完全准确,特别是在我们的操作耗时较长的情况下,延时误差较大。当我们将操作的时间视为无穷小时,此方法准确
                if (time.time() - time0) > time_delay:
                    # 可以看到,实际延时微微大于我们设置的延时时间
                    print(time.time() - time0)
                    # 1.0003252029418945
                    # 1.0017242431640625
                    # 1.0030531883239746
                    # 1.004326343536377
                    # 1.0044221878051758
                    # 1.008774995803833
                    # 1.005782127380371
                    # 1.0061774253845215
                    # 1.010535717010498

                    # 保存图像,保存到上一层的imgs文件夹内,以1、2、3、4...为文件名保存图像
                    cv2.imwrite('./imgs/{}.jpg'.format(count + 1), color_image)

                    # 只让操作在某时间段内只执行一次,下次执行需在延时时间time_delay(秒)后
                    time0 += time_delay

                # 延时一下,不然保存太快翻车咋办
                # 之前卡顿的原因是用了time.sleep函数,导致wait_for_frames变慢了,不能用sleep函数
                # time.sleep(1)

                if c == 27:
                    break

        # 如果按下ESC则关闭窗口(ESC的ascii码为27),同时跳出循环
        if c == 27:
            cv2.destroyAllWindows()
            break

finally:

    # Stop streaming
    pipeline.stop()

【Intel Realsense D435】实现视频显示、录制和保存(Python) Intel Realsense D435相机的学习与使用,基于Python实现了视频录制功能,可同时录制RGB视频、灰度深度视频和伪彩色深度视频。 阅读详情

相关推荐

Window10 intel realsense D435安装并实现opencv显示realsense读取的彩色和深度数据(QT+openCV+rsD35)

(1)点击"官方指南" 来到下载页,->最新的稳定版本发布 (本人下的2.16.5,现在最新2.17.0) 不需要做开发,只要下载Intel RealSense Viewer就好,这个就是相机的可视化界面,简洁明了。对应的安装包是Intel.RealSense.Viewer.exe。 本人的毕设要用到深度图做开发,所以安装Intel.RealSense.SDK.exe,SDK...

Pabebe的博客 1万+

python opencv 从Intel Realsense D435 视频流中读取并显示帧,按下空格将图像保存到指定文件夹,按下回车自动以一定时间间隔保存图像至指定文件夹

参考文章:opencv之读入一幅图像,显示图像以及如何保存一副图像,基础操作

Dontla的博客 6624

Realsense(三)截取n帧彩色及深度图并保存

继续沿用Realsense(一)提取彩色和深度视频流并实现pxcimage到mat里的转化方法,对每一帧pxcimage数据进行转化,转化为mat之后,将该帧得到的mat类型图像写入文件夹。博主将100帧彩色图写入一个color文件夹,深度图写入depth文件夹,结果如图所示:

SCUT_Arucee的博客 7455

ROS 订阅RealsenseD435图像与opencv保存32位深度图像

一,通过ros订阅realsense图像 int main(int argc, char **argv) { ros::init(argc, argv, "image_listener"); ros::NodeHandle nh; cv::namedWindow("view"); cv::startWindowThread(); message_filters::Subscriber<sensor_msgs::Image> image_sub(nh,

sinat_34156619的博客 7211

如何使用Dify 搭建一个用自然语言查询数据库的 Agent?

这样就会发布完毕。

AI Agent 首席体验官 1699

DDR5内存Training全解析:从信号完整性到CS训练模式的实战指南

本文深入解析了DDR5内存Training的全过程,从信号完整性挑战到CS训练模式(CSTM)的实战应用。文章详细阐述了Training在DDR5高频时代的关键作用,对比了In-Band与OOB两种架构,并拆解了Intel MRC的核心训练步骤,为硬件与固件工程师提供了诊断与优化系统稳定性的实用指南。

weixin_29252171的博客 1031

Intel Realsense D435 python 从深度相机realsense生成pcl点云

引用文章:python 从深度相机realsense生成pcl点云 从深度相机realsense生成pcl点云一、通过realsense取得深度信息和彩色信息二、获取坐标和色彩信息三、通过pcl可视化点云 一、通过realsense取得深度信息和彩色信息 ubuntu下intel realsense的软件可以打开realsen的界面,里面可以得到彩色图像和深度图像,我们通过realsense的py...

Dontla的博客 1万+

NVIDIA Jetson Orin系列 - 使用SDK Manager安装JetPack全流程解析

本文详细解析了使用NVIDIA官方SDK Manager为Jetson Orin系列开发板安装JetPack系统的完整流程。从环境准备、设备进入恢复模式,到SDK Manager图形化界面的分步操作指南,提供了新手友好的全流程解析,并分享了安装后的验证方法及常见问题解决方案,帮助开发者高效搭建稳定的边缘AI开发环境。

nn3456的博客 406

python 从深度相机realsense生成pcl点云

简单说下步骤: 一、通过realsense取得深度信息和彩色信息 二、获取坐标和色彩信息 三、通过pcl可视化点云 一、通过realsense取得深度信息和彩色信息 ubuntu下intel realsense的软件可以打开realsen的界面,里面可以得到彩色图像和深度图像,我们通过realsense的python接口获取彩色信息和深度信息。 1.基础的获取彩色和深度...

足迹 1万+

静态时序分析(STA)_深入解析Data to Data Checks的零周期挑战

本文深入解析了静态时序分析(STA)中Data to Data Checks的核心概念与零周期挑战。重点探讨了当Setup要求值超过时钟周期时,工具如何调整发射沿,并导致Hold检查的发射与捕获沿“分裂”这一反直觉现象。文章通过案例详细解读了时序报告,并提供了通过调整约束或接受多周期保持两种策略来应对这一挑战,帮助工程师正确理解和处理此类复杂时序检查。

weixin_29204205的博客 351

图信号处理中的多尺度分析:图小波变换与图傅里叶变换的对比与应用

本文深入探讨了图信号处理中的多尺度分析方法,重点对比了图小波变换(GWT)与图傅里叶变换(GFT)的技术特点与应用场景。通过分析图的拓扑结构,GWT展现出强大的局部洞察力,适用于异常检测和社区发现;而GFT则擅长全局频率分析,适合趋势分析和信号去噪。文章结合实战案例,为读者提供了方法选型指南和前沿进展,帮助开发者在生物信息学、社交网络分析等领域高效应用这些技术。

weixin_30369041的博客 406

RGBD(realsense, kinect等) 相机 储存深度图(depth_map)视频流(即uint16视频)

问题:最近在做 室内场景的三维重建,需要同时储存深度图(depth_map)视频流和彩色图(color_img)的视频流,即储存一系列连续的帧.realsense提供了 .bag文件格式用于记录视频流,但该文件占用空间极大,基本大概5~6秒的视频需要1G上下的硬盘空间(因为realsense在记录.bag文件时会同时记录5个视频流:depth_map,), ............

tycoer的博客 5687

【100%通过率】2024华为OD机试真题E卷 C++ 实现【栈数据合并/空栈压数】

向一个空栈压入正整数,每当压入一个整数时,执行以下规则(设: 栈顶至栈底整数依次编号为n1、n2...nx, n1为最新压入的整数)

MISAYAONE的博客 1553

Realsense .bag 格式文件提取图像

使用Realsense d415录制了一个视频,保存的格式为.bag 在网上察查了一些方法,基本都是通过ROS库那一套东西实现.bag文件的解析。还有的文章提到了使用Matlab里面的ROS Toolbox对.bag文件进行解码: 使用Matlab提取Realsense数据的一种实现 然而我在尝试使用Matlab的时候始终不成功,一直在报错,最终只好无奈放弃。 最后经过在librealsense2...

weixin_43878709的博客 6632

LeRobot 官方论文:一个用于端到端机器人学习的开源库

本文介绍了一个名为LeRobot的开源库,旨在解决机器人学习领域的碎片化问题。该库提供了端到端的技术栈,包括统一的机器人中间件API、标准化的数据集格式(LeRobotDataset)、优化的推理栈以及多种最先进机器人学习算法的实现。LeRobot支持多种低成本开源机器人平台(如SO-10X、ALOHA-2等),通过共享中间件实现便捷的遥操作和数据收集。其数据集格式已广泛应用于社区,截至2025年9月已有16,000多个数据集公开共享。该库还支持流式处理大规模数据,降低了研究门槛。在模型方面,LeRobot

2506_90492529的博客 906

使用MCAL的Fee模块集成ETAS存储协议栈

由于ETAS Fee模块导致初始化时间较长,且集成占用的内存较大,所以最终考虑使用MCAL中的Fee模块来集成ETAS的Nvm模块,本文介绍具体的集成方法注意:本文所涉及的集成前提是原有的ETAS协议栈已正常使用使用IFX Fee需要手动配置Fee,可能有出错的风险,最好是利用脚本自动生成代码来实现。另外,需要注意IFX的Fee中block数据没有CRC校验,如果使用该Fee,建议Nvm中加CRC校验(ETAS Fee中block自带CRC,可以不需要Nvm Crc),防止数据被意外篡改导致的异常。

赞的博客 404

基于YOLO-v8与Realsense D415的图像识别与点云提取

realsense d415本身可以输出点云数据以及图像数据,基于此结合yolo系列强大的图像识别功能,尝试用YOLO算法实时检测并分割点云数据。本项目研究的目标是篮球,因此针对篮球数据实现进行了训练。关于YOLO系列的训练方法,已经有很多文章讲解了,这里就不做赘述。

m0_55903307的博客 4658

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

python RealSense相机 二次封装工具包

个人原创, 工作之初写的, 很多封装还是比较稚嫩, 一些注释后续会补上, 大部分 Realsense viewer.exe 中的功能都实现了 电脑插上realsense并安装驱动后可直接F5,按s拍照,按space录像,按esc退出,按s清空save_dir下所有图片 import cv2 import pyrealsense2 as rs import numpy as np import os import json import h5py import time class realsen...

tycoer的博客 2533

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ROS下利用realsense采集RGBD图像合成点云

摘要:在ROS kinetic下,利用realsense D435深度相机采集校准的RGBD图片,合成点云,在rviz中查看点云,最后保存成pcd文件。 一、 各种bug 代码编译成功后,打开rviz添加pointcloud2选项卡,当我订阅合成点云时,可视化失败,选项卡报错: 1)Data size (9394656 bytes) does not match width (640)...

weixin_30642305的博客 2485

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【Intel Realsense D435】16位深度图和RGB颜色图的视频显示、录制和保存(Python)

使用Intel Realsense d435深度相机,结合Python语言进行编程,实现了以16位深度图和RGB图为图像帧的视频显示、拍摄与保存

qq_41026536的博客 6666

win10利用Matlab 获取realsense d435 中的视频数据

windows下具体的安装很简单,参考: https://blog.youkuaiyun.com/bbdxf/article/details/79131116 或者直接进入SDK2.0的引导页面: https://realsense.intel.cn/sdk-2/#install 首先我尝试了利用maltab的Image Acquisition去获取摄像头的数据并保存,但失败了。 获取的视频一片蓝绿...

weixin_42459037的博客 6930

【SLAM】从RealSense D435的rosbag中批量提取关键帧:自动化图片序列生成实战

本文详细介绍了如何从RealSense D435录制的rosbag文件中自动化批量提取关键帧图片序列。通过使用ROS的image_view工具包,结合rosbag play命令,搭建了一条无需手动干预的图片提取流水线,解决了SLAM研究和机器人视觉项目中手动截图效率低、格式不统一的问题,并提供了提取深度图、编写批量处理脚本等进阶技巧。

weixin_29197699的博客 170

语义栅格地图(六) realsense实际测试

1.在ros中启动realsense 测试输出话题: roslaunch realsense2_camera rs_camera.launch 测试输出点云: roslaunch realsense2_camera rs_camera.launch filters:=pointcloud 2.启动slam roslaunch semantic_slam slam.launch 这里需要...

weixin_41680653的博客 2839

python opencv cv2.imshow() 显示图片

def imshow(winname, mat): # real signature unknown; restored from __doc__ """ imshow(winname, mat) -> None . @brief Displays an image in the specified window. . . The fun...

Dontla的博客 5440

基于realsense相机采集深度和RGB图

【代码】基于realsense相机采集深度和RGB图。

如果想成为中心,那么就到中心去吧。 2423

Foundation_pose在自己的物体上复现指南:实现任意物体6D位姿检测(利用realsense_D435i和iphone_16pro手机)

Foundation_pose复现指南:实现任意物体6D位姿检测(利用realsense和iphone 16pro手机),全网最详细教程,手把手教你制作数据集并复现,实现任意物体的位姿检测

qq_53186375的博客 1万+
上一篇: Pytorch模型部署之-------cudatoolkit介绍
下一篇: Python import 路径顺序
黑猫爱小鹿
博客等级 码龄8年 1万+粉丝 205原创
评论 12
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值