如何使用PCL快速组织网格方法生成“面”?

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

为了使用英特尔实感 D455 生成网格,我使用了 PCL 库,更准确地说是快速组织网格方法。我设法生成 OBJ 格式的网格,但它只包含顶点,没有面。

这是我使用的代码:

pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
cloud->resize(size);

for (int i = 0; i < size; i++)
{
    cloud->at(i).x = Cloud[i].x;
    cloud->at(i).y = Cloud[i].y;
    cloud->at(i).z = Cloud[i].z;

}

std::cout << "Fast mesh started " << "\n";
pcl::OrganizedFastMesh<pcl::PointXYZ>::Ptr orgMesh(new pcl::OrganizedFastMesh<pcl::PointXYZ());
pcl::PolygonMesh triangles;
orgMesh->setTriangulationType(pcl::OrganizedFastMesh<pcl::PointXYZ>::TRIANGLE_RIGHT_CUT);
orgMesh->setInputCloud(cloud);
orgMesh->reconstruct(triangles);
std::cout << "start saving the fast mesh obj..." << "\n";
pcl::io::saveOBJFile("Mesh.obj", triangles);

有人可以解释一下如何让该方法也生成面孔吗?

感谢您的帮助。

c++ 3d intel mesh point-cloud-library
1个回答
1
投票

您正在将无组织的点云作为

OrganizedFastMesh
实例的输入。但顾名思义,它是一个用于组织点云的 API。有组织的点云意味着点已经排列为网格(如矩阵)。有关详细信息,请参阅有关 PointCloud 的参考资料有关组织点云的说明(在 Mathworks 上)。

使用其他 API,例如

ConvexHull

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