我有一个三维生成的车辆体素模型,体素的坐标在车辆参考框架中。原点在地板的中央。看起来是这样的:
数组([-2.88783681,-0.79596956,0., -2.8752784 -0.79596956,0 2.86271998,-0.79596956,0 ... 2.83880176,0.89941685,1.98423003, 2.85136017,0.89941685,1.98423003, ( 2.86391859,0.89941685,1.98423003])
然后我创建了一个0和1的网格。
ux = np.unique (voxels[:,0])
uy = np.unique (voxels[:,1])
uz = np. unique (voxels[:,2])
X, Y, Z = np.meshgrid(ux, uy, uz)
V = np.zeros(X. shape)
N = voxels.shape [0]
for ii in range(n):
ix = ux == voxels[ii,]
iy = uy == voxels[ii, 1]
iz = uz == voxels[ii,2]
V[iy, ix, iz] = 1然后调用行军立方体算法生成体素模型的网格。
marching_cubes = measure.marching_cubes_lewiner (v, o, spacing=(voxel_size, voxel_size, voxel_size))
verts = marching_cubes[0]
faces = marching cubes[1]
normals = marching_cubes[2]当我打印出顶点时,坐标如下:
数组([2.78852894e-18,4.39544627e-01,3.39077284e-01], 1.25584179-02,4.39544627e-01,3.26518866 e-01, 1.25584179-02,4.26986209e-01,3.39077284e-01, 1.72050325e+00,1.26840021e+00,2.76285194-01 1.72050325e+00,1.26840021e+00,2.88843612e-01, 1.72050325e+00,1.26840021e+00,3.014020302-01])
在文档中,它说verts不过是“V唯一网格顶点的空间坐标”。但是坐标是什么意思呢?它是在什么坐标系中?
我计划将网格投影到车辆的图像上,我生成了体素模型。在这种情况下,如何进行坐标变换?(我已经成功地将体素投射到图像上)
发布于 2022-01-07 22:59:53
verts只是太空中的点。从本质上说,每个管道都是某个三角形的一个角(通常大于1)。
要知道实际的三角形是什么,你要看的面孔是什么样子的:
[(v1, v2, v3), (v1, v4, v5), ...]列表中的每一个元组都包含3个verts索引。例如:
verts[v1], verts[v2], verts[v3]是太空中的一个三角形。
https://stackoverflow.com/questions/70628013
复制相似问题