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