多帧点云数据拼接合并_点云拼接算法

/*\author Radu Bogdan Rusu

* adaptation Raphael Favier*/#include#include#include#include#include#include#include#include#include#include#include#include

usingpcl::visualization::PointCloudColorHandlerGenericField;usingpcl::visualization::PointCloudColorHandlerCustom;//简单类型定义

typedef pcl::PointXYZ PointT;

typedef pcl::PointCloudPointCloud;

typedef pcl::PointNormal PointNormalT;

typedef pcl::PointCloudPointCloudWithNormals;//这是一个辅助教程,因此我们可以负担全局变量//创建可视化工具

pcl::visualization::PCLVisualizer *p;//定义左右视点

intvp_1, vp_2;//处理点云的方便的结构定义

structPCD

{

PointCloud::Ptr cloud;

std::stringf_name;

PCD() : cloud (newPointCloud) {};

};structPCDComparator

{bool operator () (const PCD& p1, const PCD&p2)

{return (p1.f_name

}

};//以< x, y, z, curvature >形式定义一个新的点

class MyPointRepresentation : public pcl::PointRepresentation {using pcl::PointRepresentation::nr_dimensions_;public:

MyPointRepresentation ()

{//定义尺寸值

nr_dimensions_ = 4;

}//覆盖copyToFloatArray方法来定义我们的特征矢量

virtual void copyToFloatArray (const PointNormalT &p, float * out) const{//< x, y, z, curvature >

out[0] =p.x;out[1] =p.y;out[2] =p.z;out[3] =p.curvature;

}

};

/** 在可视化窗口的第一视点显示源点云和目标点云

**/

void showCloudsLeft(const PointCloud::Ptr cloud_target, constPointCloud::Ptr cloud_source)

{

p->removePointCloud ("vp1_target");

p->removePointCloud ("vp1_source");

PointCloudColorHandlerCustom tgt_h (cloud_target, 0, 255, 0);

PointCloudColorHandlerCustom src_h (cloud_source, 255, 0, 0);

p->addPointCloud (cloud_target, tgt_h, "vp1_target", vp_1);

p->addPoint

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值