#ifndef __bbSlicerRicianLMMSEImageFilter_h_INCLUDED__ #define __bbSlicerRicianLMMSEImageFilter_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 RicianLMMSEImageFilter : public bbtk::AtomicBlackBox { BBTK_BLACK_BOX_INTERFACE ( RicianLMMSEImageFilter , bbtk::AtomicBlackBox ) ; // GENERATED ARGS BBTK_DECLARE_INPUT ( iIterations , int ); BBTK_DECLARE_INPUT ( iRadiusEstimation , std::vector ); BBTK_DECLARE_INPUT ( iRadiusFiltering , std::vector ); BBTK_DECLARE_INPUT ( iMinimumNumberOfUsedVoxelsF , int ); BBTK_DECLARE_INPUT ( iMinimumNumberOfUsedVoxelsE , int ); BBTK_DECLARE_INPUT ( dMinSTD , int ); BBTK_DECLARE_INPUT ( dMaxSTD , int ); BBTK_DECLARE_INPUT ( dResFact , double ); BBTK_DECLARE_INPUT ( bUseAbsoluteValue , bool ); BBTK_DECLARE_INPUT ( inputVolume , std::string ); BBTK_DECLARE_INPUT ( outputVolume , std::string ); // EO GENERATED ARGS BBTK_PROCESS ( Process ) ; void Process ( ) ; private: void execute ( std::string lib , int _argc , char * _argv[] ) ; } ; BBTK_BEGIN_DESCRIBE_BLACK_BOX ( RicianLMMSEImageFilter , bbtk::AtomicBlackBox ) ; BBTK_NAME ( "RicianLMMSEImageFilter" ) ; BBTK_AUTHOR ( "Antonio Tristan Vega, Santiago Aja Fernandez and Marc Niethammer. Partially founded by grant number TEC2007-67073/TCM from the Comision Interministerial de Ciencia y Tecnologia Spain." ) ; BBTK_DESCRIPTION ( "This module reduces noise or unwanted detail on a set of diffusion weighted images. For this, it filters the image in the mean squared error sense using a Rician noise model. Images corresponding to each gradient direction, including baseline, are processed individually. The noise parameter is automatically estimated noise estimation improved but slower.Note that this is a general purpose filter for MRi images. The module jointLMMSE has been specifically designed for DWI volumes and shows a better performance, so its use is recommended instead.A complete description of the algorithm in this module can be found in:S. Aja-Fernandez, M. Niethammer, M. Kubicki, M. Shenton, and C.-F. Westin. Restoration of DWI data using a Rician LMMSE estimator. IEEE Transactions on Medical Imaging, 2710: pp. 1389-1403, Oct. 2008." ) ; BBTK_CATEGORY ( "Diffusion.Denoising" ) ; // GENERATED DESCRPTION BBTK_INPUT(RicianLMMSEImageFilter , iIterations , "iIterations" , int, ""); BBTK_INPUT(RicianLMMSEImageFilter , iRadiusEstimation , "iRadiusEstimation" , std::vector, ""); BBTK_INPUT(RicianLMMSEImageFilter , iRadiusFiltering , "iRadiusFiltering" , std::vector, ""); BBTK_INPUT(RicianLMMSEImageFilter , iMinimumNumberOfUsedVoxelsF , "iMinimumNumberOfUsedVoxelsF" , int, ""); BBTK_INPUT(RicianLMMSEImageFilter , iMinimumNumberOfUsedVoxelsE , "iMinimumNumberOfUsedVoxelsE" , int, ""); BBTK_INPUT(RicianLMMSEImageFilter , dMinSTD , "dMinSTD" , int, ""); BBTK_INPUT(RicianLMMSEImageFilter , dMaxSTD , "dMaxSTD" , int, ""); BBTK_INPUT(RicianLMMSEImageFilter , dResFact , "dResFact" , double, ""); BBTK_INPUT(RicianLMMSEImageFilter , bUseAbsoluteValue , "bUseAbsoluteValue" , bool, ""); BBTK_INPUT(RicianLMMSEImageFilter , inputVolume , "inputVolume" , std::string, ""); BBTK_INPUT(RicianLMMSEImageFilter , outputVolume , "outputVolume" , std::string, ""); // EO GENERATED DESCRIPTION BBTK_END_DESCRIBE_BLACK_BOX ( RicianLMMSEImageFilter ) ; } #endif // __bbSlicerRicianLMMSEImageFilter_h_INCLUDED__