[vtkusers] Overlay slice on vtkResliceImageViewer and change slice when scrolling

David Gobbi david.gobbi at gmail.com
Thu Feb 22 13:28:38 EST 2018


On Thu, Feb 22, 2018 at 10:12 AM, ochampao <ochampao at hotmail.com> wrote:

> I have also tried using vtkImageResliceMapper and vtkImageSlice, but
> unfortunately I was not able to make it work.
>

The best example to work from is the following VTK test code:
https://github.com/Kitware/VTK/blob/master/Rendering/Image/Testing/Cxx/TestImageResliceMapperAlpha.cxx

It shows a grid on top of an image, but you could modify it to load two
images.  Also, the interactor style can be changed as follows, which
will allow you to slice though the volumes simultaneously by holding
"Ctrl" while dragging the mouse:

  vtkInteractorStyleImage *style = vtkInteractorStyleImage::New();
  style->SetInteractionModeToImageSlicing();

For overlay, there is also a class called vtkImageStack that makes
image overlay more robust (it takes care of Z-buffer issues):
https://lorensen.github.io/VTKExamples/site/Cxx/Images/ImageStack/
Also see the overview of vtkImageSlice and vtkImageResliceMapper:
https://www.vtk.org/Wiki/VTK/Image_Rendering_Classes

There is also some test code that shows vtkImageStack in a different
configuration, where it shows a set of orthoplanes in a 3D view:
https://github.com/Kitware/VTK/blob/master/Rendering/Image/Testing/Cxx/TestImageStack.cxx


Is this only possible by writing my own vtkImageInteractionCallback that
> wheel handle, for example, vtkCommand::MouseWheelBackwardEvent in order to
> change both slices at the same time?
>

If you use vtkImageResliceMapper, then probably the best option is to
customize vtkInteractorStyleImage e.g. via subclassing and then modify
its code to achieve exactly the kind of interaction you want.

Cheers,
 - David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://vtk.org/pipermail/vtkusers/attachments/20180222/b9a34833/attachment.html>


More information about the vtkusers mailing list