栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

目录
  • 安装ROS(Ubuntu 20.04/noetic)
  • 使用python提取bag文件中的压缩图片

安装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)  # 保存
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/934257.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号