[vtkusers] Announcement: New image rendering classes for VTK

Lic. José M. Rodriguez Bacallao jmrbcu at gmail.com
Mon Jun 27 10:41:41 EDT 2011


ooohh, I wonder that too!!!

On 6/27/11, Jothy <jothybasu at gmail.com> wrote:
> I wonder whether these classes has any fix for the different coordinates
> used by DICOm and vtk?
>
> Thank you
>
> Jothy
>
> On Mon, Jun 27, 2011 at 3:31 PM, Lic. José M. Rodriguez Bacallao <
> jmrbcu at gmail.com> wrote:
>
>> so, when this classes will be available in stable vtk?
>>
>> right now I am working with an snapshot from vtk git.
>>
>> On 6/27/11, Aashish Chaudhary <aashish.chaudhary at kitware.com> wrote:
>> > Hi David,
>> >
>> > What Aaron said  +  Awesome!! (one more time)
>> >
>> > Looking at the features list, I think our project will be greatly
>> > benefited by your work. Thanks for sharing your work.
>> >
>> > Regards,
>> > Aashish
>> >
>> >
>> > On Mon, Jun 27, 2011 at 8:47 AM, Aaron Boxer <boxerab at gmail.com> wrote:
>> >> Awesome!!! Nice work; can't wait to use these classes.
>> >>
>> >> Aaron
>> >>
>> >> On Sun, Jun 26, 2011 at 6:15 PM, David Gobbi <david.gobbi at gmail.com>
>> >> wrote:
>> >>> I'm pleased to announce that I have finally completed my work on
>> several
>> >>> new
>> >>> image rendering classes for VTK.  They are in the VTK git development
>> >>> tree,
>> >>> and a few of you have already tried them out (if you are one of those
>> >>> people, note that several feature and performance enhancements were
>> added
>> >>> last week).  More info can be found at the following wiki page:
>> >>>
>> >>> http://www.vtk.org/Wiki/VTK/Image_Rendering_Classes
>> >>>
>> >>> In brief, these classes replace vtkImageActor and provide a much
>> >>> higher
>> >>> level of functionality.  They are new VTK actor and mapper classes
>> >>> specifically meant for image viewing.  What they are not: they are not
>> >>> widgets or viewers, although they provide machinery that can be used
>> >>> to
>> >>> write widget and viewer classes.  In other words, they are meant for
>> >>> people
>> >>> who like to roll their own image viewers.
>> >>>
>> >>> The three new classes that I recommend for people to use are the
>> >>> following:
>> >>> vtkImageSlice - the new actor class for images
>> >>> vtkImageResliceMapper - mapper for drawing images for MPR viewers
>> >>> vtkImageProperty - for controlling lookup tables, window/level,
>> opacity,
>> >>> etc
>> >>>
>> >>> Typical use cases:
>> >>>
>> >>> 1) For an MPR viewer, use vtkInteractorStyleImage and set it to your
>> >>> desired
>> >>> view orientation. Then set the following properties in
>> >>> vtkImageResliceMapper:
>> >>> mapper->SliceFacesCameraOn()
>> >>> mapper->SliceAtFocalPointOn()
>> >>> The interactor will then allow you to pan, zoom, window/level, and (in
>> 3D
>> >>> mode) rotate and slice.  See
>> >>> VTK/Examples/ImageProcessing/ImageInteractorReslice.py for an example.
>> >>>
>> >>> 2) For a 3D ortho object, use multiple vtkImageResliceMapper objects,
>> and
>> >>> for each one make a vtkPlane that describes the normal and position of
>> >>> the
>> >>> slice to extract. Then call these methods:
>> >>> mapper->SetSlicePlane(plane)
>> >>> mapper->ResampleToScreenPixelsOff()
>> >>> Turning the "ResampleToScreenPixels" option Off makes rotation faster,
>> so
>> >>> it
>> >>> is recommended when rotations are going to be common operations.
>> >>>  Example:
>> >>> VTK/Rendering/Testing/Cxx/TestImageResliceMapperOffAxis.cxx
>> >>>
>> >>> Features:
>> >>> 1) oblique views (obviously!)
>> >>> 2) nearest-neighbor, linear, and cubic interpolation
>> >>> 3) modify image orientation with respect to world coords by setting
>> >>> vtkImageSlice's UserMatrix
>> >>> 4) fully multi-threaded reslicing and color mapping operations
>> >>> 5) streaming, i.e. only pulls the data needed for rendering
>> >>> 6) works well with very large images (as long as they fit in memory)
>> >>> 7) LOD-style interaction (switches to faster rendering for
>> >>> interaction)
>> >>> 8) blend images by adding multiple vtkImageSlice objects to a
>> >>> vtkImageStack
>> >>> 9) checkerboard images by setting "CheckerboardOn" in the
>> >>> vtkImageProperty
>> >>> 10) thick-slab views (see vtkImageResliceMapper for details)
>> >>> 11) works with vtkCellPicker for picking image voxels as points or
>> cells
>> >>>
>> >>> For large image viewing, on a 4GB computer (64-bit OS X) I've
>> >>> displayed
>> >>> images up to 3GB in size with full interactivity, but YMMV.  As long
>> >>> as
>> >>> the
>> >>> mapper's ResampleToScreenPixels option is On, the mapper will never
>> >>> try
>> >>> to
>> >>> load the full image onto the GPU (which is what causes the
>> vtkImageActor
>> >>> to
>> >>> be slow for large images).  The size of the images that you can
>> >>> display
>> >>> is
>> >>> limited only by main memory, I have displayed stacks of RGB images
>> >>> that
>> >>> are
>> >>> 10000x10000 pixels in size.
>> >>>
>> >>> I do not plan to push these into the VTK 5.8 release (even if Kitware
>> >>> were
>> >>> to give me the go-ahead), because the VTK development tree has
>> >>> diverged
>> >>> too
>> >>> far from the VTK 5.8 release tree.  These new image classes are only
>> >>> possible due to recent improvements that I've made to the picker,
>> lookup
>> >>> table, and image reslice classes and they probably depend on a handful
>> of
>> >>> recent changes made by other people, as well.
>> >>>
>> >>>  - David
>> >>> _______________________________________________
>> >>> 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
>> >>
>> >
>> >
>> >
>> > --
>> > | Aashish Chaudhary
>> > | R&D Engineer
>> > | Kitware Inc.
>> > | www.kitware.com
>> > _______________________________________________
>> > 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
>> >
>>
>>
>> --
>> Lic. José M. Rodriguez Bacallao
>> Centro de Biofisica Medica
>> -----------------------------------------------------------------
>> Todos somos muy ignorantes, lo que ocurre es que no todos ignoramos lo
>> mismo.
>>
>> Recuerda: El arca de Noe fue construida por aficionados, el titanic
>> por profesionales
>> -----------------------------------------------------------------
>> _______________________________________________
>> 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
>>
>


-- 
Lic. José M. Rodriguez Bacallao
Centro de Biofisica Medica
-----------------------------------------------------------------
Todos somos muy ignorantes, lo que ocurre es que no todos ignoramos lo mismo.

Recuerda: El arca de Noe fue construida por aficionados, el titanic
por profesionales
-----------------------------------------------------------------



More information about the vtkusers mailing list