【发布时间】:2019-03-12 12:10:18
【问题描述】:
我有一个椭圆体的 3d 蒙版。我已经使用np.argwhere 提取了掩码的坐标。坐标可以指定为 x、y、z,如示例代码中所示。我的问题是如何从坐标 x、y、z 取回我的面具(以 3d numpy 或相同形状的布尔数组的形式)?
import numpy as np
import scipy
import skimage
from skimage import draw
mask = skimage.draw.ellipsoid(10,12,18)
print mask.shape
coord = np.argwhere(mask)
x = coord[:,0]
y = coord[:,1]
z = coord[:,2]
上面的代码给了我形状 (23, 27, 39) 的布尔掩码,现在我想使用 x、y、z 坐标构造完全相同形状的相同掩码。怎么办?
我想稍微修改一下上面的问题。现在,如果我使用四元数旋转我的坐标,这将给我一组新的坐标,然后用新的坐标 x1,y1,z1 我想将形状 (23,27,39) 的布尔掩码构造为原始掩码的布尔掩码?怎么办?
import quaternion
angle1 = 90
rotation = np.exp(quaternion.quaternion(0,0, 1) * angle1*(np.pi/180) / 2)
coord_rotd = quaternion.rotate_vectors(rotation, coord)
x1 = coord_rotd[:,0]
y1 = coord_rotd[:,1]
z1 = coord_rotd[:,2]
【问题讨论】:
-
请去掉字体的粗体 :-)
标签: python numpy mask quaternions scikit-image