From 916542013b83e607bbcf2da026fae02ddf88be1a Mon Sep 17 00:00:00 2001 From: Jose Luis Guzman Date: Wed, 21 Oct 2015 21:32:11 +0200 Subject: [PATCH] modifications for filters and installer --- appli/ImageMPR/CMakeLists.txt | 4 +- appli/examples/CMakeLists.txt | 2 +- .../Algorithms/MacheteImageFilter.h | 18 ++++- .../Algorithms/MacheteImageFilter.hxx | 38 ++++++++-- .../BasicFilters/BinaryErodeImageFilter.h | 2 +- .../BasicFilters/MacheteImageFilter.cxx | 75 ++++++++++--------- .../Plugins/BasicFilters/MacheteImageFilter.h | 2 +- .../Plugins/BasicFilters/MedianImageFilter.h | 2 +- 8 files changed, 93 insertions(+), 50 deletions(-) diff --git a/appli/ImageMPR/CMakeLists.txt b/appli/ImageMPR/CMakeLists.txt index d67386d..3a63336 100644 --- a/appli/ImageMPR/CMakeLists.txt +++ b/appli/ImageMPR/CMakeLists.txt @@ -277,10 +277,10 @@ install(TARGETS ImageMPR DESTINATION bin COMPONENT applications) -set(CPACK_COMPONENT_APPLICATIONS_DISPLAY_NAME "Standard MPR viewer application") +#set(CPACK_COMPONENT_APPLICATIONS_DISPLAY_NAME "Standard MPR viewer application") #set (CPACK_NSIS_MODIFY_PATH "ON") -SET( CPACK_PACKAGE_EXECUTABLES ImageMPR ImageMPR ) +#SET( CPACK_PACKAGE_EXECUTABLES ImageMPR ImageMPR ) SET( CPACK_CREATE_DESKTOP_LINKS ImageMPR ) INCLUDE(CPack) \ No newline at end of file diff --git a/appli/examples/CMakeLists.txt b/appli/examples/CMakeLists.txt index 35353a0..5d197de 100644 --- a/appli/examples/CMakeLists.txt +++ b/appli/examples/CMakeLists.txt @@ -5,7 +5,7 @@ SET( EXAMPLES_PROGRAMS_ONLY_EXTENSIONS - example_TestQuadSplitter + #example_TestQuadSplitter ) FOREACH(prog ${EXAMPLES_PROGRAMS_ONLY_EXTENSIONS}) diff --git a/lib/cpExtensions/Algorithms/MacheteImageFilter.h b/lib/cpExtensions/Algorithms/MacheteImageFilter.h index 4dde2dc..d9d3c32 100644 --- a/lib/cpExtensions/Algorithms/MacheteImageFilter.h +++ b/lib/cpExtensions/Algorithms/MacheteImageFilter.h @@ -29,9 +29,18 @@ namespace cpExtensions /** Run-time type information (and related methods). */ itkTypeMacro(MacheteImageFilter, ImageToImageFilter); + + typedef typename I::PixelType RadiusType; + //typedef typename I::SizeValueType RadiusValueType; + + itkGetConstReferenceMacro(Radius, RadiusType); - void SetRadius(double radius); - void SetPoint(itk::Point point); + + void SetRadius(const RadiusType & rad); + //void SetRadius(const RadiusValueType & rad); + + void SetPoint(itk::Point & point); + void SetPoint(const double & x, const double & y, const double & z); protected: MacheteImageFilter(){} @@ -40,13 +49,14 @@ namespace cpExtensions /** Does the real work. */ virtual void GenerateData(); + RadiusType m_Radius; + itk::Point point; private: MacheteImageFilter(const Self &); //purposely not implemented void operator=(const Self &); //purposely not implemented - double radius; - itk::Point point; + }; } // ecapseman diff --git a/lib/cpExtensions/Algorithms/MacheteImageFilter.hxx b/lib/cpExtensions/Algorithms/MacheteImageFilter.hxx index 4a38149..a984df1 100644 --- a/lib/cpExtensions/Algorithms/MacheteImageFilter.hxx +++ b/lib/cpExtensions/Algorithms/MacheteImageFilter.hxx @@ -32,10 +32,10 @@ void cpExtensions::Algorithms::MacheteImageFilter< I, O> otherPoint[0] = p0[0]; otherPoint[1] = p0[1]; otherPoint[2] = p0[2]; - otherPoint[2] = this->point[2]; // TODO : Solve this hammer + //otherPoint[2] = this->point[2]; // TODO : Solve this hammer double dist = this->point.EuclideanDistanceTo(otherPoint); - if (dist <= this->radius) + if (dist <= this->m_Radius) { outputIterator.Set(0); } @@ -48,18 +48,44 @@ void cpExtensions::Algorithms::MacheteImageFilter< I, O> ++outputIterator; } + } template< class I, class O> -void cpExtensions::Algorithms::MacheteImageFilter< I, O>::SetRadius(double rad){ - this->radius = rad; +void cpExtensions::Algorithms::MacheteImageFilter< I, O>::SetRadius(const RadiusType & rad) +{ + if (this->m_Radius != rad) + { + this->m_Radius = rad; + this->Modified(); + } } +//template< class I, class O> +//void cpExtensions::Algorithms::MacheteImageFilter< I, O>::SetRadius(const RadiusValueType & rad) +//{ +// RadiusType r; +// r.Fill(rad); +// this->SetRadius(r); +//} + template< class I, class O> -void cpExtensions::Algorithms::MacheteImageFilter< I, O>::SetPoint(itk::Point point){ - this->point = point; +void cpExtensions::Algorithms::MacheteImageFilter< I, O>::SetPoint(itk::Point & p){ + if (point != p) + { + this->point = p; + this->Modified(); + } } +template< class I, class O> +void cpExtensions::Algorithms::MacheteImageFilter< I, O>::SetPoint(const double & x, const double & y, const double & z) +{ + this->point[0] = x; + this->point[1] = y; + this->point[2] = z; + this->Modified(); +} diff --git a/lib/cpPlugins/Plugins/BasicFilters/BinaryErodeImageFilter.h b/lib/cpPlugins/Plugins/BasicFilters/BinaryErodeImageFilter.h index ac99136..3ad43fe 100644 --- a/lib/cpPlugins/Plugins/BasicFilters/BinaryErodeImageFilter.h +++ b/lib/cpPlugins/Plugins/BasicFilters/BinaryErodeImageFilter.h @@ -27,7 +27,7 @@ namespace cpPlugins ); cpPlugins_Id_Macro( cpPlugins::BasicFilters::BinaryErodeImageFilter, - "ImageToImageFilter" + "ImageToBinaryImageFilter" ); protected: diff --git a/lib/cpPlugins/Plugins/BasicFilters/MacheteImageFilter.cxx b/lib/cpPlugins/Plugins/BasicFilters/MacheteImageFilter.cxx index ff4e03a..f56c6e1 100644 --- a/lib/cpPlugins/Plugins/BasicFilters/MacheteImageFilter.cxx +++ b/lib/cpPlugins/Plugins/BasicFilters/MacheteImageFilter.cxx @@ -9,85 +9,92 @@ // ------------------------------------------------------------------------- cpPlugins::BasicFilters::MacheteImageFilter:: -MacheteImageFilter( ) - : Superclass( ) +MacheteImageFilter() +: Superclass() { - this->_AddInput( "Input" ); - this->_MakeOutput< cpPlugins::Interface::Image >( "Output" ); + this->_AddInput("Input"); + this->_MakeOutput< cpPlugins::Interface::Image >("Output"); + + this->m_Parameters->ConfigureAsReal("Radius", 20); + //this->m_Parameters->ConfigureAsPoint("Point", 3, 3); + this->m_Parameters->ConfigureAsReal("X", 30); + this->m_Parameters->ConfigureAsReal("Y", 30); + this->m_Parameters->ConfigureAsReal("Z", 30); + - this->m_Parameters->ConfigureAsUint( "Radius", 2 ); - } // ------------------------------------------------------------------------- cpPlugins::BasicFilters::MacheteImageFilter:: -~MacheteImageFilter( ) +~MacheteImageFilter() { } // ------------------------------------------------------------------------- std::string cpPlugins::BasicFilters::MacheteImageFilter:: -_GenerateData( ) +_GenerateData() { cpPlugins::Interface::Image* image = - this->GetInput< cpPlugins::Interface::Image >( "Input" ); - if( image == NULL ) - return( "MacheteImageFilter: No input image." ); + this->GetInput< cpPlugins::Interface::Image >("Input"); + if (image == NULL) + return("MacheteImageFilter: No input image."); itk::DataObject* itk_image = NULL; std::string r = ""; - cpPlugins_Image_Demangle_AllScalarTypes( 2, image, itk_image, r, _GD0 ); - else cpPlugins_Image_Demangle_AllScalarTypes( 3, image, itk_image, r, _GD0 ); - else cpPlugins_Image_Demangle_AllScalarTypes( 4, image, itk_image, r, _GD0 ); + cpPlugins_Image_Demangle_AllScalarTypes(2, image, itk_image, r, _GD0); + else cpPlugins_Image_Demangle_AllScalarTypes(3, image, itk_image, r, _GD0); + else cpPlugins_Image_Demangle_AllScalarTypes(4, image, itk_image, r, _GD0); else r = "MacheteImageFilter: Input image type not supported."; - return( r ); + return(r); } // ------------------------------------------------------------------------- template< class I > std::string cpPlugins::BasicFilters::MacheteImageFilter:: -_GD0( itk::DataObject* image ) +_GD0(itk::DataObject* image) { return( this->_RealGD< I, itk::Image< unsigned char, I::ImageDimension > >( - image - ) + image + ) ); } // ------------------------------------------------------------------------- template< class I, class O > inline std::string cpPlugins::BasicFilters::MacheteImageFilter:: -_RealGD( itk::DataObject* image ) +_RealGD(itk::DataObject* image) { typedef cpExtensions::Algorithms::MacheteImageFilter< I, O > _F; - //typedef typename _F::radius _RT; + typedef typename I::PixelType _RT; // Get parameters - //_RT rad_val; - //rad_val.Fill( this->m_Parameters->GetUint( "Radius" ) ); + + _RT rad_val = _RT(this->m_Parameters->GetReal("Radius")); + + double pointx = this->m_Parameters->GetReal("X"); + double pointy = this->m_Parameters->GetReal("Y"); + double pointz = this->m_Parameters->GetReal("Z"); // Configure filter + _F* filter = this->_CreateITK< _F >(); + filter->SetInput(dynamic_cast(image)); + filter->SetRadius(rad_val); + + filter->SetPoint(pointx, pointy, pointz); - _F* filter = this->_CreateITK< _F >(); - filter->SetInput(dynamic_cast< I* >(image)); - filter->SetRadius(this->m_Parameters->GetUint("Radius")); filter->Update(); - //_F* filter = this->_CreateITK< _F >( ); - //filter->SetInput( dynamic_cast< I* >( image ) ); - //filter->Update( ); - // Connect output cpPlugins::Interface::Image* out = - this->GetOutput< cpPlugins::Interface::Image >( "Output" ); - if( out != NULL ) + this->GetOutput< cpPlugins::Interface::Image >("Output"); + if (out != NULL) { - //out->SetITK< O >( filter->GetOutput( ) ); - return( "" ); + out->SetITK< O >( filter->GetOutput( ) ); + return(""); } else - return( "MacheteImageFilter: output not correctly created." ); + return("MacheteImageFilter: output not correctly created."); } // eof - $RCSfile$ diff --git a/lib/cpPlugins/Plugins/BasicFilters/MacheteImageFilter.h b/lib/cpPlugins/Plugins/BasicFilters/MacheteImageFilter.h index ab7a6e9..267f970 100644 --- a/lib/cpPlugins/Plugins/BasicFilters/MacheteImageFilter.h +++ b/lib/cpPlugins/Plugins/BasicFilters/MacheteImageFilter.h @@ -27,7 +27,7 @@ namespace cpPlugins ); cpPlugins_Id_Macro( cpPlugins::BasicFilters::MacheteImageFilter, - "ImageToImageFilter" + "ImageToBinaryImageFilter" ); protected: diff --git a/lib/cpPlugins/Plugins/BasicFilters/MedianImageFilter.h b/lib/cpPlugins/Plugins/BasicFilters/MedianImageFilter.h index 1e491e7..c036a1e 100644 --- a/lib/cpPlugins/Plugins/BasicFilters/MedianImageFilter.h +++ b/lib/cpPlugins/Plugins/BasicFilters/MedianImageFilter.h @@ -27,7 +27,7 @@ namespace cpPlugins ); cpPlugins_Id_Macro( cpPlugins::BasicFilters::MedianImageFilter, - "ImageToImageFilter" + "ImageToBinaryImageFilter" ); protected: -- 2.45.1