• bag包提取深度图和rgb图


    ROS通过一个叫CvBridge的功能包,将获取的图像数据转换成OpenCV的格式,OpenCV处理之后,传回给ROS进行图像显示(应用)

    在这里插入图片描述

    1. from cv_bridge import CvBridge
    2. bridge = CvBridge()

    使用imgmsg_to_cv2可将图像从ROS信息格式转换成cv格式;

    使用cv2_to_imgmsg 将数据转成ROS信息格式;
    参考:https://blog.csdn.net/qq_33328642/article/details/123380984

    将ROS图像消息转换为OpenCV图像

    要将ROS图像消息转换为cv :: Mat,模块cv_bridge.CvBridge提供以下功能:

    cv_image = bridge.imgmsg_to_cv2(image_message, desired_encoding="passthrough")

    第一个参数为输入的图像;

    第二个参数为转换后的图像格式

    如果给出默认值“passthrough”,则目标图像编码将与图像消息编码相同。

    图像编码可以是以下任何一种OpenCV图像编码:

    8UC[1-4]、 8SC[1-4]、 16UC[1-4]、 16SC[1-4]、32SC[1-4]、 32FC[1-4]、  64FC[1-4]

    对于流行的图像编码,CvBridge将根据需要选择进行颜色或像素深度转换。 要使用此功能,请指定编码为以下字符串之一:

    • mono8: CV_8UC1, grayscale image

    • mono16: CV_16UC1, 16-bit grayscale image

    • bgr8: CV_8UC3, color image with blue-green-red color order

    • rgb8: CV_8UC3, color image with red-green-blue color order

    • bgra8: CV_8UC4, BGR color image with an alpha channel

    • rgba8: CV_8UC4, RGB color image with an alpha channel

    请注意,mono8和bgr8是大多数OpenCV函数预期的两种图像编码。

    S--代表---signed int---有符号整形

    U--代表 --unsigned int--无符号整形

    F--代表  --float 单精度浮点型

    C--代表  --一张图片的通道数

    参考:http://wiki.ros.org/cv_bridge/Tutorials/ConvertingBetweenROSImagesAndOpenCVImagesPython

    转换后图片输出

    retval = cv2.imwrite(filename, img [, paras])

    cv2.imwrite() 将 OpenCV 图像保存到指定的文件。
    cv2.imwrite() 基于保存文件的扩展名选择保存图像的格式。
    cv2.imwrite() 只能保存 BGR 3通道图像,或 8 位单通道图像、或 PNG/JPEG/TIFF 16位无符号单通道图像

    filename:要保存的文件的路径和名称,包括文件扩展名 

    img:要保存的 OpenCV 图像,nparray 多维数组

    paras:不同编码格式的参数,可选项

    cv2.CV_IMWRITE_JPEG_QUALITY:设置 .jpeg/.jpg 格式的图片质量,取值为 0-100(默认值 95),数值越大则图片质量越高;
    cv2.CV_IMWRITE_WEBP_QUALITY:设置 .webp 格式的图片质量,取值为 0-100;
    cv2.CV_IMWRITE_PNG_COMPRESSION:设置 .png 格式图片的压缩比,取值为 0-9(默认值 3),数值越大则压缩比越大。
    retval:返回值,保存成功返回 True,否则返回 False。
    原文链接:https://blog.csdn.net/youcans/article/details/121169014

    Tip:

     for a, b, c in rs 定义了a,b,c三个参数

    一般这是由于rs是个元组,rs=[(1,2,3),(4,5,6),(7,8,9)],那么a,b,c返回1,2,3、4,5,6、7,8,9

  • 相关阅读:
    Java 新手如何使用Spring MVC RestAPI的加密
    享元模式学习
    【LeetCode】881 救生艇 中等题
    Vue如何实现单选、全选、反选
    C11新特性——auto、decltype类型指示符
    PCL点云处理之使用变换矩阵对点云去中心化(二百零七)
    玩转MybatisPlus分页插件二:自定义分页函数[简单案例+复杂案例]+Demo实践常规处理操作
    WebRTC 媒体数据传输控制之平滑发送实现
    C#基础|属性Property之读写特性和经典总结
    前端周刊第十七期
  • 原文地址:https://blog.csdn.net/peng_258/article/details/127432861