【发布时间】:2012-12-29 07:52:02
【问题描述】:
我在这个网站上搜索了很多,研究了类似的问题,并使用了给出的答案代码,但没有一个有效。所以我不得不问这个问题:
我有一个点云(一组 XYZ 用于 3D 表面)。 它们实际上属于 3D 人体表面(胸部和背部)。 我想在 MATLAB 中使用这些点制作 3D 曲面。 我尝试了很多方法,但不幸的是没有一个奏效。
如果有人能在这件事上为我提供一些帮助,我将不胜感激。 谢谢你
其实我自己也得到了这个问题的答案!!但我并不完全确定。
我必须定义这些点如何通过面矩阵连接。像这样:
Faces = [ 1 2 6 ; 1 2 4 ; 1 3 9 ; 2 6 8 ; ... ] ;
这意味着例如点 1、2、6 作为一个面相互连接。 定义完 Face 矩阵后,我必须使用 patch 函数根据点(顶点)矩阵和给定的 faces 矩阵制作一个 3D 表面。
此类事情的示例代码可能是这样的:
patch('Vertices', P, 'Faces', t);
或
patch('Faces', t, 'Vertices', P, 'FaceColor', [1 0.75 0.65], 'EdgeColor', 'k', 'FaceAlpha', 1.0);
但是,我现在面临一个新问题,生成人脸矩阵!
有人知道吗?
谢谢
【问题讨论】:
-
至少展示您尝试过的许多方法中的一些怎么样?
-
这些是一些:meshgrid,散射插值,conv hull,delaunay,. . . !!
-
是的,告诉我们您尝试了什么。这实际上是一个经过充分研究的问题。已经发表了许多论文,并为此主题申请了专利。一种方法是将点云转换为体积并使用等值面提取 (mathworks.com/help/matlab/ref/isosurface.html)。还有很多其他方法。
-
如果您能在此处回答我或将我引导至 mathworks.com 以外的其他链接,我将不胜感激;不幸的是,我现在无法访问 mathworks.com。谢谢
-
"没有工作"...嗯,这真的取决于你认为什么是“工作”;我无法想象像TriScatterInterp 这样的东西会算作“不工作”,所以请描述一下你认为什么算作“工作”:)
标签: matlab 3d cloud point geometry-surface