Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

vtkgdcmViewer.cxx File Reference

#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[])


Define Documentation

#define vtkFloatingPointType   float
 

Definition at line 44 of file vtkgdcmViewer.cxx.


Function Documentation

int main int  argc,
char *  argv[]
 

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 }


Generated on Thu Feb 10 22:18:03 2005 for gdcm by doxygen 1.3.6