亲爱的Python社区
我想在称为n1的3D体积中计算白色相的体积/表面(体素值= 1)。我是这样计算体积的:
flatten_array = n1.flatten()
white_vx_nb = np.bincount(flatten_array)[1]
对于我编码的表面:
verts, faces, normals, values = measure.marching_cubes_lewiner(n1)
surf_area = measure.mesh_surface_area(verts, faces)
知道n1.shape是 (1080、1280、1280),每个体素都是100nm /边缘立方体
因此,我先使用skimage.measure.marching_cubes_lewiner,然后使用skimage.measure.mesh_surface_area,它的工作原理很吸引人,但我对表面单元不满意。在文档中这样写: “网格的表面积。现在的单位[坐标单位] ** 2”和“对于正确的单位输出,请确保将正确的间距传递给skimage.measure.marching_cubes。” 间距定义为“间距:浮点数的长度为3的元组 在空间尺寸上的体素间距与体积中对应的numpy数组索引尺寸(M,N,P)相对应。”
以下反射对您来说是否正确?
[坐标单位] ** 2表示[1体素边缘] ** 2?所以说surf_area = 45805036意味着45805036 * 100 ** 2 nm2
体积为385988657 * 100 ** 3 nm3
所以我的特征长度是(385988657 * 100 ** 3/45805036 * 100 ** 2)nm = 842.68 nm
谢谢您的帮助
Chloe