我正在使用win10、python和c#。我想用点云或像.stl .obj .ply这样的3d扫描来计算人体部位(腹部、二头肌等)的周长。现在我可以用kinect v2获得人体的点云。我有点云的人体,扫描三维人体的.stl .obj .ply格式。
我需要一些关于它的想法和信息。我不知道如何分析我所拥有的东西,以及如何计算我想要的东西。
这里我找到了一个例子,说明我正在尝试做什么,但它不需要像这样完全稳定,这是一个学校的家庭作业。也许你可以给我一些关于如何实现我的目标的想法。谢谢你的帮助。
我使用kinect v2获取3d扫描对象,并使用PCL将其转换为点云。
发布于 2019-06-18 13:52:09
我不知道如何在Python或C#中使用PCL。一般来说,您将看到以下步骤:
如果您只对Python感兴趣,那么OpenCV可能是最好的选择。您还可以在C++中开发核心逻辑,并将其包装为Python或C#。C++也有一些不错的UI库(Qt,奈诺圭),请参阅下面的详细信息来实现这个目标
过滤
CropBox或PassThrough可用于此。它将导致类似的结果,如图像中所示,假设框架已被正确选择。如果不是,点云可以很容易地成为变身。
分割形状
假设你想要一个平均圆周,你可能需要实验圆圈2D,圆圈3D和圆柱模型。关于使用和API的更多细节是这里。选择的方法可以是简单的SAC (样本一致性),如RANSAC (随机SAC),也可以是高级的方法,如LMEDS (最小二乘)或MLESAC (最大似然估计SAC)。
参数提取
所有模型都有一个半径场,可以用标准公式(2*pi*r)求出圆周。
免责声明:请注意它的形状是圆形的,而不是椭圆的,圆柱体是直角的。因此,如果测量的物体(手臂或二头肌)不是圆形的,那么在极端情况下,计算值可能不接近地面真相。
https://stackoverflow.com/questions/56647214
复制相似问题