2016-05-24 196 views
0

我想获得vtkImageData的坐标,但找不到任何方法来实现它。例如,给定一个vtkImageData对象,称为image,我知道我能得到这样的体素值:通过vtkimagedata从体素获取坐标

image = vtk.vtkImageData() 
voxels = image.GetPointData().GetScalars() 

是否有会返回一个特定的体素或全部的体素的坐标的坐标的方法?例如,考虑到3D图像,如果在voxels有3个体素值,我会得到那些体素的坐标,就像在一个列表,例如:

[[12,120,3],[14,20,3][119, 34, 3]] 

任何提示?

回答

1

下面的代码通过一个3D体积内的所有值将循环和提取值,看ScalarPointer和GetScalarComponent文档中作进一步的帮助

x_dim, y_dim, z_dim = image.GetDimensions() 

for x in xrange(x_dim): 
    for y in xrange(x_dim): 
     for z in xrange(x_dim): 
      val = image.GetScalarComponentAsFloat(x,y,z)