pcl opencv ROS_message三者之间点云和图片类型转换总结

1.pcl::PointCloud<PointT>pcl::PointCloud<PointT>::Ptr之间相互转换

pcl中点云常用的指针类型pcl::PointCloud<PointT>::Ptr和非指针类型pcl::PointCloud<PointT> 之间相互转换

pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_Ptr(new pcl::PointCloud<pcl::PointXYZ>);
pcl::PointCloud<pcl::PointXYZ> cloud;
//ptr->cloud
cloud=*cloud_Ptr;
//cloud->ptr
cloud_Ptr=cloud.makeShared;

2.PCL点云类型和ROS消息类型点云之间的转换

  • pcl点云数据格式:
    pcl::PointCloud< PointT>
    pcl::PCLPointCloud2

  • ros点云消息:
    snesor_msgs::PointCloud2

参考资料:https://blog.csdn.net/m0_45388819/article/details/113794706
请添加图片描述

3.OpenCV图片 cv::Mat 和 ros图片消息

cv::Mat转换成sensor_msgs::ImagePtr

cv::Mat img;
sensor_msgs::ImagePtr imgmsg = cv_bridge::CvImage(std_msgs::Header(), "bgr8",rgbimage).toImageMsg();

cv::Mat转换成sensor_msgs::Image

cv::Mat img;
sensor_msgs::Image imgmsg = *cv_bridge::CvImage(std_msgs::Header(), "bgr8",rgbimage).toImageMsg();

sensor_msgs::Image或者sensor_msgs::ImagePtr转换成cv::Mat

cv_bridge::CvImagePtr cv_ptr;
try{
//cv_bridge::toCvCopy()函数有多个重载函数,msg_image可以是指针也可以是一般类型
  cv_ptr = cv_bridge::toCvCopy(msg_image, sensor_msgs::image_encodings::BGR8);
}
catch(cv_bridge::Exception &e){
  return;
}
  cv::Mat rgbimg = cv_ptr->image;
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值