Open3D:RANSAC拟合平面分割点云(C++)

本文详细介绍了一种基于RANSAC算法的平面分割方法,并提供了使用Open3D库实现的具体代码示例。通过调整距离阈值、平面最小点数及最大迭代次数,成功将点云数据分为平面内点和外点,最后以可视化方式展示分割效果。

20200918:最近骨折了,很烦。蹦蹦跳跳的,膝盖疼。

一、RANSAC(Random Sample Consensus)

https://baike.baidu.com/item/ransac/10993469?fr=aladdin

(省的某些人嫌弃我不讲原理)

二、代码

分享给有需要的人,代码质量勿喷。

//Open3D
#include "Open3D/Open3D.h"

//Eigen
#include "Eigen/Dense"

/* RANSAC平面分割 */
void testOpen3D::pcPlaneRANSAC(const QString &pcPath)
{
	int width = 700, height = 500;
	auto cloud_ptr = std::make_shared<open3d::geometry::PointCloud>();
	if (!open3d::io::ReadPointCloud(pcPath.toStdString(), *cloud_ptr)) { return; }
	open3d::visualization::DrawGeometries({ cloud_ptr }, "Point Cloud 1", width, height);


	/***** 距离阈值,平面最小点数,最大迭代次数。返回平面参数和内点 *****/
	double tDis = 0.05;
	int minNum = 3;
	int numIter = 100;
	std::tuple<Eigen::Vector4d, std::vector<size_t>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

累了就要打游戏

把我养胖,搞代码

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

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

打赏作者

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

抵扣说明:

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

余额充值