- vtkImageViewer2 *viewer = vtkImageViewer2::New();
-
- if( reader->GetLookupTable() )
- {
- //convert to color:
- vtkImageMapToColors *map = vtkImageMapToColors::New ();
- map->SetInput (reader->GetOutput());
- map->SetLookupTable (reader->GetLookupTable());
- map->SetOutputFormatToRGB();
- viewer->SetInput ( map->GetOutput() );
- map->Delete();
- }
- else
- {
- viewer->SetInput ( reader->GetOutput() );
- }
- viewer->SetupInteractor (iren);
-
- //vtkFloatingPointType *range = reader->GetOutput()->GetScalarRange();
- //viewer->SetColorWindow (range[1] - range[0]);
- //viewer->SetColorLevel (0.5 * (range[1] + range[0]));
-
- // Here is where we setup the observer,
- vtkgdcmObserver *obs = vtkgdcmObserver::New();
- obs->ImageViewer = viewer;
- iren->AddObserver(vtkCommand::CharEvent,obs);
- obs->Delete();
-
- iren->Initialize();
- iren->Start();
-
- //if you wish you can export dicom to a vtk file
- vtkStructuredPointsWriter *writer = vtkStructuredPointsWriter::New();
- writer->SetInput( reader->GetOutput());
- writer->SetFileName( "foo.vtk" );
- writer->SetFileTypeToBinary();
- writer->Write();
-
- reader->Delete();
- iren->Delete();
- viewer->Delete();
- writer->Delete();
+ //print debug info:
+ reader->GetOutput()->Print( cout );
+
+ vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
+
+ vtkImageViewer *viewer = vtkImageViewer::New();
+
+ if( reader->GetLookupTable() )
+ {
+ //convert to color:
+ vtkImageMapToColors *map = vtkImageMapToColors::New ();
+ map->SetInput (reader->GetOutput());
+ map->SetLookupTable (reader->GetLookupTable());
+ map->SetOutputFormatToRGB();
+ viewer->SetInput ( map->GetOutput() );
+ map->Delete();
+ }
+ else
+ {
+ vtkFloatingPointType *range = reader->GetOutput()->GetScalarRange();
+ viewer->SetColorLevel (0.5 * (range[1] + range[0]));
+ viewer->SetColorWindow (range[1] - range[0]);
+
+ viewer->SetInput ( reader->GetOutput() );
+ }
+ viewer->SetupInteractor (iren);