python - 有没有一种简单的方法可以查找包文件中记录的帧总数?

标签 python realsense rosbag

我正在尝试使用 realsense 处理 .bag 文件中的帧。有什么方法可以从这个包文件中提取所有帧而不丢失大部分帧。我在网上找不到答案。这是我的代码,用于读取基于英特尔示例的 bag 文件:

import numpy as np
import pyrealsense2 as rs
import os
import time
import cv2

i = 0
try:
    config = rs.config()
    rs.config.enable_device_from_file(config, "test.bag", repeat_playback=False)
    pipeline = rs.pipeline()
    pipeline.start(config)

    while True:
        frames = pipeline.wait_for_frames()
        depth_frame = frames.get_depth_frame()
        if not depth_frame:
            continue
        depth_image = np.asanyarray(depth_frame.get_data())

        color_image = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)

        cv2.imwrite("D:/TEST/image/" + str(i) + ".png", color_image)
        i += 1
finally:
    pass

最佳答案

默认情况下,设备会实时播放帧(类似于实时摄像头),因此如果处理速度不够快,有些帧会被丢弃。您可以禁用此行为以一一获取所有帧。

类似这样的事情:

profile = pipeline.start(config)
playback=profile.get_device().as_playback() # get playback device
playback.set_real_time(False) # disable real-time playback

关于python - 有没有一种简单的方法可以查找包文件中记录的帧总数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62310081/

相关文章:

c++ - RealSense R200 在高色彩分辨率和低深度分辨率下崩溃

python - Pyrealsense2 (Librealsense SDK 2.0) : choose cam from Serial Number

python - 在 Python 3 中导入 Rosbag

python - 如何以特定方式标记我的重复值

python - 如何在python电子邮件中使用加密密码

python - 如何使用新格式打印大括号

python - Pandas :从一行创建多行 'dummy data'

opencv - 使用关于opencv的realsense2将深度图像映射到彩色图像