- /**
- */
- template< typename P, unsigned int D >
- struct ITKAndVTKImage
- {
- typedef itk::Image< P, D > TImage;
- typedef itk::ImageToVTKImageFilter< TImage > TItk2Vtk;
-
- typename TImage::Pointer ITK;
- typename TItk2Vtk::Pointer VTK;
-
- void CopyInformation( const itk::ImageBase< D >* i )
+ typedef itk::Image< P, D > TImage;
+ typedef itk::ImageToVTKImageFilter< TImage > TItk2Vtk;
+
+ typename TImage::Pointer ITK;
+ typename TItk2Vtk::Pointer VTK;
+
+ void CopyInformation( const itk::ImageBase< D >* i )
+ {
+ this->ITK = TImage::New( );
+ this->ITK->SetLargestPossibleRegion( i->GetLargestPossibleRegion( ) );
+ this->ITK->SetRequestedRegion( i->GetRequestedRegion( ) );
+ this->ITK->SetBufferedRegion( i->GetBufferedRegion( ) );
+ this->ITK->SetSpacing( i->GetSpacing( ) );
+ this->ITK->SetOrigin( i->GetOrigin( ) );
+ this->ITK->SetDirection( i->GetDirection( ) );
+ this->ITK->Allocate( );
+ }
+
+ void SetItkImage( TImage* image )
+ {
+ this->ITK = image;
+ this->_Synch( );
+ }
+
+ std::string ReadFromFile( const std::string& filename )
+ {
+ typename itk::ImageFileReader< TImage >::Pointer r =
+ itk::ImageFileReader< TImage >::New( );
+ r->SetFileName( filename );
+ try