Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有一种简单的方法可以找到一个bag文件中记录的总帧数?_Python_Realsense_Rosbag - Fatal编程技术网

Python 有没有一种简单的方法可以找到一个bag文件中记录的总帧数?

Python 有没有一种简单的方法可以找到一个bag文件中记录的总帧数?,python,realsense,rosbag,Python,Realsense,Rosbag,我正在尝试使用realsense处理.bag文件中的帧。是否有任何方法可以从这个包文件中提取所有帧,而不删除大部分帧。我在网上找不到答案。以下是我读取基于Intel示例的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(co

我正在尝试使用realsense处理.bag文件中的帧。是否有任何方法可以从这个包文件中提取所有帧,而不删除大部分帧。我在网上找不到答案。以下是我读取基于Intel示例的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