首页 > 解决方案 > 计算两个平面之间形状的体积

问题描述

我有一个 3D 形状,由点云(图中的蓝点)表示。具体来说,我正在处理 MRI 数据,其中每个点都是一个具有特定分割标签的体素。这片云被两个相互平行的平面相交。我想找到由两个平面之间的点形成的形状的体积(图中的橙色)。

我最初的方法是“计算平面之间的点”,即至少部分包含的所有体素,但这不是精确的体积计算,因为一些体素与平面相交,因此仅部分包含. 例如,如果一个体素与平面相交,因此它的一半在平面下方,那么我想在我的体积计算中计算 0.5 而不是计算整个体素。

我研究了凸包和凹包,但我认为这对我来说不是正确的方法,因为我只对平面之间的体素的确切数量感兴趣,并且使用凸包会伪造体积。

有没有比遍历所有体素并准确计算平面与它们相交的位置更好的方法呢?或者有谁知道这个的现有实现,最好是在 python 中?

数据和飞机的图片

标签: pythongeometryvolumenifti

解决方案


我建议采用下一个最简单的方法来获得更好的数字,而无需进行大量额外的蛮力数学运算。平均而言,任何相交的体素都会在中间被切割。如果有很多被切割,那么这个假设很可能是正确的,你只需将所有接触的平面算作它们体积的一半。


推荐阅读