大家好,我是陆砚码,今天我们来聊聊如何在rosbag中提取图片和视频。相信很多做机器人开发的小伙伴都会遇到这个问题,接下来我会一步步带大家解决。
第一步:查看rosbag中的视频topic信息
首先,你需要使用rosbag info命令来查看你的rosbag中与视频相关的topic信息。记得将radar_camera.bag替换成你自己的包名。比如,我的包里有一个topic是与视频相关的,格式是“compressed”压缩的。
第二步:命令行输入
接下来,你需要输入以下命令来转换topic:
rosrun image_transport republish compressed in:=/cam_rear_left/image_raw/ raw out:=camera_out/image
in:=/cam_rear_left/image_raw/这里是与第一步中的topic对应的。out:=camera_out/image是新起的topic。你可以运行rostopic list来查看当前的topic列表。
第三步:抽取图片
然后,使用以下命令来抽取图片:
rosrun image_view extract_images _sec_per_frame:=0.05 image:=/camera_out/image
_sec_per_frame:=0.05为周期50ms一帧,你可以根据自己的需要设置。image:=/camera_out/image这里是第二步中新起的topic。
第四步:播放rosbag才能抽取图片
在这一步,你需要播放rosbag才能抽取图片:
rosbag play radar_camera.bag
第五步:将抽取的图片生成视频
最后,你可以使用以下命令将抽取的图片生成视频:
jpeg2yuv -I p -f 10 -j frame%04d.jpg -b 1 > tmp.yuv
或者使用FFMPEG:
ffmpeg -r 15 -s 1920*1080 -i frame%04d.jpg test.mp4
这样,你就可以得到一个帧率为15,分辨率为1920*1080的mp4视频文件了。如果你想生成.avi视频,可以使用以下命令:
ffmpeg -r -b -i frame%04d.jpg
OK!完成啦!希望这篇文章能帮到你,如果你还有其他问题,欢迎在评论区留言。
我是陆砚码,来自「思享编程网」(www.sxgpb.com),这里有很多实用的编程技巧和知识,欢迎你来一起学习交流。
