# -*- 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()
相关推荐
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...
python opencv 从Intel Realsense D435 视频流中读取并显示帧,按下空格将图像保存到指定文件夹,按下回车自动以一定时间间隔保存图像至指定文件夹
参考文章:opencv之读入一幅图像,显示图像以及如何保存一副图像,基础操作
Realsense(三)截取n帧彩色及深度图并保存
继续沿用Realsense(一)提取彩色和深度视频流并实现pxcimage到mat里的转化方法,对每一帧pxcimage数据进行转化,转化为mat之后,将该帧得到的mat类型图像写入文件夹。博主将100帧彩色图写入一个color文件夹,深度图写入depth文件夹,结果如图所示:
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,
如何使用Dify 搭建一个用自然语言查询数据库的 Agent?
这样就会发布完毕。
DDR5内存Training全解析:从信号完整性到CS训练模式的实战指南
本文深入解析了DDR5内存Training的全过程,从信号完整性挑战到CS训练模式(CSTM)的实战应用。文章详细阐述了Training在DDR5高频时代的关键作用,对比了In-Band与OOB两种架构,并拆解了Intel MRC的核心训练步骤,为硬件与固件工程师提供了诊断与优化系统稳定性的实用指南。
Intel Realsense D435 python 从深度相机realsense生成pcl点云
引用文章:python 从深度相机realsense生成pcl点云 从深度相机realsense生成pcl点云一、通过realsense取得深度信息和彩色信息二、获取坐标和色彩信息三、通过pcl可视化点云 一、通过realsense取得深度信息和彩色信息 ubuntu下intel realsense的软件可以打开realsen的界面,里面可以得到彩色图像和深度图像,我们通过realsense的py...
NVIDIA Jetson Orin系列 - 使用SDK Manager安装JetPack全流程解析
本文详细解析了使用NVIDIA官方SDK Manager为Jetson Orin系列开发板安装JetPack系统的完整流程。从环境准备、设备进入恢复模式,到SDK Manager图形化界面的分步操作指南,提供了新手友好的全流程解析,并分享了安装后的验证方法及常见问题解决方案,帮助开发者高效搭建稳定的边缘AI开发环境。
python 从深度相机realsense生成pcl点云
简单说下步骤: 一、通过realsense取得深度信息和彩色信息 二、获取坐标和色彩信息 三、通过pcl可视化点云 一、通过realsense取得深度信息和彩色信息 ubuntu下intel realsense的软件可以打开realsen的界面,里面可以得到彩色图像和深度图像,我们通过realsense的python接口获取彩色信息和深度信息。 1.基础的获取彩色和深度...
静态时序分析(STA)_深入解析Data to Data Checks的零周期挑战
本文深入解析了静态时序分析(STA)中Data to Data Checks的核心概念与零周期挑战。重点探讨了当Setup要求值超过时钟周期时,工具如何调整发射沿,并导致Hold检查的发射与捕获沿“分裂”这一反直觉现象。文章通过案例详细解读了时序报告,并提供了通过调整约束或接受多周期保持两种策略来应对这一挑战,帮助工程师正确理解和处理此类复杂时序检查。
图信号处理中的多尺度分析:图小波变换与图傅里叶变换的对比与应用
本文深入探讨了图信号处理中的多尺度分析方法,重点对比了图小波变换(GWT)与图傅里叶变换(GFT)的技术特点与应用场景。通过分析图的拓扑结构,GWT展现出强大的局部洞察力,适用于异常检测和社区发现;而GFT则擅长全局频率分析,适合趋势分析和信号去噪。文章结合实战案例,为读者提供了方法选型指南和前沿进展,帮助开发者在生物信息学、社交网络分析等领域高效应用这些技术。
RGBD(realsense, kinect等) 相机 储存深度图(depth_map)视频流(即uint16视频)
问题:最近在做 室内场景的三维重建,需要同时储存深度图(depth_map)视频流和彩色图(color_img)的视频流,即储存一系列连续的帧.realsense提供了 .bag文件格式用于记录视频流,但该文件占用空间极大,基本大概5~6秒的视频需要1G上下的硬盘空间(因为realsense在记录.bag文件时会同时记录5个视频流:depth_map,), ............
【100%通过率】2024华为OD机试真题E卷 C++ 实现【栈数据合并/空栈压数】
向一个空栈压入正整数,每当压入一个整数时,执行以下规则(设: 栈顶至栈底整数依次编号为n1、n2...nx, n1为最新压入的整数)
Realsense .bag 格式文件提取图像
使用Realsense d415录制了一个视频,保存的格式为.bag 在网上察查了一些方法,基本都是通过ROS库那一套东西实现.bag文件的解析。还有的文章提到了使用Matlab里面的ROS Toolbox对.bag文件进行解码: 使用Matlab提取Realsense数据的一种实现 然而我在尝试使用Matlab的时候始终不成功,一直在报错,最终只好无奈放弃。 最后经过在librealsense2...
LeRobot 官方论文:一个用于端到端机器人学习的开源库
本文介绍了一个名为LeRobot的开源库,旨在解决机器人学习领域的碎片化问题。该库提供了端到端的技术栈,包括统一的机器人中间件API、标准化的数据集格式(LeRobotDataset)、优化的推理栈以及多种最先进机器人学习算法的实现。LeRobot支持多种低成本开源机器人平台(如SO-10X、ALOHA-2等),通过共享中间件实现便捷的遥操作和数据收集。其数据集格式已广泛应用于社区,截至2025年9月已有16,000多个数据集公开共享。该库还支持流式处理大规模数据,降低了研究门槛。在模型方面,LeRobot
使用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),防止数据被意外篡改导致的异常。
基于YOLO-v8与Realsense D415的图像识别与点云提取
realsense d415本身可以输出点云数据以及图像数据,基于此结合yolo系列强大的图像识别功能,尝试用YOLO算法实时检测并分割点云数据。本项目研究的目标是篮球,因此针对篮球数据实现进行了训练。关于YOLO系列的训练方法,已经有很多文章讲解了,这里就不做赘述。
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...
迈瑞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)...
廖雪峰Python教程[完整版]
廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白
【Intel Realsense D435】16位深度图和RGB颜色图的视频显示、录制和保存(Python)
使用Intel Realsense d435深度相机,结合Python语言进行编程,实现了以16位深度图和RGB图为图像帧的视频显示、拍摄与保存
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去获取摄像头的数据并保存,但失败了。 获取的视频一片蓝绿...
【SLAM】从RealSense D435的rosbag中批量提取关键帧:自动化图片序列生成实战
本文详细介绍了如何从RealSense D435录制的rosbag文件中自动化批量提取关键帧图片序列。通过使用ROS的image_view工具包,结合rosbag play命令,搭建了一条无需手动干预的图片提取流水线,解决了SLAM研究和机器人视觉项目中手动截图效率低、格式不统一的问题,并提供了提取深度图、编写批量处理脚本等进阶技巧。
语义栅格地图(六) 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 这里需要...
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...
基于realsense相机采集深度和RGB图
【代码】基于realsense相机采集深度和RGB图。
Foundation_pose在自己的物体上复现指南:实现任意物体6D位姿检测(利用realsense_D435i和iphone_16pro手机)
Foundation_pose复现指南:实现任意物体6D位姿检测(利用realsense和iphone 16pro手机),全网最详细教程,手把手教你制作数据集并复现,实现任意物体的位姿检测
1万+



被折叠的 条评论
为什么被折叠?



