使用 PCL 的 2D RANSAC 线性回归

问题描述 投票:0回答:2

我没有找到如何使用 pcl 进行 2D RANSAC 线性回归。我猜想有些方法没有实现。当我添加

pcl::SACSegmentation<pcl::PointXY> segmentation
时,代码可以编译,但出现链接器错误:

/usr/bin/ld: lib.so: undefined reference to `pcl::SACSegmentation<pcl::PointXY>::segment(pcl::PointIndices&, pcl::ModelCoefficients&)'
/usr/bin/ld: lib.so: undefined reference to `pcl::SACSegmentation<pcl::PointXY>::initSAC(int)'
/usr/bin/ld: lib.so: undefined reference to `pcl::SACSegmentation<pcl::PointXY>::initSACModel(int)'
collect2: error: ld returned 1 exit status

我的解决方法是使用

pcl::SACSegmentation<pcl::PointXYZ> segmentation
并设置 z=0,但这是将点从 2D 转换为 3D 的额外步骤。

point-cloud-library ransac
2个回答
0
投票

使用

pcl::PointXYZ
并将 z 设置为 0 是正确的解决方案。
SACMODEL_LINE
(或
SampleConsensusModelLine
SACSegmentation
内部使用的类)适用于 3D 和 2D 中的线条。但对于 2D,它仍然需要一个 z 坐标(设置为 0)。 您会收到链接器错误,因为
SACSegmentation
未实例化
pcl::PointXY
(请参阅源代码中的
sac_segmentation.cpp
)。


-2
投票

我也有同样的问题。你解决了吗?

© www.soinside.com 2019 - 2024. All rights reserved.