X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpExtensions%2FDataStructures%2FITKAndVTKImage.h;h=dfcad3f6955cdefe441a103b79c7770434f53ace;hb=7c7bc497af96e7b5845be9a2fc277036ec752be9;hp=a3e2aacc03f4f9b5df69fcf51623e9b13832d8cc;hpb=2361f4f97631e09d88d8a5510a369817dcaa19db;p=cpPlugins.git diff --git a/lib/cpExtensions/DataStructures/ITKAndVTKImage.h b/lib/cpExtensions/DataStructures/ITKAndVTKImage.h index a3e2aac..dfcad3f 100644 --- a/lib/cpExtensions/DataStructures/ITKAndVTKImage.h +++ b/lib/cpExtensions/DataStructures/ITKAndVTKImage.h @@ -7,98 +7,98 @@ #include namespace cpExtensions +{ + namespace DataStructures { - namespace DataStructures + /** + */ + template< typename P, unsigned int D > + struct ITKAndVTKImage { - /** - */ - 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 { - 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( ); + r->Update( ); } - - void SetItkImage( TImage* image ) + catch( itk::ExceptionObject& err ) { - 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 - { - r->Update( ); - } - catch( itk::ExceptionObject& err ) - { - this->ITK = NULL; - return( err.GetDescription( ) ); - - } // fi - this->ITK = r->GetOutput( ); - this->ITK->DisconnectPipeline( ); - this->_Synch( ); - return( "" ); - } - - std::string WriteToFile( const std::string& filename ) const + this->ITK = NULL; + return( err.GetDescription( ) ); + + } // fi + this->ITK = r->GetOutput( ); + this->ITK->DisconnectPipeline( ); + this->_Synch( ); + return( "" ); + } + + std::string WriteToFile( const std::string& filename ) const + { + typename itk::ImageFileWriter< TImage >::Pointer w = + itk::ImageFileWriter< TImage >::New( ); + w->SetFileName( filename ); + w->SetInput( this->ITK ); + try { - typename itk::ImageFileWriter< TImage >::Pointer w = - itk::ImageFileWriter< TImage >::New( ); - w->SetFileName( filename ); - w->SetInput( this->ITK ); - try - { - w->Update( ); - } - catch( itk::ExceptionObject& err ) - { - return( err.GetDescription( ) ); - - } // fi - return( "" ); + w->Update( ); } - - TImage* GetItkImage( ) - { return( this->ITK ); } - vtkImageData* GetVtkImage( ) - { return( this->VTK->GetOutput( ) ); } - const TImage* GetItkImage( ) const - { return( this->ITK ); } - const vtkImageData* GetVtkImage( ) const - { return( this->VTK->GetOutput( ) ); } - void DisconnectPipeline( ) - { this->ITK->DisconnectPipeline( ); } - - void _Synch( ) + catch( itk::ExceptionObject& err ) { - this->VTK = TItk2Vtk::New( ); - this->VTK->SetInput( this->ITK ); - this->VTK->Update( ); - } - - }; - - } // ecapseman + return( err.GetDescription( ) ); + + } // fi + return( "" ); + } + + TImage* GetItkImage( ) + { return( this->ITK ); } + vtkImageData* GetVtkImage( ) + { return( this->VTK->GetOutput( ) ); } + const TImage* GetItkImage( ) const + { return( this->ITK ); } + const vtkImageData* GetVtkImage( ) const + { return( this->VTK->GetOutput( ) ); } + void DisconnectPipeline( ) + { this->ITK->DisconnectPipeline( ); } + + void _Synch( ) + { + this->VTK = TItk2Vtk::New( ); + this->VTK->SetInput( this->ITK ); + this->VTK->Update( ); + } + + }; + + } // ecapseman } // ecapseman