]> Creatis software - cpPlugins.git/blob - appli/examples/example_LightCompensation.cxx
...
[cpPlugins.git] / appli / examples / example_LightCompensation.cxx
1 #include <cstdlib>
2 #include <iostream>
3 #include <string>
4
5 #include <itkImage.h>
6 #include <itkImageFileReader.h>
7 #include <itkImageFileWriter.h>
8 #include <itkRGBPixel.h>
9
10 #include <cpPlugins/Extensions/Algorithms/LightCompensationFilter.h>
11
12 // -------------------------------------------------------------------------
13 const unsigned int Dim = 2;
14 typedef itk::RGBPixel< unsigned char > TPixel;
15 typedef itk::Image< TPixel, Dim >      TImage;
16
17 // -------------------------------------------------------------------------
18 int main( int argc, char* argv[] )
19 {
20   if( argc < 3 )
21   {
22     std::cerr
23       << "Usage: " << argv[ 0 ]
24       << " input_image output_image"
25       << std::endl;
26     return( 1 );
27
28   } // fi
29   std::string input_image_fn = argv[ 1 ];
30   std::string output_image_fn = argv[ 2 ];
31
32   // Read image
33   itk::ImageFileReader< TImage >::Pointer input_image_reader =
34     itk::ImageFileReader< TImage >::New( );
35   input_image_reader->SetFileName( input_image_fn );
36   try
37   {
38     input_image_reader->Update( );
39   }
40   catch( itk::ExceptionObject& err )
41   {
42     std::cerr << "Error caught: " << err << std::endl;
43     return( 1 );
44
45   } // yrt
46   TImage::Pointer input_image = input_image_reader->GetOutput( );
47
48   cpPlugins::Extensions::Algorithms::
49     LightCompensationFilter< TImage >::Pointer filter =
50     cpPlugins::Extensions::Algorithms::
51     LightCompensationFilter< TImage >::New( );
52   filter->SetInput( input_image );
53   filter->Update( );
54
55   // Write image
56   itk::ImageFileWriter< TImage >::Pointer output_image_writer =
57     itk::ImageFileWriter< TImage >::New( );
58   output_image_writer->SetInput( filter->GetOutput( ) );
59   output_image_writer->SetFileName( output_image_fn );
60   try
61   {
62     output_image_writer->Update( );
63   }
64   catch( itk::ExceptionObject& err )
65   {
66     std::cerr << "Error caught: " << err << std::endl;
67     return( 1 );
68
69   } // yrt
70
71   return( 0 );
72 }
73
74 // eof - $RCSfile$