<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:"Times New Roman", serif;font-size:12pt"><DIV>Hello!<BR><BR>What you have about connection  ITK to VTK said, I have made. But the result is still a 2D image not 3D. How do I change my code so I get 3D image with colors? 
<BR> <BR>My result:
<BR><SPAN> <A rel="nofollow" target="_blank" href="http://img246.imageshack.us/my.php?image=watershed.jpg">http://img246.imageshack.us/my.php?image=watershed.jpg</A></SPAN><BR> <BR>My goal: <BR><SPAN><A rel="nofollow" target="_blank" href="http://www.cs.uni-paderborn.de/fileadmin/Informatik/AG-Domik/bachelor_thesis/bolte/coronary_watershed.jpeg">http://www.cs.uni-paderborn.de/fileadmin/Informatik/AG-Domik/bachelor_thesis/bolte/coronary_watershed.jpeg</A></SPAN><BR>
 <BR> <BR>Sorry, I am new with ITK.<BR><BR><BR>My codes:<BR><BR><BR>  typedef unsigned char    PixelType;<BR>  const unsigned int      Dimension = 3;<BR><BR>  typedef itk::OrientedImage&lt; PixelType, Dimension &gt;    ImageType;<BR>  typedef itk::ImageSeriesReader&lt; ImageType &gt;   ReaderType;<BR>  ReaderType::Pointer reader = ReaderType::New();<BR><BR>  typedef itk::GDCMImageIO     ImageIOType;<BR>  ImageIOType::Pointer dicomIO = ImageIOType::New();<BR>  <BR>  reader-&gt;SetImageIO( dicomIO );<BR><BR>  typedef itk::GDCMSeriesFileNames NamesGeneratorType;<BR>  NamesGeneratorType::Pointer nameGenerator = NamesGeneratorType::New();<BR><BR>  nameGenerator-&gt;SetUseSeriesDetails( true );<BR>  nameGenerator-&gt;AddSeriesRestriction("0008|0021" );<BR><BR>  nameGenerator-&gt;SetDirectory(
 selectedDirectory);<BR><BR>  typedef std::vector&lt; std::string &gt;    SeriesIdContainer;<BR>    <BR>    const SeriesIdContainer &amp; seriesUID = nameGenerator-&gt;GetSeriesUIDs();<BR>    <BR>    SeriesIdContainer::const_iterator seriesItr = seriesUID.begin();<BR>    SeriesIdContainer::const_iterator seriesEnd = seriesUID.end();<BR>    while( seriesItr != seriesEnd )<BR>      {<BR>      seriesItr++;<BR>      }<BR><BR>      std::string seriesIdentifier;<BR><BR>      seriesIdentifier = seriesUID.begin()-&gt;c_str();<BR><BR>   typedef std::vector&lt; std::string &gt;   FileNamesContainer;<BR>    FileNamesContainer fileNames;<BR><BR>    fileNames =
 nameGenerator-&gt;GetFileNames( seriesIdentifier );<BR><BR>    reader-&gt;SetFileNames( fileNames );<BR>    reader-&gt;Update();<BR><BR><BR><BR>  typedef float     InternalPixelType;<BR>   typedef itk::RGBPixel&lt;unsigned char&gt;  RGBPixelType;<BR>   typedef itk::Image&lt; RGBPixelType, Dimension &gt;  RGBImageType;<BR>// typedef  itk::ImageFileWriter&lt; RGBImageType  &gt;        WriterType;<BR>   typedef  itk::WatershedImageFilter&lt; ImageType &gt; WatershedFilterType;<BR>// typedef itk::Functor::ScalarToRGBPixelFunctor&lt; unsigned long&gt; ColorMapFunctorType;<BR>   typedef WatershedFilterType::OutputImageType  LabeledImageType;<BR>// typedef itk::UnaryFunctorImageFilter&lt; LabeledImageType,RGBImageType,ColorMapFunctorType &gt;    
 ColorMapFilterType;<BR>    typedef itk::ImageToVTKImageFilter &lt;LabeledImageType&gt; ConnectorType;<BR>//  typedef itk::GradientMagnitudeImageFilter&lt;ImageType, ImageType&gt; GradientMagnitudeFilterType;<BR> <BR>//  GradientMagnitudeFilterType::Pointer magnitudeFilter = GradientMagnitudeFilterType::New();<BR>//  magnitudeFilter-&gt;SetInput(reader-&gt;GetOutput());<BR><BR>   WatershedFilterType::Pointer watershedFilter = WatershedFilterType::New();<BR>   watershedFilter-&gt;SetInput( reader-&gt;GetOutput() );<BR><BR>   watershedFilter-&gt;SetLevel(this-&gt;sliderLevelWatershed-&gt;value());<BR>   watershedFilter-&gt;SetThreshold(this-&gt;sliderLevelWatershed-&gt;value());<BR><BR>//   ColorMapFilterType::Pointer colorMapFilter = ColorMapFilterType::New();<BR>//   colorMapFilter-&gt;SetInput(  watershedFilter-&gt;GetOutput()
 );<BR><BR>       this-&gt;displayImage3D-&gt;show();<BR>       this-&gt;displayImage3D-&gt;redraw();<BR><BR>    ConnectorType::Pointer connector = ConnectorType::New();<BR>    connector-&gt;SetInput(watershedFilter-&gt;GetOutput());<BR><BR><BR>    vtkImageShiftScale *shift = vtkImageShiftScale::New();<BR>    shift-&gt;SetInput(connector-&gt;GetOutput());<BR>    shift-&gt;SetOutputScalarTypeToUnsignedChar();<BR><BR><BR>    vtkImageActor* actor = vtkImageActor::New();<BR>    actor-&gt;SetInput(shift-&gt;GetOutput());<BR><BR>     camera3D = vtkCamera::New();<BR>     camera3D-&gt;SetViewUp(0, 0, -1);<BR>     camera3D-&gt;SetPosition(0, 1, 0);<BR>     camera3D-&gt;SetFocalPoint(0, 0, 0);<BR>    
 camera3D-&gt;ComputeViewPlaneNormal();<BR>     camera3D-&gt;Azimuth(20);<BR><BR>     renderer3DWaterShed = vtkRenderer::New();<BR>     renderWindow3DWaterShed = vtkRenderWindow::New();<BR>     renderWindow3DWaterShed-&gt;AddRenderer(renderer3DWaterShed);<BR><BR>        displayImage3D-&gt;SetRenderWindow(renderWindow3DWaterShed);<BR>//      displayImage3D-&gt;SetInteractorStyle(mode3DWaterShed);<BR>        displayImage3D-&gt;Initialize();<BR><BR>       renderer3DWaterShed-&gt;AddActor(actor);<BR>       renderer3DWaterShed-&gt;SetActiveCamera(camera3D);<BR>       renderer3DWaterShed-&gt;ResetCamera();<BR>       camera3D-&gt;Dolly(1.3);<BR>      
 renderer3DWaterShed-&gt;ResetCameraClippingRange();<BR>       renderer3DWaterShed-&gt;Render();<BR><BR><BR><DIV style="font-family:times new roman, new york, times, serif;font-size:12pt;"><DIV style="font-family:times new roman, new york, times, serif;font-size:12pt;"><BR><DIV style="font-family:arial, helvetica, sans-serif;font-size:10pt;"><FONT face="Tahoma" size="2"><HR size="1"><B><SPAN style="font-weight:bold;">Von:</SPAN></B> Luis Ibanez &lt;luis.ibanez@kitware.com&gt;<BR><B><SPAN style="font-weight:bold;">An:</SPAN></B> ahmet mehmet &lt;nasil122002@yahoo.de&gt;<BR><B><SPAN style="font-weight:bold;">CC:</SPAN></B> vtk-developers@vtk.org; insight-users@itk.org; vtkusers@vtk.org<BR><B><SPAN style="font-weight:bold;">Gesendet:</SPAN></B> Dienstag, den 28. April 2009, 18:53:48 Uhr<BR><B><SPAN style="font-weight:bold;">Betreff:</SPAN></B> Re: [Insight-users] ITK to VTK 3D WatershedImageFilter<BR></FONT><BR><BR><BR>You are declaring an ITK+VTK
 connector of type:<BR><BR>  typedef
 itk::ImageToVTKImageFilter &lt;ImageType&gt; ConnectorType;<BR><BR>where ImageType is given by<BR><BR>  typedef unsigned char PixelType;<BR>  const unsigned int Dimension = 3;<BR>  typedef itk::OrientedImage&lt; PixelType, Dimension &gt; ImageType;<BR><BR><BR>but you are connecting an image of RGB pixels to it.<BR>(instead of the image of unsigned char that you promised).<BR><BR><BR>What you may want to do is to remove the ITK Coloring filter,<BR>and to pass the image of labels (the output of the watershed)<BR>directly to VTK.<BR><BR>Note that then the ITK+VTK connector, should be of type:<BR><BR>    itk::ImageToVTKImageFilter &lt; LabeledImageType &gt;<BR><BR><BR><BR>  Regards,<BR><BR><BR>      Luis<BR><BR><BR>------------------<BR>ahmet mehmet wrote:<BR>&gt; Hello!<BR>&gt;  I wanted my 3D watershed segmentation combine with VTK and to show it in a VTK window. For the connection between ITK and VTK, I
 used itkImageToVTKImageFilter. But it gives following error.   <BR>&gt; /home/hno4d/Desktop/MIRCIT/MIRCIT.cpp: In member function »virtual void MIRCIT::imageDisplayingWatershed()«:<BR>&gt; /home/hno4d/Desktop/MIRCIT/MIRCIT.cpp:1719: Fehler: keine passende Funktion für Aufruf von »itk::ImageToVTKImageFilter&lt;itk::OrientedImage&lt;unsigned char, 3u&gt;  &gt;::SetInput(itk::Image&lt;itk::RGBPixel&lt;unsigned char&gt;, 3u&gt;*)«<BR>&gt; /home/hno4d/Desktop/MIRCIT/itkImageToVTKImageFilter.txx:79: Anmerkung: Kandidaten sind: void itk::ImageToVTKImageFilter&lt;TInputImage&gt;::SetInput(const TInputImage*) [with TInputImage = itk::OrientedImage&lt;unsigned char, 3u&gt;]<BR>&gt; make[2]: *** [CMakeFiles/MIRCIT.dir/MIRCIT.o] Fehler 1<BR>&gt; make[1]: *** [CMakeFiles/MIRCIT.dir/all] Fehler 2<BR>&gt; make: *** [all] Fehler 2<BR>&gt; <BR>&gt;   How can I use my code with the following ITK VTK connection?<BR>&gt;   My code:<BR>&gt;  
<BR>&gt; typedef unsigned char PixelType;<BR>&gt; const unsigned int Dimension = 3;<BR>&gt; <BR>&gt; typedef itk::OrientedImage&lt; PixelType, Dimension &gt; ImageType;<BR>&gt; typedef itk::ImageSeriesReader&lt; ImageType &gt; ReaderType;<BR>&gt; <BR>&gt; ReaderType::Pointer reader = ReaderType::New();<BR>&gt; <BR>&gt; typedef itk::GDCMImageIO ImageIOType;<BR>&gt; ImageIOType::Pointer dicomIO = ImageIOType::New();<BR>&gt; <BR>&gt; reader-&gt;SetImageIO( dicomIO );<BR>&gt; typedef itk::GDCMSeriesFileNames NamesGeneratorType;<BR>&gt;  NamesGeneratorType::Pointer nameGenerator = NamesGeneratorType::New();<BR>&gt; nameGenerator-&gt;SetUseSeriesDetails( true );<BR>&gt; nameGenerator-&gt;AddSeriesRestriction("0008|0021" );<BR>&gt; nameGenerator-&gt;SetDirectory( selectedDirectory);<BR>&gt;  typedef std::vector&lt; std::string &gt; SeriesIdContainer;<BR>&gt; const SeriesIdContainer &amp; seriesUID = nameGenerator-&gt;GetSeriesUIDs();<BR>&gt;
 SeriesIdContainer::const_iterator seriesItr = seriesUID.begin();<BR>&gt; SeriesIdContainer::const_iterator seriesEnd = seriesUID.end();<BR>&gt; while( seriesItr != seriesEnd )<BR>&gt; {<BR>&gt; seriesItr++;<BR>&gt; }<BR>&gt; <BR>&gt; std::string seriesIdentifier;<BR>&gt; seriesIdentifier = seriesUID.begin()-&gt;c_str();<BR>&gt; <BR>&gt; typedef std::vector&lt; std::string &gt; FileNamesContainer;<BR>&gt; FileNamesContainer fileNames;<BR>&gt; fileNames = nameGenerator-&gt;GetFileNames( seriesIdentifier );<BR>&gt; <BR>&gt; reader-&gt;SetFileNames( fileNames );<BR>&gt; reader-&gt;Update();<BR>&gt; <BR>&gt; typedef float InternalPixelType;<BR>&gt; typedef itk::RGBPixel&lt;unsigned char&gt; RGBPixelType;<BR>&gt; typedef itk::Image&lt; RGBPixelType, Dimension &gt; RGBImageType;<BR>&gt; // typedef itk::ImageFileWriter&lt; RGBImageType &gt; WriterType;<BR>&gt; typedef itk::WatershedImageFilter&lt; ImageType &gt; WatershedFilterType;<BR>&gt; typedef
 itk::Functor::ScalarToRGBPixelFunctor&lt; unsigned long&gt; ColorMapFunctorType;<BR>&gt; typedef WatershedFilterType::OutputImageType LabeledImageType;<BR>&gt; typedef itk::UnaryFunctorImageFilter&lt; LabeledImageType,RGBImageType,ColorMapFunctorType &gt; ColorMapFilterType;<BR>&gt; typedef itk::ImageToVTKImageFilter &lt;ImageType&gt; ConnectorType;<BR>&gt; typedef itk::GradientMagnitudeImageFilter&lt;ImageType, ImageType&gt; GradientMagnitudeFilterType;<BR>&gt; <BR>&gt;  GradientMagnitudeFilterType::Pointer magnitudeFilter = GradientMagnitudeFilterType::New();<BR>&gt; magnitudeFilter-&gt;SetInput(reader-&gt;GetOutput());<BR>&gt; <BR>&gt;  WatershedFilterType::Pointer watershedFilter = WatershedFilterType::New();<BR>&gt; watershedFilter-&gt;SetInput( magnitudeFilter-&gt;GetOutput() );<BR>&gt; watershedFilter-&gt;SetThreshold(this-&gt;sliderLevelWatershed-&gt;value());<BR>&gt;
 watershedFilter-&gt;SetLevel(this-&gt;sliderThresholdWatershed-&gt;value());<BR>&gt; <BR>&gt; ColorMapFilterType::Pointer colorMapFilter = ColorMapFilterType::New();<BR>&gt; colorMapFilter-&gt;SetInput( watershedFilter-&gt;GetOutput() );<BR>&gt; <BR>&gt; ConnectorType::Pointer connector = ConnectorType::New();<BR>&gt; connector-&gt;SetInput(colorMapFilter-&gt;GetOutput());<BR>&gt; <BR>&gt; vtkImageActor* actor = vtkImageActor::New();<BR>&gt; actor-&gt;SetInput(connector-&gt;GetOutput());<BR>&gt; <BR>&gt; vtkInteractorStyleImage * interactorStyle = vtkInteractorStyleImage::New();<BR>&gt; <BR>&gt; vtkRenderer* renderer = vtkRenderer::New();<BR>&gt; vtkRenderWindow* renWin = vtkRenderWindow::New();<BR>&gt; vtkRenderWindowInteractor* iren = vtkRenderWindowInteractor::New();<BR>&gt; <BR>&gt; renWin-&gt;SetSize(500, 500);<BR>&gt; renWin-&gt;AddRenderer(renderer);<BR>&gt; iren-&gt;SetRenderWindow(renWin);<BR>&gt; iren-&gt;SetInteractorStyle( interactorStyle
 );<BR>&gt; renderer-&gt;AddActor(actor);<BR>&gt; <BR>&gt; renWin-&gt;Render();<BR>&gt; iren-&gt;Start();<BR>&gt; <BR>&gt; Thank you!<BR>&gt; <BR>&gt; <BR>&gt; <BR>&gt; ------------------------------------------------------------------------<BR>&gt; <BR>&gt; _____________________________________<BR><SPAN>&gt; Powered by <A rel="nofollow" target="_blank" href="http://www.kitware.com">www.kitware.com</A></SPAN><BR>&gt; <BR>&gt; Visit other Kitware open-source projects at<BR>&gt; <A rel="nofollow" target="_blank" href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</A><BR>&gt; <BR>&gt; Please keep messages on-topic and check the ITK FAQ at: <A rel="nofollow" target="_blank" href="http://www.itk.org/Wiki/ITK_FAQ">http://www.itk.org/Wiki/ITK_FAQ</A><BR>&gt; <BR>&gt; Follow this link to subscribe/unsubscribe:<BR>&gt; <A rel="nofollow" target="_blank"
 href="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</A><BR></DIV></DIV></DIV><BR>
</DIV></div><br>


      </body></html>