python - 有没有一种简单的方法可以找到包文件中记录的总帧数?
问题描述
我正在尝试使用 realsense 处理 a.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
推荐阅读
- c++ - 使用 C++ 进行库管理
- amazon-web-services - AWS 控制塔将账户移动到新的 OU 失败
- reactjs - 在 Reactjs 中通过 ASP.NET Core (Api) jwt 使用外部登录
- node.js - 在 Google Cloud Console 界面中应用环境变量
- reactjs - 如何在函数组件中使用构造函数(胖箭头函数)?
- c++ - 如何在 Windows 10 相机应用程序中执行实时人脸检测?
- javascript - 用于选择查找中的所有选项的复选框
- html - 自定义猫头鹰旋转木马点
- javascript - 如何在java脚本中将字符串“000”解析为数字
- javascript - 将道具从页面传递到不同文件中的组件