<div>//THIS IS MY CODE</div><div><br></div><div><div>#include &quot;itkImageFileReader.h&quot;</div><div>#include &quot;itkImageFileWriter.h&quot;</div><div>#include &quot;itkRescaleIntensityImageFilter.h&quot;</div><div>#include &quot;itkGDCMImageIO.h&quot;</div>
<div>#include &quot;itkImageToVTKImageFilter.h&quot;</div><div>#include &quot;vtkSphereSource.h&quot;</div><div>#include &quot;vtkPolyDataMapper.h&quot;</div><div>#include &quot;vtkProperty.h&quot;</div><div>#include &quot;vtkActor.h&quot;</div>
<div>#include &quot;vtkRenderWindow.h&quot;</div><div>#include &quot;vtkRenderer.h&quot;</div><div>#include &quot;vtkRenderWindowInteractor.h&quot;</div><div>#include &quot;vtkCamera.h&quot;</div><div>#include &quot;vtkContourFilter.h&quot;</div>
<div>#include &quot;vtkPolyDataNormals.h&quot;</div><div>#include &quot;vtkImageGaussianSmooth.h&quot;</div><div>#include &quot;itkImage.h&quot;</div><div>#include &quot;itkSmoothingRecursiveGaussianImageFilter.h&quot;</div>
<div>#include &quot;itkRescaleIntensityImageFilter.h&quot;</div><div>#include &quot;vtkImageViewer.h&quot;</div><div><br></div><div><br></div><div>int main( int argc, char* argv[] )</div><div>{</div><div><br></div><div>    typedef signed short InputPixelType;</div>
<div>    const unsigned int InputDimension = 2;</div><div><br></div><div>    </div><div>    typedef itk::Image&lt; InputPixelType, InputDimension &gt; InputImageType;</div><div>    typedef itk::Image&lt; InputPixelType, InputDimension &gt; GaussianImageType;</div>
<div>    typedef itk::Image&lt; InputPixelType, InputDimension &gt; WriteImageType;</div><div><br></div><div>    typedef itk::ImageFileReader&lt; InputImageType &gt;   ReaderType;</div><div>    typedef itk::ImageFileWriter&lt; InputImageType &gt;   WriterType;</div>
<div>    typedef itk::ImageToVTKImageFilter&lt;InputImageType&gt;   FilterType;</div><div>    typedef itk::GDCMImageIO ImageIOTypeGDCM;</div><div>    typedef itk::SmoothingRecursiveGaussianImageFilter&lt; InputImageType , GaussianImageType &gt; SmoothingFilterType;</div>
<div>    typedef itk::RescaleIntensityImageFilter&lt; InputImageType, WriteImageType &gt; RescaleFilterType;</div><div><br></div><div><br></div><div>    ReaderType::Pointer reader = ReaderType::New();</div><div>    FilterType::Pointer connector = FilterType::New();</div>
<div>    ImageIOTypeGDCM::Pointer gdcmImageIO = ImageIOTypeGDCM::New();</div><div>    SmoothingFilterType::Pointer smoother = SmoothingFilterType::New();</div><div>    RescaleFilterType::Pointer rescaler = RescaleFilterType::New();</div>
<div><br></div><div>    const char * inputDicomFilename  = argv[1];</div><div><br></div><div>    reader-&gt;SetFileName( inputDicomFilename );</div><div>    reader-&gt;SetImageIO( gdcmImageIO );</div><div><br></div><div>    try</div>
<div>    {</div><div>    reader-&gt;Update();</div><div>    }</div><div>    catch (itk::ExceptionObject &amp; e)</div><div>    {</div><div>    std::cerr &lt;&lt; &quot;exception in file reader &quot; &lt;&lt; std::endl;</div>
<div>    std::cerr &lt;&lt; e &lt;&lt; std::endl;</div><div>    return EXIT_FAILURE;</div><div>    }</div><div><br></div><div>    rescaler-&gt;SetOutputMinimum(   0 );</div><div>    rescaler-&gt;SetOutputMaximum( 255 );</div>
<div><br></div><div>    //smoother-&gt;SetSigma( 1.0 );</div><div>    //smoother-&gt;SetNormalizeAcrossScale( true );</div><div><br></div><div>    rescaler-&gt;SetInput( reader-&gt;GetOutput() );</div><div>    connector-&gt;SetInput( rescaler-&gt;GetOutput() );</div>
<div><br></div><div>    try</div><div>      {</div><div>      connector-&gt;Update();</div><div>      }</div><div>    catch( itk::ExceptionObject &amp; err )</div><div>      {</div><div>      std::cerr &lt;&lt; &quot;ExceptionObject caught !&quot; &lt;&lt; std::endl;</div>
<div>      std::cerr &lt;&lt; err &lt;&lt; std::endl;</div><div>      return EXIT_FAILURE;</div><div>      }</div><div><br></div><div>    vtkContourFilter *isoSurface = vtkContourFilter::New();</div><div>    vtkPolyDataNormals *normals = vtkPolyDataNormals::New();</div>
<div>    vtkImageGaussianSmooth *smooth = vtkImageGaussianSmooth::New();</div><div><br></div><div>    isoSurface-&gt;SetValue(90,90);</div><div>    isoSurface-&gt;SetInput(connector-&gt;GetOutput() ); </div><div><br></div>
<div>    try</div><div>      {</div><div>      isoSurface-&gt;Update();</div><div>      }</div><div>    catch( itk::ExceptionObject &amp; err )</div><div>      {</div><div>      std::cerr &lt;&lt; &quot;ExceptionObject caught !&quot; &lt;&lt; std::endl;</div>
<div>      std::cerr &lt;&lt; err &lt;&lt; std::endl;</div><div>      return EXIT_FAILURE;</div><div>      }</div><div><br></div><div>    normals-&gt;SetInput( isoSurface-&gt;GetOutput() );</div><div><br></div><div>    try</div>
<div>      {</div><div>      normals-&gt;Update();</div><div>      }</div><div>    catch( itk::ExceptionObject &amp; err )</div><div>      {</div><div>      std::cerr &lt;&lt; &quot;ExceptionObject caught !&quot; &lt;&lt; std::endl;</div>
<div>      std::cerr &lt;&lt; err &lt;&lt; std::endl;</div><div>      return EXIT_FAILURE;</div><div>      }</div><div><br></div><div><br></div><div>  vtkPolyDataMapper *map = vtkPolyDataMapper::New();</div><div>  map-&gt;SetInput(normals-&gt;GetOutput());// isoSurface-&gt;GetOutput()</div>
<div><br></div><div>  vtkActor *aSphere = vtkActor::New();//don&#39;t used</div><div>  vtkRenderer *ren1 = vtkRenderer::New();</div><div>  vtkRenderWindow *renWin = vtkRenderWindow::New();</div><div>  vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();</div>
<div><br></div><div>  aSphere-&gt;SetMapper(map);//don&#39;t used</div><div>  aSphere-&gt;GetProperty()-&gt;SetColor(0,0,1); //don&#39;t used</div><div><br></div><div>  renWin-&gt;AddRenderer(ren1);</div><div><br></div><div>
<br></div><div>  iren-&gt;SetRenderWindow(renWin);</div><div><br></div><div>  ren1-&gt;AddActor(aSphere);//don&#39;t used</div><div>  ren1-&gt;SetBackground(0,0,0); //don&#39;t used</div><div><br></div><div>  renWin-&gt;Render();</div>
<div><br></div><div><br></div><div>  vtkCamera * cam = ren1-&gt;GetActiveCamera();</div><div><br></div><div>  cam-&gt;SetViewUp(0, -1, 0);</div><div>  cam-&gt;Azimuth(180);</div><div><br></div><div>  </div><div>  ren1-&gt;ResetCamera();</div>
<div>  iren-&gt;Start();</div><div>  </div><div><br></div><div>  ren1-&gt;Delete();</div><div>  renWin-&gt;Delete();</div><div>  iren-&gt;Delete();</div><div>  return EXIT_SUCCESS;</div><div><br></div><div>}</div></div><div>
<br></div>-- <br><div>Brenno Bernardes Ribeiro<br><br>Engenharia da Computação</div><div>
Universidade Federal do Pará</div><div style="padding:0px;overflow:hidden;margin-left:0px;margin-top:0px;color:black;font-size:10px;text-align:left;line-height:130%"></div><br>