Есть ли простой способ найти общее количество кадров, записанных в файле мешка?

Я пытаюсь обработать кадры в файле .bag с помощью realsense. Есть ли способ извлечь все кадры из этого файла мешка, не удаляя большинство кадров. Я не мог найти ответ в Интернете. Вот мой код для чтения файла сумки, основанный на примере Intel:

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

person Waleed    schedule 10.06.2020    source источник


Ответы (1)


По умолчанию устройство воспроизводит кадры в реальном времени (аналогично живой камере), поэтому, если вы не обработаете их достаточно быстро, некоторые из них будут пропущены. Вы можете отключить это поведение, чтобы получать все кадры один за другим.

Что-то вроде этого:

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