首页 > 解决方案 > PCL RANSAC 找不到 LINE 模型的解决方案

问题描述

我正在尝试从点云拟合线模型。我正在使用 pcl 1.9.1。我正面临这个错误:

[pcl::RandomSampleConsensus::computeModel] 无法选择样本 [pcl::SACSegmentation::segment] 分割模型时出错!未找到解决方案。

我想使用的点云是这样的: https ://drive.google.com/file/d/1qLrVjplmqT_SdFUXaZCYAkWHtYVEoTKR/view?usp=sharing

我使用的代码与教程的代码几乎完全相同(https://pcl.readthedocs.io/projects/tutorials/en/latest/planar_segmentation.html#planar-segmentation):

pcl::ModelCoefficients::Ptr coefficients (new pcl::ModelCoefficients);
pcl::PointIndices::Ptr inliers (new pcl::PointIndices);
// Create the segmentation object
pcl::SACSegmentation<pcl::PointXYZ> seg;
// Optional
seg.setOptimizeCoefficients (true);
// Mandatory
seg.setModelType (pcl::SACMODEL_LINE);
seg.setMethodType (pcl::SAC_RANSAC);
seg.setDistanceThreshold (0.1);

seg.setInputCloud (m_Lcloud);
seg.segment (*inliers, *coefficients);

唯一的区别是我想使用线模型而不是平面模型。我不知道发生了什么,因为我看到有几个人在做同样的事情并且没有遇到这个问题。我没有在任何主题上看到此上下文中的错误。

我的点云不是很大(比如 300 点),但我认为这不是问题所在。我已经尝试让它更大(只是添加了对称或类似的东西)但同样的错误。

门槛也不是问题(我认为)。我尝试了很多这些,通常使用 0.1 应该很好。

也许是我的 PCL 版本有问题。如果有最新版本的人可以尝试,我将不胜感激。


我在这里发帖是因为 pcl 论坛似乎还没有活跃。很抱歉,如果这不应该在这里。

感谢任何花时间帮助我的人!

标签: c++linepoint-cloud-librarypoint-cloudsransac

解决方案


推荐阅读