#include <vtkRenderWindowInteractor.h>#include <vtkImageViewer.h>#include <vtkStructuredPoints.h>#include <vtkStructuredPointsWriter.h>#include <vtkCommand.h>#include <vtkRenderer.h>#include <vtkImageMapToColors.h>#include <vtkLookupTable.h>#include "vtkGdcmReader.h"Go to the source code of this file.
Classes | |
| class | vtkgdcmObserver |
Defines | |
| #define | vtkFloatingPointType float |
Functions | |
| int | main (int argc, char *argv[]) |
|
|
Definition at line 44 of file vtkgdcmViewer.cxx. |
|
||||||||||||
|
Definition at line 82 of file vtkgdcmViewer.cxx. References vtkGdcmReader::AddFileName(), vtkgdcmObserver::ImageViewer, vtkgdcmObserver::New(), vtkGdcmReader::New(), and vtkGdcmReader::SetFileName().
00083 {
00084 if( argc < 2 )
00085 return 0;
00086
00087 vtkGdcmReader *reader = vtkGdcmReader::New();
00088 reader->AllowLookupTableOff();
00089
00090 if( argc == 2 )
00091 reader->SetFileName( argv[1] );
00092 else
00093 for(int i=1; i< argc; i++)
00094 reader->AddFileName( argv[i] );
00095
00096 reader->Update();
00097
00098 //print debug info:
00099 reader->GetOutput()->Print( cout );
00100
00101 vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
00102
00103 vtkImageViewer *viewer = vtkImageViewer::New();
00104
00105 if( reader->GetLookupTable() )
00106 {
00107 //convert to color:
00108 vtkImageMapToColors *map = vtkImageMapToColors::New ();
00109 map->SetInput (reader->GetOutput());
00110 map->SetLookupTable (reader->GetLookupTable());
00111 map->SetOutputFormatToRGB();
00112 viewer->SetInput ( map->GetOutput() );
00113 map->Delete();
00114 }
00115 else
00116 {
00117 double *range = reader->GetOutput()->GetScalarRange();
00118 viewer->SetColorLevel (0.5 * (range[1] + range[0]));
00119 viewer->SetColorWindow (range[1] - range[0]);
00120
00121 viewer->SetInput ( reader->GetOutput() );
00122 }
00123 viewer->SetupInteractor (iren);
00124
00125 //vtkFloatingPointType *range = reader->GetOutput()->GetScalarRange();
00126 //viewer->SetColorWindow (range[1] - range[0]);
00127 //viewer->SetColorLevel (0.5 * (range[1] + range[0]));
00128
00129 // Here is where we setup the observer,
00130 vtkgdcmObserver *obs = vtkgdcmObserver::New();
00131 obs->ImageViewer = viewer;
00132 iren->AddObserver(vtkCommand::CharEvent,obs);
00133 obs->Delete();
00134
00135 //viewer->Render();
00136 iren->Initialize();
00137 iren->Start();
00138
00139 //if you wish you can export dicom to a vtk file
00140 vtkStructuredPointsWriter *writer = vtkStructuredPointsWriter::New();
00141 writer->SetInput( reader->GetOutput());
00142 writer->SetFileName( "foo.vtk" );
00143 writer->SetFileTypeToBinary();
00144 //writer->Write();
00145
00146 reader->Delete();
00147 iren->Delete();
00148 viewer->Delete();
00149 writer->Delete();
00150
00151 return 0;
00152 }
|
1.3.6