full upload so not to lose anything important
This commit is contained in:
37
tools/list_topics.py
Normal file
37
tools/list_topics.py
Normal file
@@ -0,0 +1,37 @@
|
||||
from pathlib import Path
|
||||
|
||||
import numpy as np
|
||||
from PIL import Image
|
||||
from rosbags.highlevel import AnyReader
|
||||
|
||||
|
||||
def list_topics(bag_file):
|
||||
frame_count = 0
|
||||
output_folder = Path("./test") / bag_file.stem
|
||||
output_folder.mkdir(exist_ok=True, parents=True)
|
||||
|
||||
with AnyReader([bag_file]) as reader:
|
||||
connections = reader.connections
|
||||
topics = dict(sorted({conn.topic: conn for conn in connections}.items()))
|
||||
|
||||
topic = topics["/stereo_inertial_publisher/left/image_rect"]
|
||||
|
||||
for connection, timestamp, rawdata in reader.messages(connections=[topic]):
|
||||
img_msg = reader.deserialize(rawdata, connection.msgtype)
|
||||
|
||||
img_data = np.frombuffer(img_msg.data, dtype=np.uint8).reshape(
|
||||
(img_msg.height, img_msg.width)
|
||||
)
|
||||
img = Image.fromarray(img_data, mode="L")
|
||||
frame_count += 1
|
||||
img.save(output_folder / f"frame_{frame_count:04d}.png")
|
||||
|
||||
print(f"Saved {frame_count} frames to {output_folder}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
bag_path = Path(
|
||||
"/home/fedex/mt/data/subter/3_smoke_robot_stationary_static_excess_smoke_2023-01-23.bag"
|
||||
)
|
||||
print(f"{bag_path.exists()=}")
|
||||
list_topics(bag_path)
|
||||
Reference in New Issue
Block a user