python提取bag文件中的图片数据
import argparse
import pyrealsense2 as rs
import numpy as np
import cv2
import os
"""
this is a file for convert .bag files to .png files for RealSense RGB-D data
"""
# every n_skip, save one image
n_skip = 10
def main():
if not os.path.exists(args.depth_directory):
os.mkdir(args.depth_directory)
if not os.path.exists(args.color_directory):
os.mkdir(args.color_directory)
try:
pipeline = rs.pipeline()
config = rs.config()
rs.config.enable_device_from_file(config, args.input, repeat_playback=False)
config.enable_stream(rs.stream.depth, 848, 480, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 640, 480, rs.format.rgb8, 30)
pipeline.start(config)
rs.align(rs.stream.color)
# start to convert
i = 0
while i <= 300: # fps = 30, usually, each video lasts around 10 sec.
frames = pipeline.wait_for_frames()
print("num", frames.frame_number)
if i % n_skip == 0:
print("Saving frame:", i)
# saving depths
depth_frame = frames.get_depth_frame()
depth_image = np.asanyarray(depth_frame.get_data())
cv2.imwrite(args.depth_directory + "/" + str(i).zfill(6) + ".png", depth_image)
# saving RGBs
color_frame = frames.get_color_frame()
color_image = np.asanyarray(color_frame.get_data())
print(color_image.shape)
cv2.imwrite(args.color_directory + "/" + str(i).zfill(6) + ".png", color_image)
i += 1
finally:
pass
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("-d_d", "--depth_directory", type=str, help="Path to save the depth images")
parser.add_argument("-c_d", "--color_directory", type=str, help="Path to save the RGB images")
parser.add_argument("-i", "--input", type=str, help="Bag file to read")
args = parser.parse_args()
main()
不论你在什么时候开始,重要的是开始之后就不要停止。
不论你在什么时候结束,重要的是结束之后就不要悔恨。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2020-09-07 Paginator分页
2020-09-07 静态文件处理