用ros从realsense中录制并提取rgb图像

储存realsense采集的rgb图像到bag文件

打开第一个terminal:

roslaunch realsense2_camera rs_camera.launch align_depth:=true

打开第二个terminal:

rosrun rviz rviz

在rviz中为了能看到图像,要调制一下参数
fixed frame->camera_link
add->by topic->color->image raw->image

打开第三个terminal:

rosbag record -O rgb /camera/color/image_raw

“-O”选择记录某一个topic,topic包括点云,深度图,彩色图等等
具体的topic要新开一个terminal输入

rostopic list

不同的版本,topic 不一样,如果输错了,record就会失败
/camera/color/image_raw 是选择的topic,意思是记录rgb图像
rgb是record的bag文件的文件名
在这里插入图片描述
终止record,键盘输入 “CTRL+Z”

检查record是否成功,可以靠输入

rosbag info rgb.bag

用ros从realsense中录制并提取rgb图像_第1张图片
如果topic输入错误,会导致record不成功
比如下图,把topic搞错了,record的bag文件只有4kb,没有成功记录哪怕一张图片
用ros从realsense中录制并提取rgb图像_第2张图片

从bag文件中提取jpg图像

写一个launch文件

打开text Editor,在文本中输入以下内容:
用ros从realsense中录制并提取rgb图像_第3张图片/home/chen/rgb.bag是bag文件的位置

0.03

0.03是生成的图片的间隔时间,单位是s
将该文件保存为‘export.launch’
在terminal中输入

roslaunch export.launch

用ros从realsense中录制并提取rgb图像_第4张图片可以看到图片的间隔时间是0.03sec
图片的格式是frame*.jpg
但是现在图片被存储到隐藏的文件夹 ~/.ros 中
为了方便查看文件,需要把图片转移到另一个目录下
在terminal中输入:

显示图片

cd ~ 
mkdir test 
mv ~/.ros/frame*.jpg test

cd ~ ####回到主目录
mkdir test ###在主目录下创建新的文件夹test
mv ~/.ros/frame*.jpg test/###将 .ros 文件夹下的jpg文件转移到test文件夹中
用ros从realsense中录制并提取rgb图像_第5张图片
用ros从realsense中录制并提取rgb图像_第6张图片在 ~/test 文件夹中可以看见图片了,但是可以看到有的图片不属于事先录制的bag文件,这些图片是现在从realsense中实时读入的。

去除实时读入的图片

为了避免realsense实时数据的影响,我把rviz关掉,还是不行,还是混合的,也许是因为rviz只是个显示器,关掉显示,ros还是从realsense中读图了
试着把realsense关闭
找到本博客打开的第一个terminal,就是输入了roslaunch realsense2_camera rs_camera.launch align_depth:=true的terminal
键盘输入 CTRL+Z
realsense就停止向ros传入数据

再输入

launch export.launch
mv ~/.ros/frame*.jpg test/

得到的图片就纯粹是原来录制的bag文件中的内容了

用ros从realsense中录制并提取rgb图像_第7张图片

你可能感兴趣的:(rgbd,image,extraction)