码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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计算机毕业设计开放式实验室预约系统源码+mysql数据库+系统+lw文档+部署
    软件测试行业5年经验,薪资不如刚入行的应届生,真是日了狗了,问题究竟出在哪里?
    秒懂MySql之从零搭建主从架构
    Elasticsearch踩坑:启动时 报错 java.nio.file.NoSuchFileException \lib\dt.jar
    我如何编码8个小时而不会感到疲倦。
    第一次使用马哈鱼血缘分析工具(SQLFlow)
    Day02 SpringBoot第二次笔记---开发实用篇(第三方属性的绑定、宽松绑定/松散绑定、常用计量单位绑定和数据校验)
    第十二届蓝桥杯《杨辉三角》-二分法
    【编程不良人】SpringSecurity实战学习笔记01---权限管理、环境搭建
    【注释和反射】获取class类实例的方法
  • 原文地址:https://blog.csdn.net/peng_258/article/details/127432861
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号