Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Matlab';在C++;_C++_Matlab_Point Cloud Library - Fatal编程技术网

C++ Matlab';在C++;

C++ Matlab';在C++;,c++,matlab,point-cloud-library,C++,Matlab,Point Cloud Library,我有x,y,z三维点,数组大小为nx3维。由于它们是分散的数据点,我需要匹配到等间距的网格数据中。Matlab中的实现使用了TriScatteredInterp,如中所示。我需要在C++中实现它,并绘制数据并保存为PNG文件。所以我搜索并发现我应该在PCL库中实现。由于我不熟悉PCL,如何使用PCL解决该问题?能给我一些示例程序吗? 谢谢我不明白您对等间距网格数据的确切需求。在查看matlab函数时,我相信您希望执行以下操作: 1)对分散的数据点执行曲面重建 在PCL中,您应该能够根据以下示例执

我有x,y,z三维点,数组大小为nx3维。由于它们是分散的数据点,我需要匹配到等间距的网格数据中。Matlab中的实现使用了TriScatteredInterp,如中所示。我需要在C++中实现它,并绘制数据并保存为PNG文件。所以我搜索并发现我应该在PCL库中实现。由于我不熟悉PCL,如何使用PCL解决该问题?能给我一些示例程序吗?
谢谢

我不明白您对等间距网格数据的确切需求。在查看matlab函数时,我相信您希望执行以下操作:

1)对分散的数据点执行曲面重建
在PCL中,您应该能够根据以下示例执行此操作:

2)在查看器中显示曲面 这一步可以通过使用VTK查看器来实现。例如:

3)将查看器的图像另存为PNG文件。
最后一步也可以使用VTKviewer实现。例如:

现在我了解了TriScatteredInterp在Matlab中的工作原理

我们有nx3维的x,y,z点。所有这些点,我们需要在C++中实现Delaunay三角形。这很容易

然后,对于所有需要的网格点x',y',请搜索x',y'所在的三角形。然后在三角形中进行重心插值,如图所示。对于这些x,y,你会得到z

这就是我们在C++中对TriScatteredInterp所做的一切。 你会得到一个x',y',z'的矩阵,然后我按照@Deepfreeze的想法使用PCL绘图。我们也可以使用OpenGl进行绘图


它不仅限于Delaunay三角剖分,还需要进行插值。

你们找过Delaunay三角剖分吗?我知道。如何做插值。非常感谢我需要这样的建议。Matlab做Delaunay三角剖分。然后对这些点进行线性插值。