python - 计算两个平面之间形状的体积
问题描述
我有一个 3D 形状,由点云(图中的蓝点)表示。具体来说,我正在处理 MRI 数据,其中每个点都是一个具有特定分割标签的体素。这片云被两个相互平行的平面相交。我想找到由两个平面之间的点形成的形状的体积(图中的橙色)。
我最初的方法是“计算平面之间的点”,即至少部分包含的所有体素,但这不是精确的体积计算,因为一些体素与平面相交,因此仅部分包含. 例如,如果一个体素与平面相交,因此它的一半在平面下方,那么我想在我的体积计算中计算 0.5 而不是计算整个体素。
我研究了凸包和凹包,但我认为这对我来说不是正确的方法,因为我只对平面之间的体素的确切数量感兴趣,并且使用凸包会伪造体积。
有没有比遍历所有体素并准确计算平面与它们相交的位置更好的方法呢?或者有谁知道这个的现有实现,最好是在 python 中?
解决方案
我建议采用下一个最简单的方法来获得更好的数字,而无需进行大量额外的蛮力数学运算。平均而言,任何相交的体素都会在中间被切割。如果有很多被切割,那么这个假设很可能是正确的,你只需将所有接触的平面算作它们体积的一半。
推荐阅读
- nodes - 更新 cytoscape.js 中的图表:节点位置未更新
- azure - 带有 WHERE 子句的 Azure Log Analytics 查询不会产生任何结果
- wordpress - 如何在 wordpress 的旋转滑块中添加播放/暂停按钮
- terminal - 从特定文件中获取值并在终端中显示交换的值
- android - 有时 ImageView 显示为黑色
- python - Anaconda 警告 conda.common.logic:get_sat_solver_cls(278)
- apache-flex - Adobe Flex 数据宽度问题
- php - Wordpress / PHP:检查帖子是否仅属于一个类别
- r - 循环多个具有相同名称但不同后缀的变量
- javascript - 如何简化包含大量 if 语句的代码以及如何更快地更改图像