我有一个 3D 数组 a
a 是一个形状为 (512, 512, 133)) 的 numpy 数组,它在某个区域包含非零值。



如果我知道像素间距 (0.7609, 0.7609, 0.5132),那么如何在 python 中找到实际体积?

最佳答案


在 numpy 数组中获取 amount of non-zero elements

import numpy as np
units = np.count_nonzero([[[ 0.,  0.],
                           [ 2.,  0.],
                           [ 0.,  3.]],

                          [[ 0.,  0.],
                           [ 0.,  5.],
                           [ 7.,  0.]]])
# will output 4
如果您知道两个像素之间的间距 s,则像素的体积计算为正方形的体积(像素体积)乘以您之前确定的像素数量。
volume = units * pow(s, 3)
更新:
由于您的间距 (s1, s2, s3) 在您的 3 个维度中不是等距的,因此体积将变为
volume = units * s1 * s2 * s3
# volume = 4 * 0.7609 * 0.7609 * 0.5132

关于python - python中3D numpy数组的体积计算?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57723144/

10-12 06:54