]> Creatis software - clitk.git/blob - tools/clitkSignalFilter.cxx
Initial revision
[clitk.git] / tools / clitkSignalFilter.cxx
1 /*=========================================================================
2                                                                                 
3   Program:   clitk
4   Module:    $RCSfile: clitkSignalFilter.cxx,v $
5   Language:  C++
6   Date:      $Date: 2010/01/06 13:31:56 $
7   Version:   $Revision: 1.1 $
8                                                                                 
9   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
10   l'Image). All rights reserved. See Doc/License.txt or
11   http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.
12                                                                                 
13      This software is distributed WITHOUT ANY WARRANTY; without even
14      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15      PURPOSE.  See the above copyright notices for more information.
16                                                                              
17 =========================================================================*/
18
19 #ifndef CLITKSIGNALFILTER_CXX
20 #define CLITKSIGNALFILTER_CXX
21 /**
22    =================================================
23    * @file   clitkSignalFilter.cxx
24    * @author Jef Vandemeulebroucke <jefvdmb@gmail.com>
25    * @date   23 April 2008
26    * 
27    * @brief  "Apply a filter to the signal"                  
28    =================================================*/
29
30 // clitk include
31 #include "clitkSignalFilter_ggo.h"
32 #include "clitkSignal.h"
33 #include "clitkIO.h"
34 #include "clitkIOCommon.h"
35
36 int main(int argc, char * argv[]) {
37
38   // Init command line
39   GGO(clitkSignalFilter, args_info);
40   CLITK_INIT;
41
42   //input
43   clitk::Signal input;
44   input.Read (args_info.input_arg);
45   clitk::Signal input2;
46   if (args_info.input2_given) input2.Read(args_info.input2_arg);
47
48   double p1 = args_info.p1_arg;
49   double p2 = args_info.p2_arg;
50
51   //process
52
53   if( args_info.multiply_flag) input*=input2;
54   if( args_info.divide_flag) input/=input2;
55   if( args_info.norm_flag) input=input.Normalize (p1, p2);
56   if( args_info.highPass_flag) input=input.HighPassFilter(p1,p2);
57   if( args_info.lowPass_flag) input=input.LowPassFilter(p1,p2);
58   if( args_info.detect_flag) input=input.DetectLocalExtrema(static_cast<unsigned int >(p1));
59   if( args_info.limPhase_flag) input=input.LimPhase();
60   if( args_info.monPhase_flag) input=input.MonPhase();
61   if( args_info.monPhaseDE_flag) input=input.MonPhaseDE(p1,p2);
62   if( args_info.average_flag) input=input.MovingAverageFilter(static_cast<unsigned int> (p1));
63   if( args_info.ssd_flag) std::cout<<"The sqrt of the mean SSD is "<< input.SSD(input2)<<std::endl;
64   if (args_info.gauss_flag)input=input.GaussLikeFilter();
65   if (args_info.rescale_flag)input=input.NormalizeMeanStdDev(p1, p2);
66   if (args_info.interp_flag)input=input.LinearlyInterpolateScatteredValues();
67   // if( args_info.approx_flag) input=input.ApproximateScatteredValuesWithBSplines(static_cast<unsigned int>(p1),static_cast<unsigned int>(p2));
68   if( args_info.limit_flag) input=input.LimitSignalRange();
69 //   if( args_info._flag) input=input;
70 //   if( args_info._flag) input=input;
71 //   if( args_info._flag) input=input;
72 //   if( args_info._flag) input=input;
73   // if( args_info._flag) input=input;
74   // if( args_info._flag) input=input;
75   // if( args_info._flag) input=input;
76
77   if (args_info.output_given) input.Write(args_info.output_arg);
78
79   return EXIT_SUCCESS;
80   
81 }
82
83 #endif