]> Creatis software - creaCLI.git/blob - ModuleCall/GenSrc/bbSlicerMRIBiasFieldCorrection.h
All Slicer modules succesfully compiled into BBTK boxes :P
[creaCLI.git] / ModuleCall / GenSrc / bbSlicerMRIBiasFieldCorrection.h
1 #ifndef __bbSlicerMRIBiasFieldCorrection_h_INCLUDED__
2 #define __bbSlicerMRIBiasFieldCorrection_h_INCLUDED__
3
4 #include "bbSlicer_EXPORT.h"
5 #include "bbtkAtomicBlackBox.h"
6
7 #include <vector>
8 #include <cstdlib>
9 #include <dlfcn.h>
10 #include <sstream>
11 #include <fstream>
12 #include <iostream>
13
14 #include <ModuleDescriptionUtilities.h>
15 #include <ModuleDescriptionParser.h>
16 #include <ModuleParameterGroup.h>
17 #include <ModuleDescription.h>
18 #include <ModuleParameter.h>
19
20 #include "CreationTool.h"
21
22 namespace bbSlicer {
23
24     class bbSlicer_EXPORT MRIBiasFieldCorrection
25     :
26     public bbtk::AtomicBlackBox {
27         BBTK_BLACK_BOX_INTERFACE ( MRIBiasFieldCorrection , bbtk::AtomicBlackBox ) ;
28
29         // GENERATED ARGS        
30         
31 BBTK_DECLARE_INPUT ( InputImage , std::string );
32 BBTK_DECLARE_INPUT ( InputMask , std::string );
33 BBTK_DECLARE_INPUT ( OutputImage , std::string );
34 BBTK_DECLARE_INPUT ( AlgorithmType , std::string );
35 BBTK_DECLARE_INPUT ( ShrinkFactor , int );
36 BBTK_DECLARE_INPUT ( MaximumNumberOfIterations , int );
37 BBTK_DECLARE_INPUT ( NumberOfFittingLevels , int );
38 BBTK_DECLARE_INPUT ( WienerFilterNoise , double );
39 BBTK_DECLARE_INPUT ( FullWidthAtHalfMaximum , double );
40 BBTK_DECLARE_INPUT ( ConvergenceThreshold , double );
41
42         // EO GENERATED ARGS
43
44         BBTK_PROCESS ( Process ) ;
45         void Process ( ) ;
46     private:
47         void execute ( std::string lib , int _argc , char * _argv[] ) ;
48     } ;
49
50     BBTK_BEGIN_DESCRIBE_BLACK_BOX ( MRIBiasFieldCorrection , bbtk::AtomicBlackBox ) ;
51     BBTK_NAME ( "MRIBiasFieldCorrection" ) ;
52     BBTK_AUTHOR ( "Sylvain Jaume MIT" ) ;
53     BBTK_DESCRIPTION ( "Corrects 3D MRI images corrupted by MRI gain field effect.  This module removes the slow-varying intensity variation from a 3D image.  The output image has a higher contrast locally and the visualization and reading of the image are improved.  This is an important pre-processinbg step for image operations requiring intensity perfect images, such as the Expectation Maximization segmentation see EMSegment module. The N3 and N4 methods are described in N4ITK: Nick's N3 ITK Implementation For MRI Bias Field Correction, Tustison N., Gee J., Insight Journal, 2009. http://hdl.handle.net/10380/3053 The Slicer code was contributed by Sylvain Jaume MIT for NA-MIC http://na-mic.org." ) ;
54     BBTK_CATEGORY ( "Legacy.Filtering" ) ;
55
56     // GENERATED DESCRPTION
57     
58 BBTK_INPUT(MRIBiasFieldCorrection , InputImage , "InputImage" , std::string, "");
59 BBTK_INPUT(MRIBiasFieldCorrection , InputMask , "InputMask" , std::string, "");
60 BBTK_INPUT(MRIBiasFieldCorrection , OutputImage , "OutputImage" , std::string, "");
61 BBTK_INPUT(MRIBiasFieldCorrection , AlgorithmType , "AlgorithmType" , std::string, "");
62 BBTK_INPUT(MRIBiasFieldCorrection , ShrinkFactor , "ShrinkFactor" , int, "");
63 BBTK_INPUT(MRIBiasFieldCorrection , MaximumNumberOfIterations , "MaximumNumberOfIterations" , int, "");
64 BBTK_INPUT(MRIBiasFieldCorrection , NumberOfFittingLevels , "NumberOfFittingLevels" , int, "");
65 BBTK_INPUT(MRIBiasFieldCorrection , WienerFilterNoise , "WienerFilterNoise" , double, "");
66 BBTK_INPUT(MRIBiasFieldCorrection , FullWidthAtHalfMaximum , "FullWidthAtHalfMaximum" , double, "");
67 BBTK_INPUT(MRIBiasFieldCorrection , ConvergenceThreshold , "ConvergenceThreshold" , double, "");
68
69     // EO GENERATED DESCRIPTION
70
71     BBTK_END_DESCRIBE_BLACK_BOX ( MRIBiasFieldCorrection ) ;
72 }
73
74 #endif // __bbSlicerMRIBiasFieldCorrection_h_INCLUDED__
75
76