[vtkusers] Extract Data from vtkImageReslice to numpy array

Eric E. Monson emonson at cs.duke.edu
Tue Jun 30 12:25:49 EDT 2009


Try image_point_data = reader.GetOutput().GetPointData() and print  
that -- the real data is probably in arrays there.

-Eric


On Jun 30, 2009, at 12:09 PM, Peter Bloomfield wrote:

> Hi,
>
> I just tried the following,
>
> I read my flat image data (I assume)
> 	reader = vtk.vtkImageReader2()
> 	reader.SetFileName("MyImage.img")
> 	reader.SetDataExtent(0, 255, 0, 255, 0, 206)
> 	reader.SetDataSpacing(1.218750, 1.218750, 1.218750)
> 	reader.SetDataOrigin(0.0, 0.0, 0.0)
> 	reader.SetDataScalarTypeToFloat()
> 	reader.SetFileDimensionality(3)
> 	reader.Update()
>
> and then tried the following
> 	image_cells = reader.GetOutput().GetCellData()
> 	print image_cells
> 	vtkCellData (0x833e630)
> 	  Debug: Off
> 	  Modified Time: 211
> 	  Reference Count: 2
> 	  Registered Events: (none)
> 	  Number Of Arrays: 0
> 	  Number Of Components: 0
> 	  Number Of Tuples: 0
> 	  Copy Tuple Flags: ( 1 1 1 1 1 0 1 )
> 	  Interpolate Flags: ( 1 1 1 1 1 0 0 )
> 	  Pass Through Flags: ( 1 1 1 1 1 1 1 )
> 	  Scalars: (none)
> 	  Vectors: (none)
> 	  Normals: (none)
> 	  TCoords: (none)
> 	  Tensors: (none)
> 	  GlobalIds: (none)
> 	  PedigreeIds: (none)
>
> So have i actually loaded the image data and is image_cells empty?
>
> Thanks for your help
>
> Peter
>
>
> On Tuesday 30 June 2009 10:35:53 am Eric E. Monson wrote:
>> Hey Peter,
>>
>> There is a handy set of utilities for converting between vtkDataArray
>> (e.g. vtkDoubleArray, vtkIntArray) and numpy arrays called
>> numpy_support that may help you. Try something like this:
>>
>> import vtk
>> import vtk.util.numpy_support as VN
>>
>> reader = vtk.vtkXMLImageDataReader()
>> reader.SetFileName('chombo3d_1.vti')
>> reader.Update()
>> image_cells = reader.GetOutput().GetCellData()
>> phi_array = VN.vtk_to_numpy(image_cells.GetArray('phi'))
>>
>> Note that numpy_to_vtk() is also in there. There may be other nice
>> tricks, but I find this module very useful.
>>
>> Good luck,
>> -Eric
>>
>> ------------------------------------------------------
>> Eric E Monson
>> Duke Visualization Technology Group
>>
>> On Jun 30, 2009, at 9:54 AM, Peter Bloomfield wrote:
>>> Hello,
>>>
>>> I am new to VTK, so if this has been asked before I apologise.
>>>
>>> I am trying to use VTK from within Python. I successfully downloaded
>>> and
>>> compiled VTK V5.4.2 including the python wrappings/bindings, and
>>> issuing
>>> 'import vtk' from within python works good.
>>>
>>> Initially I want to do is take a volume of data (float), re-slice it
>>> in an
>>> arbitrary orientation and then extract the re-sliced plane from vtk
>>> and return
>>> it to a numpy array.
>>>
>>> I am using vtk.vtkImageReslice(), but do not know how to get the
>>> data out from
>>> here.
>>>
>>> Does anyone have any suggestions of how I can achieve this? I have
>>> tried
>>> looking at vtkImageExportToArray but have no idea how to use this
>>> from within
>>> python.
>>>
>>> Many thanks
>>>
>>>
>>> Peter
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Please keep messages on-topic and check the VTK FAQ at:
>>> http://www.vtk.org/Wiki/VTK_FAQ
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.vtk.org/mailman/listinfo/vtkusers
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers




More information about the vtkusers mailing list