3d将x,y,z坐标转换为3d numpy数组

时间:2019-03-12 12:10:19

标签: python numpy mask quaternions scikit-image

我有一个椭圆形的3d蒙版。我已经使用0提取了遮罩的坐标。如示例代码中所示,可以将坐标指定为x,y,z。我的问题是如何从坐标x,y,z中取回蒙版(以相同形状的3d numpy或布尔数组的形式)?

df

上面的代码为我提供了形状为(23,27,39)的布尔掩码,现在我想使用x,y,z坐标构造完全相同形状的相同掩码。怎么办?

我想稍微修改一下问题。现在,如果我使用四元数旋转坐标,这将给我一组新的坐标,然后使用新的坐标x1,y1,z1,我想构造形状为(23,27,39)的布尔蒙版,就像原始蒙版一样?那怎么办?

np.argwhere

1 个答案:

答案 0 :(得分:0)

如果您知道旧面具的形状,请尝试以下操作:

new_mask = np.full(old_mask_shape, True) # Fill new_mask with True everywhere
new_mask[x,y,z] = False                  # Set False for the ellipsoid part alone

注意:

  1. old_mask_shape应该与要在其上应用遮罩的图像的形状相同
  2. 如果您要使用True而不是False的蒙版(如果您希望将椭圆形部分设为True且在其他任何地方False),只需交换{{1上面两行代码中的}}和True