These are not viewer classes, they are just rendering classes and are therefore completely agnostic with regards to DICOM.<div><br></div><div>But for the record, I do not understand all the difficulty people have with this issue.  When I view DICOM images, I just do the following:</div>

<div>1) I equate the VTK world coordinate system with the DICOM patient coordinate system</div><div>2) I set the data-to-world transform from the information in the DICOM header</div><div>3) I set up the camera in my viewer to display the image in the desired orientation</div>

<div><br></div><div>So please let me go on the record as saying that there is no &quot;difference between VTK coords and DICOM coords&quot;.  That is a vicious rumour that people spread for reasons that are beyond me.  You can define the VTK world coordinate system to be whatever you want.</div>

<div><br></div><div>The problems that people have are due to the following:</div><div>1) The VTK image readers and importers don&#39;t deal with DICOM image orientation correctly</div><div>2) The vtkImageViewer does not deal with DICOM image orientation correctly</div>

<div>3) For each image, you must keep a 4x4 matrix describing the DICOM orientation</div><div><br></div><div>If someone were to fix the readers and the viewer, this DICOM vs. VTK issue would mostly disappear.</div><div><br>

</div><div>Regarding the second question, it&#39;s not up to me when these go into a stable release, Kitware controls the release schedule ;)</div><div><br></div><div> - David</div><div><br></div><div><br><br><div class="gmail_quote">

On Mon, Jun 27, 2011 at 8:34 AM, Jothy <span dir="ltr">&lt;<a href="mailto:jothybasu@gmail.com">jothybasu@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;">

<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><font color="#888888"><br>Jothy</font><div><div></div><div class="h5"><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" target="_blank">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" target="_blank">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" target="_blank">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" target="_blank">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></div></div>
</blockquote></div><br></div>