#ifndef __bbSlicerN4ITKMRIBiascorrection_h_INCLUDED__ #define __bbSlicerN4ITKMRIBiascorrection_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 N4ITKMRIBiascorrection : public bbtk::AtomicBlackBox { BBTK_BLACK_BOX_INTERFACE ( N4ITKMRIBiascorrection , bbtk::AtomicBlackBox ) ; // GENERATED ARGS BBTK_DECLARE_INPUT ( inputImageName , std::string ); BBTK_DECLARE_INPUT ( maskImageName , std::string ); BBTK_DECLARE_INPUT ( outputImageName , std::string ); BBTK_DECLARE_INPUT ( outputBiasFieldName , std::string ); BBTK_DECLARE_INPUT ( numberOfIterations , std::vector ); BBTK_DECLARE_INPUT ( convergenceThreshold , float ); BBTK_DECLARE_INPUT ( initialMeshResolution , std::vector ); BBTK_DECLARE_INPUT ( splineDistance , float ); BBTK_DECLARE_INPUT ( shrinkFactor , int ); BBTK_DECLARE_INPUT ( bsplineOrder , int ); BBTK_DECLARE_INPUT ( weightImageName , std::string ); BBTK_DECLARE_INPUT ( histogramSharpening , std::vector ); // EO GENERATED ARGS BBTK_PROCESS ( Process ) ; void Process ( ) ; private: void execute ( std::string lib , int _argc , char * _argv[] ) ; } ; BBTK_BEGIN_DESCRIBE_BLACK_BOX ( N4ITKMRIBiascorrection , bbtk::AtomicBlackBox ) ; BBTK_NAME ( "N4ITKMRIBiascorrection" ) ; BBTK_AUTHOR ( "Nick Tustison algorithm and ITK implementation, Andrey Fedorov Slicer wrapping, Ron Kikinis PI" ) ; BBTK_DESCRIPTION ( "Performs MRI bias correction using N4 algorithm. This module is based on the ITK filters contributed in the following publication: Tustison N, Gee J 'N4ITK: Nick's N3 ITK Implementation For MRI Bias Field Correction', The Insight Journal 2009 January-June, http://hdl.handle.net/10380/3053" ) ; BBTK_CATEGORY ( "Filtering" ) ; // GENERATED DESCRPTION BBTK_INPUT(N4ITKMRIBiascorrection , inputImageName , "inputImageName" , std::string, ""); BBTK_INPUT(N4ITKMRIBiascorrection , maskImageName , "maskImageName" , std::string, ""); BBTK_INPUT(N4ITKMRIBiascorrection , outputImageName , "outputImageName" , std::string, ""); BBTK_INPUT(N4ITKMRIBiascorrection , outputBiasFieldName , "outputBiasFieldName" , std::string, ""); BBTK_INPUT(N4ITKMRIBiascorrection , numberOfIterations , "numberOfIterations" , std::vector, ""); BBTK_INPUT(N4ITKMRIBiascorrection , convergenceThreshold , "convergenceThreshold" , float, ""); BBTK_INPUT(N4ITKMRIBiascorrection , initialMeshResolution , "initialMeshResolution" , std::vector, ""); BBTK_INPUT(N4ITKMRIBiascorrection , splineDistance , "splineDistance" , float, ""); BBTK_INPUT(N4ITKMRIBiascorrection , shrinkFactor , "shrinkFactor" , int, ""); BBTK_INPUT(N4ITKMRIBiascorrection , bsplineOrder , "bsplineOrder" , int, ""); BBTK_INPUT(N4ITKMRIBiascorrection , weightImageName , "weightImageName" , std::string, ""); BBTK_INPUT(N4ITKMRIBiascorrection , histogramSharpening , "histogramSharpening" , std::vector, ""); // EO GENERATED DESCRIPTION BBTK_END_DESCRIBE_BLACK_BOX ( N4ITKMRIBiascorrection ) ; } #endif // __bbSlicerN4ITKMRIBiascorrection_h_INCLUDED__