[vtkusers] how to display a serie of XA multiframe images
José M. Rodriguez Bacallao
jmrbcu at gmail.com
Fri Jul 6 09:51:45 EDT 2012
and if I am not using any lookup table, for example, this is my test
source code, how do I change from one multiframe image to another as I
cannot use SetVectorComponent(n)?:
import os, sys
import vtk, vtkgdcm, gdcm
if __name__ == '__main__':
# 2 XA multiframe images
path = '/home/jmrbcu/temp/images/XA'
print 'Reading files from %s' % path
files = os.listdir(path)
files = [os.path.join(path, x) for x in files]
appender = vtk.vtkImageAppendComponents()
for name in files:
reader = vtkgdcm.vtkGDCMImageReader()
reader.SetFileName(name)
appender.SetInput(reader.GetOutput())
appender.Update()
ren1 = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren1)
im = vtk.vtkImageResliceMapper()
im.SetInput(appender.GetOutput())
im.SliceFacesCameraOn()
im.SliceAtFocalPointOn()
im.BorderOff()
ip = vtk.vtkImageProperty()
ip.SetColorWindow(255)
ip.SetColorLevel(128)
ip.SetAmbient(0.0)
ip.SetDiffuse(1.0)
ip.SetOpacity(1.0)
ip.SetInterpolationTypeToLinear()
ia = vtk.vtkImageSlice()
ia.SetMapper(im)
ia.SetProperty(ip)
print ip.GetLookupTable()
ren1.AddViewProp(ia)
ren1.SetBackground(0, 0, 0)
renWin.SetSize(400, 400)
iren = vtk.vtkRenderWindowInteractor()
style = vtk.vtkInteractorStyleImage()
style.SetInteractionModeToImageSlicing()
style.SetCurrentRenderer(ren1)
iren.SetInteractorStyle(style)
renWin.SetInteractor(iren)
cam = ren1.GetActiveCamera()
cam.ParallelProjectionOn()
ren1.ResetCameraClippingRange()
ren1.ResetCamera()
renWin.Render();
iren.Start()
by the way, Mathieu, this XA multiframe images when displaying it with
gdcmviewer a lot of frames in the middle show black, I could send it
to you to see if you got this behavior.
On Thu, Jul 5, 2012 at 12:35 PM, David Gobbi <david.gobbi at gmail.com> wrote:
> A trick that I've used for multi-frame images in VTK is to read them
> separately, and then combine them into a single image with
> vtkImageAppendComponents. The result is a multi-component image
> where each component represents a different frame. When these
> multi-component images are displayed, you can control which component
> is displayed by calling SetVectorComponent(i) on the lookup table that
> you are using for the images.
>
> In other words, the multi-frame image is multiplexed into a multi-
> component image. Dealing with multi-component images in VTK is
> fairly straightforward.
>
> - David
>
>
> On Thu, Jul 5, 2012 at 10:18 AM, José M. Rodriguez Bacallao
> <jmrbcu at gmail.com> wrote:
>> hi folks, this question may seen obvious but, how to correctly display
>> a serie of XA multiframe images (17 multiframe images) with vtk, The
>> images are read with gdcm vtk reader (vtkGDCMImageReader) one by one
>> because this reader does not support the reading of multiframe image
>> series.
More information about the vtkusers
mailing list