<div dir="ltr">Hi,<div>I would like to watch on my screen three dicom image that I read from ITK reader, then I'm trying to write this code, What do you think about it?</div><div><br></div><div><br></div><div><div>#include "itkImageFileReader.h"</div><div>#include "itkImageFileWriter.h"</div><div><br></div><div>#include "itkGDCMImageIO.h"</div><div><br></div><div><br></div><div>#include "itkImageToVTKImageFilter.h"</div><div>#include "vtkVersion.h"</div><div>#include "vtkImageViewer.h"</div><div>#include "vtkRenderWindowInteractor.h"</div><div>#include "vtkSmartPointer.h"</div><div>#include "vtkImageActor.h"</div><div>#include "vtkImageMapper3D.h"</div><div>#include "vtkInteractorStyleImage.h"</div><div>#include "vtkRenderer.h"</div><div>#include "vtkCamera.h"</div></div><div><br></div><div><br></div><div><br></div><div><div>using namespace std;</div><div>using namespace itk;</div><div>int main(  )</div><div>{</div><div> </div><div><br></div><div><br></div><div><br></div><div>  </div><div>  const unsigned int Dimension = 2;</div><div>  typedef unsigned short PixelType;</div><div>  typedef float InternalPixelType;</div><div>  typedef  signed short    OutputPixelType;</div><div>  </div><div>  typedef Image< PixelType, Dimension >  FixedImageType;</div><div>  typedef Image< PixelType, Dimension >  MovingImageType;</div><div><br></div><div>   </div><div>  typedef ImageFileReader< FixedImageType  > FixedImageReaderType;</div><div>  typedef ImageFileReader< MovingImageType > MovingImageReaderType;</div><div>  </div><div>  </div><div>  </div><div>  typedef GDCMImageIO GDCMType;</div><div>  GDCMType::Pointer gdcm=GDCMType::New();</div><div>  FixedImageReaderType::Pointer fixedImageReader   = FixedImageReaderType::New();</div><div>  MovingImageReaderType::Pointer movingImageReader = MovingImageReaderType::New();</div><div><br></div><div><br></div><div>  /* typedef itk::ImageToVTKImageFilter<FixedImageType> ConnectorType1;</div><div>  ConnectorType1::Pointer originalConnector1 = ConnectorType1::New();</div><div>  typedef itk::ImageToVTKImageFilter<MovingImageType> ConnectorType2;</div><div>  ConnectorType2::Pointer originalConnector2 = ConnectorType2::New();*/</div><div>  </div><div>  </div><div><br></div><div>  char* filename1="D:/Images/def00001.dcm";</div><div>  char* filename2="D:/Images/def100001.dcm";</div><div>  fixedImageReader->SetFileName( filename1 );</div><div>    movingImageReader->SetFileName( filename2 );</div><div>  fixedImageReader->SetImageIO(gdcm);</div><div>  movingImageReader->SetImageIO(gdcm);</div><div><br></div><div><br></div><div>  //Read Dicom Image</div><div>  fixedImageReader->Update();</div><div>  movingImageReader->Update();</div><div>  </div><div>  </div><div>  FixedImageType::Pointer Image1=fixedImageReader->GetOutput();</div><div>  MovingImageType::Pointer Image2=movingImageReader->GetOutput();</div><div> <br></div><div>  originalConnector1->SetInput(Image1);</div><div>  originalConnector2->SetInput(Image2);</div><div>  </div><div>  </div><div>  vtkSmartPointer<vtkImageActor> originalActor1 =  vtkSmartPointer<vtkImageActor>::New();</div><div>  vtkSmartPointer<vtkImageActor> originalActor2 =  vtkSmartPointer<vtkImageActor>::New();</div><div> </div><div><br></div><div>  originalConnector1->Update();</div><div>  originalConnector2->Update();</div><div>  </div><div>  </div><div>  originalActor1->GetMapper()->SetInputData(originalConnector1->GetOutput());</div><div>  originalActor2->GetMapper()->SetInputData(originalConnector2->GetOutput());</div><div>  </div><div><span class="" style="white-space:pre">   </span></div><div> </div><div>  vtkSmartPointer<vtkRenderer> renderer1 = vtkSmartPointer<vtkRenderer>::New();</div><div> </div><div>  renderer1->AddActor(originalActor1);</div><div>  renderer1->AddActor(originalActor2);</div><div>     </div><div>  renderer1->ResetCamera();</div><div>  renderer1->GetActiveCamera();</div><div>    </div><div><br></div><div>  </div><div>  vtkSmartPointer<vtkRenderWindow> renderWindow1 = vtkSmartPointer<vtkRenderWindow>::New();</div><div>    vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor1 = vtkSmartPointer<vtkRenderWindowInteractor>::New();</div><div>  </div><div>  vtkSmartPointer<vtkInteractorStyleImage> style = vtkSmartPointer<vtkInteractorStyleImage>::New();</div><div> <br></div><div><br></div><div>  </div><div>  renderer1->SetBackground(1,1,1);</div><div>  renderWindow1->AddRenderer(renderer1);</div><div>  </div><div>  renderWindow1->Render();</div><div>  </div><div>  renderWindowInteractor1->SetInteractorStyle(style);</div><div>  </div><div>  renderWindowInteractor1->SetRenderWindow(renderWindow1);</div><div>  renderWindowInteractor1->Initialize();</div><div>  renderWindowInteractor1->Start();</div></div><div><br></div><div>return 0;</div><div>}</div></div>