How to convert a 3D vtkDataSet into a numpy array?

烈酒焚心 提交于 2019-12-06 02:10:11
    pixelspace = reader.GetPixelSpacing()
    spacing = image.GetSpacing()

    vtk_data = image.GetPointData().GetScalars()

    numpy_data = numpy_support.vtk_to_numpy(vtk_data)

    numpy_data = numpy_data.reshape(dims[0], dims[1], dims[2])
    numpy_data = numpy_data.transpose(2,1,0)

    dims = numpy_data.shape

    dataImporter = vtkImageImport()
    dataImporter.SetDataScalarTypeToFloat() 
    dataImporter.SetNumberOfScalarComponents(1)
    dataImporter.SetDataExtent(0, dims[2]-1, 0, dims[1]-1, 0, dims[0]-1)
    dataImporter.SetWholeExtent(0, dims[2]-1, 0, dims[1]-1, 0, dims[0]-1)
    dataImporter.SetDataSpacing(spacing[0],spacing[1],spacing[2])
    dataImporter.CopyImportVoidPointer(numpy_data, numpy_data.nbytes)
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!