]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Plugins/RGBImageToHSVChannelsFilter.cxx
Image visualization objects updated
[cpPlugins.git] / lib / cpPlugins / Plugins / RGBImageToHSVChannelsFilter.cxx
index 8d5403455b95d72e3766daa58cd0b2965a608412..166dfee3875b4b7f414a8cd4b81224b55da5f4bd 100644 (file)
@@ -1,23 +1,31 @@
 #include <cpPlugins/Plugins/RGBImageToHSVChannelsFilter.h>
 #include <cpPlugins/Interface/Image.h>
-#include <cpPlugins/Extensions/Algorithms/RGBImageToHSVChannelsFilter.h>
+#include <cpPlugins/Extensions/Algorithms/RGBImageToOtherChannelsFilter.h>
+#include <cpPlugins/Extensions/Algorithms/RGBToHSVFunction.h>
 
 #define ITK_MANUAL_INSTANTIATION
 #include <itkImage.h>
 #include <itkRGBPixel.h>
 
 // -------------------------------------------------------------------------
-#define cpPlugins_RGBImageToHSVChannelsFilter_Dimension( r, d, o, f )   \
+#define cpPlugins_RGB2HSV_Dimension( r, d, o, f )                       \
   if( dynamic_cast< itk::ImageBase< d >* >( o ) != NULL )               \
     r = this->f< d >( )
 
 // -------------------------------------------------------------------------
-#define cpPlugins_RGBImageToHSVChannelsFilter_RGB( r, p, d, o, f )      \
+#define cpPlugins_RGB2HSV_RGB( r, p, d, o, f )                          \
   if(                                                                   \
     dynamic_cast< itk::Image< itk::RGBPixel< p >, d >* >( o ) != NULL   \
     )                                                                   \
     r = this->f< p, d >( )
 
+// -------------------------------------------------------------------------
+std::string cpPlugins::Plugins::RGBImageToHSVChannelsFilter::
+GetClassName( ) const
+{
+  return( "cpPlugins::Plugins::RGBImageToHSVChannelsFilter" );
+}
+
 // -------------------------------------------------------------------------
 cpPlugins::Plugins::RGBImageToHSVChannelsFilter::
 RGBImageToHSVChannelsFilter( )
@@ -29,7 +37,7 @@ RGBImageToHSVChannelsFilter( )
   this->_MakeOutput< cpPlugins::Interface::Image >( 1 );
   this->_MakeOutput< cpPlugins::Interface::Image >( 2 );
 
-  this->m_DefaultParameters.clear( );
+  this->m_DefaultParameters.Clear( );
 }
 
 // -------------------------------------------------------------------------
@@ -38,13 +46,6 @@ cpPlugins::Plugins::RGBImageToHSVChannelsFilter::
 {
 }
 
-// -------------------------------------------------------------------------
-std::string cpPlugins::Plugins::RGBImageToHSVChannelsFilter::
-GetClassName( ) const
-{
-  return( "cpPlugins::Plugins::RGBImageToHSVChannelsFilter" );
-}
-
 // -------------------------------------------------------------------------
 std::string cpPlugins::Plugins::RGBImageToHSVChannelsFilter::
 _GenerateData( )
@@ -52,10 +53,10 @@ _GenerateData( )
   itk::DataObject* o = this->_GetInput( 0 );
 
   std::string r = "cpPlugins::Plugins::RGBImageToHSVChannelsFilter: itk::Image dimension not supported.";
-  cpPlugins_RGBImageToHSVChannelsFilter_Dimension( r, 1, o, _GD0 );
-  else cpPlugins_RGBImageToHSVChannelsFilter_Dimension( r, 2, o, _GD0 );
-  else cpPlugins_RGBImageToHSVChannelsFilter_Dimension( r, 3, o, _GD0 );
-  else cpPlugins_RGBImageToHSVChannelsFilter_Dimension( r, 4, o, _GD0 );
+  cpPlugins_RGB2HSV_Dimension( r, 1, o, _GD0 );
+  else cpPlugins_RGB2HSV_Dimension( r, 2, o, _GD0 );
+  else cpPlugins_RGB2HSV_Dimension( r, 3, o, _GD0 );
+  else cpPlugins_RGB2HSV_Dimension( r, 4, o, _GD0 );
   return( r );
 }
 
@@ -68,16 +69,16 @@ _GD0( )
     dynamic_cast< itk::ImageBase< D >* >( this->_GetInput( 0 ) );
 
   std::string r = "cpPlugins::Plugins::RGBImageToHSVChannelsFilter: itk::Image pixel type not supported";
-  cpPlugins_RGBImageToHSVChannelsFilter_RGB( r, char, D, i, _GD1 );
-  else cpPlugins_RGBImageToHSVChannelsFilter_RGB( r, short, D, i, _GD1 );
-  else cpPlugins_RGBImageToHSVChannelsFilter_RGB( r, int, D, i, _GD1 );
-  else cpPlugins_RGBImageToHSVChannelsFilter_RGB( r, long, D, i, _GD1 );
-  else cpPlugins_RGBImageToHSVChannelsFilter_RGB( r, unsigned char, D, i, _GD1 );
-  else cpPlugins_RGBImageToHSVChannelsFilter_RGB( r, unsigned short, D, i, _GD1 );
-  else cpPlugins_RGBImageToHSVChannelsFilter_RGB( r, unsigned int, D, i, _GD1 );
-  else cpPlugins_RGBImageToHSVChannelsFilter_RGB( r, unsigned long, D, i, _GD1 );
-  else cpPlugins_RGBImageToHSVChannelsFilter_RGB( r, float, D, i, _GD1 );
-  else cpPlugins_RGBImageToHSVChannelsFilter_RGB( r, double, D, i, _GD1 );
+  cpPlugins_RGB2HSV_RGB( r, char, D, i, _GD1 );
+  else cpPlugins_RGB2HSV_RGB( r, short, D, i, _GD1 );
+  else cpPlugins_RGB2HSV_RGB( r, int, D, i, _GD1 );
+  else cpPlugins_RGB2HSV_RGB( r, long, D, i, _GD1 );
+  else cpPlugins_RGB2HSV_RGB( r, unsigned char, D, i, _GD1 );
+  else cpPlugins_RGB2HSV_RGB( r, unsigned short, D, i, _GD1 );
+  else cpPlugins_RGB2HSV_RGB( r, unsigned int, D, i, _GD1 );
+  else cpPlugins_RGB2HSV_RGB( r, unsigned long, D, i, _GD1 );
+  else cpPlugins_RGB2HSV_RGB( r, float, D, i, _GD1 );
+  else cpPlugins_RGB2HSV_RGB( r, double, D, i, _GD1 );
   return( r );
 }
 
@@ -88,24 +89,26 @@ _GD1( )
 {
   typedef itk::Image< itk::RGBPixel< P >, D > _TImage;
   typedef itk::Image< P, D > _TChannel;
+  typedef cpPlugins::Extensions::Algorithms::RGBToHSVFunction< P > _TFunction;
   typedef cpPlugins::Extensions::Algorithms::
-    RGBImageToHSVChannelsFilter< _TImage, _TChannel > _TFilter;
+    RGBImageToOtherChannelsFilter< _TImage, _TChannel, _TFunction > _TFilter;
 
   // Filter creation
   _TFilter* filter =
-    dynamic_cast< _TFilter* >( this->m_Filter.GetPointer( ) );
+    dynamic_cast< _TFilter* >( this->m_RealProcessObject.GetPointer( ) );
   if( filter == NULL )
   {
-    this->m_Filter = _TFilter::New( );
-    filter = dynamic_cast< _TFilter* >( this->m_Filter.GetPointer( ) );
+    this->m_RealProcessObject = _TFilter::New( );
+    filter =
+      dynamic_cast< _TFilter* >( this->m_RealProcessObject.GetPointer( ) );
 
   } // fi
   filter->SetInput( dynamic_cast< _TImage* >( this->_GetInput( 0 ) ) );
   filter->Update( );
 
-  this->_SetOutput( 0, filter->GetHueOutput( ) );
-  this->_SetOutput( 1, filter->GetSaturationOutput( ) );
-  this->_SetOutput( 2, filter->GetValueOutput( ) );
+  this->_SetOutput( 0, filter->GetChannel1( ) );
+  this->_SetOutput( 1, filter->GetChannel2( ) );
+  this->_SetOutput( 2, filter->GetChannel3( ) );
 
   return( "" );
 }