]> Creatis software - cpPlugins.git/commitdiff
New filter added
authorLeonardo Florez-Valencia <florez-l@javeriana.edu.co>
Mon, 27 Apr 2015 19:40:55 +0000 (14:40 -0500)
committerLeonardo Florez-Valencia <florez-l@javeriana.edu.co>
Mon, 27 Apr 2015 19:40:55 +0000 (14:40 -0500)
appli/examples/example_LightCompensation.cxx
lib/cpPlugins/Extensions/Algorithms/LightCompensationFilter.hxx

index 44062edddf794065568fae1af72215d89356ee67..cb1a1d267a9454204224ad798173cc9806b71fd5 100644 (file)
@@ -4,6 +4,7 @@
 
 #include <itkImage.h>
 #include <itkImageFileReader.h>
+#include <itkImageFileWriter.h>
 #include <itkRGBPixel.h>
 
 #include <cpPlugins/Extensions/Algorithms/LightCompensationFilter.h>
@@ -51,6 +52,22 @@ int main( int argc, char* argv[] )
   filter->SetInput( input_image );
   filter->Update( );
 
+  // Write image
+  itk::ImageFileWriter< TImage >::Pointer output_image_writer =
+    itk::ImageFileWriter< TImage >::New( );
+  output_image_writer->SetInput( filter->GetOutput( ) );
+  output_image_writer->SetFileName( output_image_fn );
+  try
+  {
+    output_image_writer->Update( );
+  }
+  catch( itk::ExceptionObject& err )
+  {
+    std::cerr << "Error caught: " << err << std::endl;
+    return( 1 );
+
+  } // yrt
+
   return( 0 );
 }
 
index 71dc0f60c0767e828eafa94f03bcd0bc1a522e98..fef98fd6e51e7fffedb8fd316978dfb12cb149a2 100644 (file)
@@ -31,6 +31,8 @@ template< class I >
 void cpPlugins::Extensions::Algorithms::LightCompensationFilter< I >::
 BeforeThreadedGenerateData( )
 {
+  this->Superclass::BeforeThreadedGenerateData( );
+
   I* input = const_cast< I* >( this->GetInput( ) );
 
   typename TMeanCalculator::Pointer mc = TMeanCalculator::New( );
@@ -66,12 +68,17 @@ ThreadedGenerateData( const TRegion& region, itk::ThreadIdType id )
     double r = double( iIt.Get( )[ 0 ] ) * this->m_Coefficient[ 0 ];
     double g = double( iIt.Get( )[ 1 ] ) * this->m_Coefficient[ 1 ];
     double b = double( iIt.Get( )[ 2 ] ) * this->m_Coefficient[ 2 ];
+
     if( r > max_value ) r = max_value;
     if( g > max_value ) g = max_value;
     if( b > max_value ) b = max_value;
-    oIt.Get( ).Set(
-      _TPixelChannel( r ), _TPixelChannel( g ), _TPixelChannel( b )
-      );
+
+    typename I::PixelType pix;
+    pix.SetRed( _TPixelChannel( r ) );
+    pix.SetGreen( _TPixelChannel( g ) );
+    pix.SetBlue( _TPixelChannel( b ) );
+
+    oIt.Set( pix );
 
   } // rof
 }
@@ -81,6 +88,7 @@ template< class I >
 void cpPlugins::Extensions::Algorithms::LightCompensationFilter< I >::
 AfterThreadedGenerateData( )
 {
+  this->Superclass::AfterThreadedGenerateData( );
 }
 
 #endif // __CPPLUGINS__EXTENSIONS__ALGORITHMS__LIGHTCOMPENSATIONFILTER__HXX__