赞
踩
最近工作过程中有一个小问题,一个ROS节点要处理另一个ROS节点的图片信息,为了解决这个问题,目前有两种方法。
因为相机传的图片分辨率为1920*1080,造成图片较大,在ROS传输过程中造成了比较大的延时,所以想通过图片压缩将发送的图片信息变小,减少时延,经过图片压缩后最后的效果也十分明显。
具体原理是把ros中代表图片的信息sensor_msgs::Image
通过cvbridge
转化成opencv中的Mat
数据格式,在使用Resize
函数将其压缩,最后再通过cvbridge
转化成sensor_msgs::Image
。
具体实现函数:
sensor_msgs::Image VehicleNode::compressImg(const sensor_msgs::Image &img,int width, int height){
cv_bridge::CvImagePtr cv_ptr = cv_bridge::toCvCopy(img, sensor_msgs::image_encodings::TYPE_8UC3);
cv::Mat cvI
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。