压缩图像sensor_msgs/CompressedImag

这篇具有很好参考价值的文章主要介绍了压缩图像sensor_msgs/CompressedImag。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

某些情况下需要录图像数据的包,非常占空间和带宽,尤其对于一些工业相机图像一张好几兆,每秒30帧的话一份钟好几个G,这时候可以选择的订阅压缩图像;

  • 但是,在一般的视觉框架中,都是直接处理“未压缩图像”,所以在使用的时候,需要对图像先解压缩,再使用;

压缩图像使用步骤

方法一:更改ROS回调函数

  • Step1:通常的视觉框架使用的ROS图像话题格式:sensor_msgs::ImageConstPtr
void img_callback(const sensor_msgs::ImageConstPtr &img_msg)

但是,压缩图像的ROS图像话题格式:sensor_msgs::CompressedImageConstPtr

所以,必须将CompressedImageConstPtr转为ImageConstPtr;

  • Step2:回调函数改为sensor_msgs::CompressedImageConstPtr,即sensor_msgs::CompressedImageConstPtr转为cv::Mat
void ImageGrabber::GrabImage2(const sensor_msgs::CompressedImageConstPtr& msg)
{
    cv::Mat cv_ptr;

    // * 添加压缩图像接口
        try
    {
        // * ROS消息格式转cv::Mat
        cv_bridge::CvImagePtr cv_ptr_compressed = cv_bridge::toCvCopy(msg,sensor_msgs::image_encodings::BGR8);
        cv_ptr = cv_ptr_compressed->image;
    }
    catch (cv_bridge::Exception& e)
    {
//        ROS_ERROR("Could not convert from '%s' to 'bgr8'.", msg->encoding.c_str());
    }

    //单目模式跟踪特征点
    mpSLAM->TrackMonocular(cv_ptr,msg->header.stamp.toSec());
}
  • Step3:但是,sensor_msgs::ImageConstPtr和sensor_msgs::CompressedImageConstPtr有一些数据格式不同,以VINS-Mono为例,VINS-Mono中用到了很多sensor_msgs::ImageConstPtr的数据结构,但是sensor_msgs::CompressedImageConstPtr中没有对应的结构!
  • Step4:因此,方案一在某些情况下,不一定可以用;
  • 参考

方案二:

  • 在luanch文件中,添加命令:
       <!-- Image conversion -->
- <node name="republish0" type="republish" pkg="image_transport" output="screen" args="compressed in:=/camera/image_raw raw out:=/camera/image_raw" />

以LVI-SAM的handheld.bag为例,话题为:

压缩图像sensor_msgs/CompressedImag

所以,在launch命令中,“压缩图像话题”不要加“compressed”!!!

  • 参考
    https://blog.csdn.net/hxlanu/article/details/123747430?ops_request_misc=&request_id=&biz_id=102&utm_term=%20%3Cnode%20pkg=%22image_transport%22%20t&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-123747430.142v33experiment_2_v1,185v2control&spm=1018.2226.3001.4187

https://blog.csdn.net/weixin_30457881/article/details/98023948?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165871721216782246466979%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165871721216782246466979&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-2-98023948-null-null.142v33experiment_2_v1,185v2control&utm_term=%20%3Cnode%20pkg%3Dimage_transport%20type%3Drepublish%20name%3D%24%28arg%20project%29_republish%20&spm=1018.2226.3001.4187

https://www.cnblogs.com/hong2016/p/7616174.html

  • 但是,以ORB-SLAM为例,没有launch文件!
    • 所以,使用rosrun的方式,启动image_transport节点!(image_transport是一个包,需要安装才可以使用)
    • 例子:
rosrun image_transport republish compressed in:=/usb_cam150/image_raw raw out:=/usb_cam150/image_raw
- 详细参考:

https://blog.csdn.net/qq_25458977/article/details/107990439?ops_request_misc=&request_id=&biz_id=102&utm_term=rosrun%E5%90%AF%E5%8A%A8image_transport&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-107990439.142v33experiment_2_v1,185v2control&spm=1018.2226.3001.4187文章来源地址https://www.toymoban.com/news/detail-503471.html

到了这里,关于压缩图像sensor_msgs/CompressedImag的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 提高程序的健壮性:异常处理机制可以避免程序因错误而崩溃,让程序在某些情况下可以沉默”,从而保证程序的运行安全;

    作者:禅与计算机程序设计艺术 在软件开发过程中,随着应用的不断迭代更新、功能的增加、人员的变动等原因,软件的质量会逐渐下降,出现各种各样的bug、缺陷、漏洞等。这些bug或许能够影响系统的正常运行,或者导致系统崩溃甚至数据丢失。因此,如何在软件的设计中

    2024年02月11日
    浏览(45)
  • 使用Opencv对图像进行压缩和解压缩

      最近在一个项目中需要将工业相机采集到的图像通过jsonrpc进行传输,一开始没进行压缩,传输的速度很慢,相机分辨率是2592×1944,单通道,这么一算一次要传输的数据量大小是2592×1944×1=5,038,848字节,500多万的字节,通过opencv自带 imencode 和 imdecode 两个函数,将图像进行

    2024年02月04日
    浏览(51)
  • 数字图像处理--六、图像压缩

    目录 1.基本概念 1.1 图像压缩概念及其分类 1.2 数据冗余 1.3 图像信息的度量 1.4 图像保真度准则 (Fidelity Criteria) 1.5 图像压缩模型 2.图像压缩方法 2.1Huffman编码 消除编码冗余 2.2算术编码 (Arithmetic Coding) 消除编码冗余 2.3LZW编码 (Lempel-Ziv-Welch coding) 2.4位平面编码 2.5预测编码 预测

    2024年02月12日
    浏览(41)
  • NEFU数字图像处理(5)图像压缩编码

    图像压缩编码的过程是在图像存储或传输之前进行,然后再由压缩后的图像数据(编码数据)恢复出原始图像或者是原始图像的近似图像· 无损压缩:在压缩过程中没有信息损失,可由编码数据完全恢复出原始图像· 有损压缩:在压缩过程中有信息损失,由编码数据恢复出的

    2024年02月05日
    浏览(136)
  • 【计算机视觉】数字图像处理(六)—— 图像压缩

    (一)、图像编码技术的研究背景 1. 信息信息传输方式发生了很大的改变 通信方式的改变 文字+语音 图像+文字+语音 通信对象的改变 人与人 人与机器,机器与机器 2. 图像传输与存储需要的信息量空间 (1)彩色视频信息 对于电视画面的分辨率640 480的彩色图像,每秒30帧,

    2024年02月05日
    浏览(81)
  • 基于DCT+huffman变换的图像压缩解压缩FPGA实现

    目录 一、理论基础 二、verilog程序 三、仿真结果        图像压缩和解压缩是数字图像处理中的重要技术。基于DCT(离散余弦变换)和Huffman变换的图像压缩解压缩方法是一种常见的图像压缩标准,它可以将图像数据压缩成更小的体积,同时保持图像的质量和还原性。 一、

    2023年04月16日
    浏览(66)
  • 第八章 图像压缩

    数据冗余R为 R = 1 − 1 C R=1-cfrac1C R = 1 − C 1 ​ C为压缩率,定义为 C = b b ′ C=cfrac{b}{b\\\'} C = b ′ b ​ 二维灰度阵列受如下可被识别和利用的三种主要类型的数据冗余的影响: 编码冗余。编码是用于表示信息实体或事件集合的符号系统(字母、数字、比特和类似的符号等)。每个信

    2024年02月10日
    浏览(49)
  • 图像压缩算法

    这里说​十种常用的图像压缩算法 数据压缩是保留相同或绝大部分数据前提下减小文件大小的过程。它的原理是消除不必要的数据或以更高效的格式重新组织数据。在进行数据压缩时,你可以选择使用有损方法或无损方法。有损方法会永久性地擦除掉一些数据,而无损方法则

    2024年02月09日
    浏览(42)
  • 图像与视频压缩算法

    图像压缩是通过减少图像数据量来降低图像文件的大小,从而减少存储空间和传输带宽。有多种图像压缩算法,它们可以分为两大类:有损压缩和无损压缩。 无损压缩算法: Run-Length Encoding (RLE): 这是一种简单的无损压缩方法,它基于连续相同像素值的重复序列。RLE 将重复的

    2024年01月20日
    浏览(34)
  • python图像处理——图像压缩(调整图片的存储大小)

    前言 很多时候拍的图片都是几百KB 甚至多少M来算的,有时候证件照要求的又很小,作为一个程序员,总不能老是在网上找压缩的吧,而且又麻烦,不如自己用程序跑跑啦 懒得写太详细注释了,不懂可以问噢,后续会把不懂的放上来,或者优化代码 点赞或收藏可以鼓励作者加

    2024年03月11日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包