激光点云电力线提取

实现原理比较简单,利用线性特征值来筛选电力线点云。

		std::shared_ptr<PointCloud> PointCloud::PowerLineSegmentation(double threshold, double scale, double radius)
		{
			Eigen::Vector3d max = GetMaxBound();
			Eigen::Vector3d min = GetMinBound();

			double ratio = (max.z() - min.z()) / scale + min.z();

			PointCloud newPcd;
#pragma omp parallel for schedule(static)
			for (int i = 0; i < (int)m_points.size(); ++i)
			{
				if (m_points[i].z() > ratio)
				{
#pragma omp critical
					{
						newPcd.m_points.push_back(m_points[i]);
						newPcd.m_colors.push_back(m_colors[i]);
					}
				}
			}

			KdTree kdtree;
			kdtree.SetGeometry(newPcd);
			Eigen::SelfAdjointEigenSolver<Eigen::Matrix3d> es;

			std::vector<double> linear(newPcd.m_points.size());

#pragma omp parallel for
			for (int i = 0; i < (int)newPcd.m_points.size(); ++i)
			{
				std::vector<int> indices;
				std::vector<double> distance2;
				kdtree.Sear
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值