2016-05-24 250 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)