#ifndef __bbSlicerMRIBiasFieldCorrection_h_INCLUDED__ #define __bbSlicerMRIBiasFieldCorrection_h_INCLUDED__ #include "bbSlicer_EXPORT.h" #include "bbtkAtomicBlackBox.h" #include #include #include #include #include #include #include #include #include #include #include #include "CreationTool.h" namespace bbSlicer { class bbSlicer_EXPORT MRIBiasFieldCorrection : public bbtk::AtomicBlackBox { BBTK_BLACK_BOX_INTERFACE ( MRIBiasFieldCorrection , bbtk::AtomicBlackBox ) ; // GENERATED ARGS BBTK_DECLARE_INPUT ( InputImage , std::string ); BBTK_DECLARE_INPUT ( InputMask , std::string ); BBTK_DECLARE_INPUT ( OutputImage , std::string ); BBTK_DECLARE_INPUT ( AlgorithmType , std::string ); BBTK_DECLARE_INPUT ( ShrinkFactor , int ); BBTK_DECLARE_INPUT ( MaximumNumberOfIterations , int ); BBTK_DECLARE_INPUT ( NumberOfFittingLevels , int ); BBTK_DECLARE_INPUT ( WienerFilterNoise , double ); BBTK_DECLARE_INPUT ( FullWidthAtHalfMaximum , double ); BBTK_DECLARE_INPUT ( ConvergenceThreshold , double ); // EO GENERATED ARGS BBTK_PROCESS ( Process ) ; void Process ( ) ; private: void execute ( std::string lib , int _argc , char * _argv[] ) ; } ; BBTK_BEGIN_DESCRIBE_BLACK_BOX ( MRIBiasFieldCorrection , bbtk::AtomicBlackBox ) ; BBTK_NAME ( "MRIBiasFieldCorrection" ) ; BBTK_AUTHOR ( "Sylvain Jaume (MIT)" ) ; 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)." ) ; BBTK_CATEGORY ( "Legacy.Filtering" ) ; // GENERATED DESCRPTION BBTK_INPUT(MRIBiasFieldCorrection , InputImage , "InputImage" , std::string, ""); BBTK_INPUT(MRIBiasFieldCorrection , InputMask , "InputMask" , std::string, ""); BBTK_INPUT(MRIBiasFieldCorrection , OutputImage , "OutputImage" , std::string, ""); BBTK_INPUT(MRIBiasFieldCorrection , AlgorithmType , "AlgorithmType" , std::string, ""); BBTK_INPUT(MRIBiasFieldCorrection , ShrinkFactor , "ShrinkFactor" , int, ""); BBTK_INPUT(MRIBiasFieldCorrection , MaximumNumberOfIterations , "MaximumNumberOfIterations" , int, ""); BBTK_INPUT(MRIBiasFieldCorrection , NumberOfFittingLevels , "NumberOfFittingLevels" , int, ""); BBTK_INPUT(MRIBiasFieldCorrection , WienerFilterNoise , "WienerFilterNoise" , double, ""); BBTK_INPUT(MRIBiasFieldCorrection , FullWidthAtHalfMaximum , "FullWidthAtHalfMaximum" , double, ""); BBTK_INPUT(MRIBiasFieldCorrection , ConvergenceThreshold , "ConvergenceThreshold" , double, ""); // EO GENERATED DESCRIPTION BBTK_END_DESCRIBE_BLACK_BOX ( MRIBiasFieldCorrection ) ; } #endif // __bbSlicerMRIBiasFieldCorrection_h_INCLUDED__