gpt4 book ai didi

c++ - 在 PCL 中可视化 PointNormal 点云的法线

转载 作者:行者123 更新时间:2023-11-28 04:49:32 25 4
gpt4 key购买 nike

我正在尝试可视化包含在 pcl::PointNormal 点云中的法线。我尝试使用以下代码执行此操作:

std::shared_ptr<pcl::visualization::PCLVisualizer> viewer;
std::mutex viewerMutex;

void viewerThreadFunction() {
while(true) {
if(viewer->wasStopped()) break;
viewerMutex.lock();
viewer->spinOnce();
viewerMutex.unlock();
}
}

int main() {
viewer = std::shared_ptr<pcl::visualization::PCLVisualizer>(
new pcl::visualization::PCLVisualizer("Viewer"));
viewer->setBackgroundColor(0, 0, 0);

pcl::PointCloud<pcl::PointNormal>::Ptr cloud(new pcl::PointCloud<pcl::PointNormal>);

viewer->addPointCloudNormals<pcl::PointNormal, pcl::PointNormal> (cloud, cloud, 25, 0.15, "normals"); // It throws an exception here:

std::thread viewerThread{viewerThreadFunction};

while(true) {
// populate the point cloud
viewerMutex.lock();
viewer->removePointCloud("normals");
viewer->addPointCloudNormals<pcl::PointNormal, pcl::PointNormal> (cloud, cloud, 25, 0.15, "normals");
viewerMutex.unlock();
}
}

我得到一个异常(exception):

terminate called after throwing an instance of 'std::bad_array_new_length'
what(): std::bad_array_new_length
Aborted (core dumped)

我试图重写程序,以便仅在填充的点云上调用 viewer->addPointCloudNormals,但没有帮助。

最佳答案

您的查看器可能缺少实际的点云数据。

尝试添加

viewer->addPointCloud<pcl::PointNormal>(cloud, "foo", 1);

在调用 addpointcloudnormals 之前

关于c++ - 在 PCL 中可视化 PointNormal 点云的法线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48517352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com