使用ROS提取udacity .bag文件中的压缩图片

本文介绍了如何在Ubuntu 20.04上安装ROS Noetic,包括添加软件源、安装步骤、设置环境变量以及验证安装。此外,还展示了使用Python从ROS Bag文件中提取压缩图片的代码示例,将图片保存到指定目录。
摘要由CSDN通过智能技术生成

安装ROS(Ubuntu 20.04/noetic)

  1. 添加ROS软件源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
  1. 添加密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  1. 更新软件源
sudo apt update
  1. 安装ROS(noetic version)
sudo apt install ros-noetic-desktop-full

如果出现因无法连接到ip而导致无法下载部分包,请更换软件源,更换之后再次执行上述命令。更换教程

  1. 设置环境变量
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
  1. 安装完成,以下是验证
roscore 

输入上述命令会显示版本号,如下图所示。
在这里插入图片描述
不要关闭,接着打开新终端,输入命令:rosrun turtlesim turtlesim_node,可以看到小乌龟的仿真界面已经打开了。不要关闭,再打开一个新终端输入指令:rosrun turtlesim turtle_teleop_key,可以通过键盘的方向键控制小乌龟在界面中移动(需要在终端控制,不是在界面控制),大功告成。

使用python提取bag文件中的压缩图片

直接上代码。

import rosbag
# import roslib;  # roslib.load_manifest(PKG)
# import rospy
import cv2
from cv_bridge import CvBridge
import os
from sensor_msgs.msg import Image

bridge = CvBridge()
for i in range(1,7):  #有6个bag文件
    bag_file_name = 'HMB_%d.orig.bag' % i
    rgb_path = '/common/hahabai/data/Ch2_002/HMB%d/' % i  # 已经建立好的存储rgb彩色图文件的目录
    print(bag_file_name)
    with rosbag.Bag(os.path.join(bag_dir, 'HMB_1.orig.bag'), 'r') as bag:
        #topic是/center_camera/image_color/compressed/
        for topic, msg, t in bag.read_messages("/center_camera/image_color/compressed/"):
            # 由于topic是被压缩的,所以采用compressed_imgmsg_to_cv2读取
            cv_image = bridge.compressed_imgmsg_to_cv2(msg, "bgr8")
            # 如果topic是无压缩的,可以采用bridge.imgmsg_to_cv2(msg,"bgr8")
            timestr = "%.6f" % msg.header.stamp.to_sec()
            # %.6f表示小数点后带有6位,可根据精确度需要修改;
            image_name = timestr + ".png"  # 图像命名:时间戳.png
            if not os.path.exists(rgb_path):
                os.makedirs(rgb_path)
            cv2.imwrite(os.path.join(rgb_path,image_name), cv_image)  # 保存
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值