成对连接点云分割

本文介绍了成对连接点云分割的原理,包括点特征计算、成对连接构建、聚类结果获取及合并过程。点云分割效果在数据一和数据二中展示,虽然效率尚可,但面面交界处点的处理有待优化。文章还提到了环境配置,特别是OpenCV的使用,并给出了主函数的简要说明及资料下载链接。
摘要由CSDN通过智能技术生成

1、原理介绍

成对连接点云分割是对点云进行分割,其将点云进行聚类,基本将点分成平面点、单个点。其流程包括:
(1)点特征计算:平整度
(2)成对连接构建:使用点及其近邻点
(3)使用成对连接获取初始聚类结果
(4)合并过程合并初始结果

2、点云分割效果

2.1、数据一:

在这里插入图片描述
在这里插入图片描述 在这里插入图片描述

2.1、数据二:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从提取的时间上看,效率基本还可以,但可以发现对于面面交界处点效果不是那么理想,仍需要进一步优化。

3、环境配置

配置OpenCV,具体配置环境可参考博客:
https://blog.csdn.net/qq_32867925/article/details/106387252

4、主函数介绍

在这里插入代码片void main()
{
	clock_t t1, t2;
	t1 = clock();
	std::string fileData = "..\\alidar.txt";
	std::string fileResult = "..\\alidar_result.txt";

	// step1: read in data
	PointCloud<double> pointData;
	readDataFromFile(fileData, pointData);

	// step2: build kd-tree
	int k = 100;
	std::vector<PCAInfo> pcaInfos;
	PCAFunctions pcaer;
	pcaer.PCA(pointData, 100, pcaInfos);//近邻点个数

	// step3: run point segmentation algorithm
	int algorithm = 0;
	std::vector<std::vector<int>> clusters;

	// Algorithm1: segmentation via PLinkage based clustering
	if (algorithm == 0) 
	{
		double theta = 90.0 / 180.0 * CV_PI;
		PLANE_MODE planeMode = SURFACE;               // PLANE  SURFACE
		ClusterGrowPLinkage segmenter(k, theta, planeMode);
		segmenter.setData(pointData, pcaInfos);
		segmenter.run(clusters);
	}
	// Algorithm2: segmentation via normal angle similarity
	else if (algorithm == 1)
	{
		double theta = 5.0 / 180.0 * CV_PI;
		double percent = 0.75;
		PointGrowAngleOnly segmenter(theta, percent);
		segmenter.setData(pointData, pcaInfos);
		segmenter.run(clusters);
	}
	// Algorithm3: segmentation via normal angle similarity and point-plane distance
	else
	{
		double theta = 10.0 / 180.0 * CV_PI;
		int RMin = 10;  // minimal number of points per cluster
		PointGrowAngleDis segmenter(theta, RMin);
		segmenter.setData(pointData, pcaInfos);
		segmenter.run(clusters);
	}
	
	// step4: write out result
	writeOutClusters(fileResult, pointData, clusters);
	t2 = clock();
	cout << "time consuming is " << (t2 - t1) / 1000 << "s" << endl;
	system("pause");
}

5、下载链接

链接:https://pan.baidu.com/s/1FFLSbYHoX9bEsZZn07CKJA
提取码:5c29

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点云实验室lab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值