X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins%2FPlugins%2FIO%2FImageReader.cxx;h=e18c98709f58f2654e9b6f431a91b07c94941512;hb=e992c2468610352a34187d9180e2e8f3fd3a6e68;hp=4b1d365f59e9c96729b7eb826c5631914e42e633;hpb=b4cc15873d07ef87910a4aa6492e74022cda1a25;p=cpPlugins.git diff --git a/lib/cpPlugins/Plugins/IO/ImageReader.cxx b/lib/cpPlugins/Plugins/IO/ImageReader.cxx index 4b1d365..e18c987 100644 --- a/lib/cpPlugins/Plugins/IO/ImageReader.cxx +++ b/lib/cpPlugins/Plugins/IO/ImageReader.cxx @@ -1,63 +1,66 @@ #include "ImageReader.h" #include -#include - #include #include -#ifdef cpPlugins_Interface_QT4 -#include -#endif // cpPlugins_Interface_QT4 +/* TODO + #ifdef cpPlugins_Interface_QT4 + #include + #endif // cpPlugins_Interface_QT4 -// ------------------------------------------------------------------------- -bool cpPlugins::IO::ImageReader:: -ExecConfigurationDialog( QWidget* parent ) -{ - bool r = false; + // ------------------------------------------------------------------------- + cpPlugins::IO::ImageReader:: + DialogResult cpPlugins::IO::ImageReader:: + ExecConfigurationDialog( QWidget* parent ) + { + DialogResult r = Self::DialogResult_Cancel; -#ifdef cpPlugins_Interface_QT4 + #ifdef cpPlugins_Interface_QT4 - // Show dialog and check if it was accepted - QFileDialog dialog( parent ); - dialog.setFileMode( QFileDialog::ExistingFiles ); - dialog.setDirectory( QFileDialog::tr( "." ) ); - dialog.setNameFilter( QFileDialog::tr( "All files (*)" ) ); - if( dialog.exec( ) ) - { - this->m_Parameters = this->m_DefaultParameters; - QStringList names = dialog.selectedFiles( ); - QStringList::const_iterator qIt = names.begin( ); - for( ; qIt != names.end( ); ++qIt ) - this->m_Parameters.AddValueToStringList( - "FileNames", qIt->toStdString( ) - ); - this->m_Parameters.SetValueAsBool( "VectorType", false ); - r = true; + QStringList filters; + filters + << "Image files (*.bmp *.png *.jpg *.jpeg *.dcm *.mhd *.nhdr *.nrrd *.tiff)" + << "Any files (*)"; - } // fi + TStringList names = this->m_Parameters->GetFileNameList( "FileNames" ); + std::string name = ( names.size( ) > 0 )? names[ 0 ]: "."; -#endif // cpPlugins_Interface_QT4 + // Show dialog and check if it was accepted + QFileDialog dialog( parent ); + dialog.setFileMode( QFileDialog::ExistingFiles ); + dialog.setDirectory( QFileDialog::tr( name.c_str( ) ) ); + dialog.setNameFilters( filters ); + dialog.setAcceptMode( QFileDialog::AcceptOpen ); + if( dialog.exec( ) ) + { + QStringList names = dialog.selectedFiles( ); + QStringList::const_iterator qIt = names.begin( ); + for( ; qIt != names.end( ); ++qIt ) + this->m_Parameters->AddToStringList( + "FileNames", qIt->toStdString( ) + ); + this->m_Parameters->SetBool( "VectorType", false ); + r = Self::DialogResult_NoModal; - return( r ); -} + } // fi + + #endif // cpPlugins_Interface_QT4 + + return( r ); + } +*/ // ------------------------------------------------------------------------- cpPlugins::IO::ImageReader:: ImageReader( ) : Superclass( ) { - this->m_ClassName = "cpPlugins::IO::ImageReader"; - this->m_ClassCategory = "ImageReader"; - - this->SetNumberOfOutputs( 1 ); - this->_MakeOutput< cpPlugins::Interface::Image >( 0 ); + this->_MakeOutput< cpPlugins::Interface::Image >( "Output" ); - using namespace cpPlugins::Interface; - this->m_DefaultParameters.Configure( Parameters::StringList, "FileNames" ); - this->m_DefaultParameters.Configure( Parameters::Bool, "VectorType" ); - this->m_DefaultParameters.SetValueAsBool( "VectorType", false ); - this->m_Parameters = this->m_DefaultParameters; + this->m_Parameters->ConfigureAsFileNameList( "FileNames" ); + this->m_Parameters->ConfigureAsBool( "VectorType" ); + this->m_Parameters->SetBool( "VectorType", false ); } // ------------------------------------------------------------------------- @@ -71,8 +74,7 @@ std::string cpPlugins::IO::ImageReader:: _GenerateData( ) { // Get filenames - TStringList names; - this->m_Parameters.GetValueAsStringList( names, "FileNames" ); + TStringList names = this->m_Parameters->GetFileNameList( "FileNames" ); std::string r = ""; if( names.size( ) >= 1 ) @@ -105,7 +107,7 @@ _GenerateData( ) r = "ImageReader: Could not CreateImageIO for \"" + names[ 0 ] + "\""; } else - r = "No image files given"; + r = "ImageReader: No image files given"; return( r ); } @@ -347,7 +349,7 @@ template< class P, unsigned int D > std::string cpPlugins::IO::ImageReader:: _GD1( const TStringList& names ) { - if( this->m_Parameters.GetValueAsBool( "VectorType" ) ) + if( this->m_Parameters->GetBool( "VectorType" ) ) return( this->_RealGD< itk::VectorImage< P, D > >( names ) ); else return( this->_RealGD< itk::Image< P, D > >( names ) ); @@ -359,7 +361,7 @@ std::string cpPlugins::IO::ImageReader:: _RealGD( const TStringList& names ) { cpPlugins::Interface::Image* out = - this->GetOutput< cpPlugins::Interface::Image >( 0 ); + this->GetOutput< cpPlugins::Interface::Image >( "Output" ); if( out == NULL ) return( "ImageReader: No output object properly created." ); @@ -368,59 +370,40 @@ _RealGD( const TStringList& names ) { // Read single image typedef itk::ImageFileReader< I > _SR; - _SR* reader = - dynamic_cast< _SR* >( this->m_RealProcessObject.GetPointer( ) ); - if( reader == NULL ) - { - this->m_RealProcessObject = _SR::New( ); - reader = - dynamic_cast< _SR* >( this->m_RealProcessObject.GetPointer( ) ); - - } // fi + _SR* reader = this->_CreateITK< _SR >( ); reader->SetFileName( names[ 0 ] ); try { reader->Update( ); - out->SetITKImage< I >( reader->GetOutput( ) ); + out->SetITK< I >( reader->GetOutput( ) ); + out->SetName( names[ 0 ] ); } catch( itk::ExceptionObject& err ) { r = "ImageReader: " + std::string( err.GetDescription( ) ); - out->SetITKImage< I >( NULL ); + out->SetITK< I >( NULL ); + out->SetName( "" ); } // yrt } else if( names.size( ) > 1 ) { // Read image series - std::set< std::string > ordered_names; - for( unsigned int i = 0; i < names.size( ); ++i ) - ordered_names.insert( names[ i ] ); - typedef itk::ImageSeriesReader< I > _MR; - _MR* reader = - dynamic_cast< _MR* >( this->m_RealProcessObject.GetPointer( ) ); - if( reader == NULL ) - { - this->m_RealProcessObject = _MR::New( ); - reader = - dynamic_cast< _MR* >( this->m_RealProcessObject.GetPointer( ) ); - - } // fi - std::set< std::string >::const_iterator fnIt = ordered_names.begin( ); - for( ; fnIt != ordered_names.end( ); ++fnIt ) - { - reader->AddFileName( *fnIt ); - } + _MR* reader = this->_CreateITK< _MR >( ); + for( unsigned int i = 0; i < names.size( ); ++i ) + reader->AddFileName( names[ i ] ); try { reader->Update( ); - out->SetITKImage< I >( reader->GetOutput( ) ); + out->SetITK< I >( reader->GetOutput( ) ); + out->SetName( names[ 0 ] ); } catch( itk::ExceptionObject& err ) { r = "ImageReader: " + std::string( err.GetDescription( ) ); - out->SetITKImage< I >( NULL ); + out->SetITK< I >( NULL ); + out->SetName( "" ); } // yrt }