我有一个具有所有八个角顶点坐标的长方体
(-111.2433, -70.9316, -26.2690)
(-111.2433, -70.9316, 80.8608)
(-111.2433, 71.5288, 80.8608)
(103.3007, 71.5288, -26.2690)
(103.3007, -70.9316, -26.2690)
(103.3007, -70.9316, 80.8608)
(103.3007, 71.5288, 80.8608)
我想在此体积内创建体积为1m x 1m x 1m]的3D体素,并保存其中心坐标。我尝试使用np.meshgrid()
进行以下操作。
x_max = -1000000 y_max = -1000000 z_max = -10000000 x_min = 1000000 z_min = 1000000 y_min = 10000000 for v in vertices: x = v[0] y = v[1] z = v[2] x_max = max(x_max ,x) x_min = min(x_min , x) y_max = max(y_max ,y) y_min = min(y_min , y) z_max = max(z_max ,z) z_min = min(z_min , z) xdim = list(range(int(x_min) , int(x_max) , 1)) ydim =list(range(int(y_min) , int(y_max) , 1)) zdim =list(range(int(z_min) , int(z_max) , 1)) grid = np.array(np.meshgrid(xdim , ydim , zdim)).T.reshape(3 , -1)
xdim
,ydim
,zdim
是列表,其中包括所有框坐标系中的所有坐标系,np.mehsgrid()
基本上取所有这些坐标系的笛卡尔积,从而使我们得到(x , y, z)
坐标系看起来像这样的所有体素中心。
array([[-111, -70, -26], [-111, -64, -26], [-111, -57, -26], ..., [ 103, 55, 80], [ 103, 62, 80], [ 103, 71, 80]])
我认为我的实现可能效率低下,所以任何帮助都将有所帮助!
我有一个长方体,其所有八个角顶点坐标(-111.2433,-70.9316,-26.2690)(-111.2433,-70.9316、80.8608)(-111.2433、71.5288、80.8608)(103.3007、71.5288,-26.2690)(103.3007 ,-70 ....
如果将顶点转换为int64类型的numpy数组,则可以大大简化: