]> Creatis software - creaCLI.git/blobdiff - bbtk_Slicer_PKG/src/bbSlicerJointRicianLMMSEImageFilter.h
All Slicer modules succesfully compiled into BBTK boxes :P
[creaCLI.git] / bbtk_Slicer_PKG / src / bbSlicerJointRicianLMMSEImageFilter.h
diff --git a/bbtk_Slicer_PKG/src/bbSlicerJointRicianLMMSEImageFilter.h b/bbtk_Slicer_PKG/src/bbSlicerJointRicianLMMSEImageFilter.h
new file mode 100644 (file)
index 0000000..ace562e
--- /dev/null
@@ -0,0 +1,66 @@
+#ifndef __bbSlicerJointRicianLMMSEImageFilter_h_INCLUDED__
+#define __bbSlicerJointRicianLMMSEImageFilter_h_INCLUDED__
+
+#include "bbSlicer_EXPORT.h"
+#include "bbtkAtomicBlackBox.h"
+
+#include <vector>
+#include <cstdlib>
+#include <dlfcn.h>
+#include <sstream>
+#include <fstream>
+#include <iostream>
+
+#include <ModuleDescriptionUtilities.h>
+#include <ModuleDescriptionParser.h>
+#include <ModuleParameterGroup.h>
+#include <ModuleDescription.h>
+#include <ModuleParameter.h>
+
+#include "CreationTool.h"
+
+namespace bbSlicer {
+
+    class bbSlicer_EXPORT JointRicianLMMSEImageFilter
+    :
+    public bbtk::AtomicBlackBox {
+        BBTK_BLACK_BOX_INTERFACE ( JointRicianLMMSEImageFilter , bbtk::AtomicBlackBox ) ;
+
+        // GENERATED ARGS        
+        
+BBTK_DECLARE_INPUT ( iRadiusEstimation , std::vector<int> );
+BBTK_DECLARE_INPUT ( iRadiusFiltering , std::vector<int> );
+BBTK_DECLARE_INPUT ( iNumNeighbors , int );
+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 ( JointRicianLMMSEImageFilter , bbtk::AtomicBlackBox ) ;
+    BBTK_NAME ( "JointRicianLMMSEImageFilter" ) ;
+    BBTK_AUTHOR ( "Antonio Tristan Vega, Santiago Aja Fernandez. University of Valladolid SPAIN. Partially founded by grant number TEC2007-67073/TCM from the Comision Interministerial de Ciencia y Tecnologia Spain." ) ;
+    BBTK_DESCRIPTION ( "This module reduces Rician 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. The N closest gradient directions to the direction being processed are filtered together to improve the results: the noise-free signal is seen as an n-diemensional vector which has to be estimated with the LMMSE method from a set of corrupted measurements. To that end, the covariance matrix of the noise-free vector and the cross covariance between this signal and the noise have to be estimated, which is done taking into account the image formation process.The noise parameter is automatically estimated from a rough segmentation of the background of the image. In this area the signal is simply 0, so that Rician statistics reduce to Rayleigh and the noise power can be easily estimated from the mode of the histogram.A complete description of the algorithm may be found in:Antonio Tristan-Vega and Santiago Aja-Fernandez, DWI filtering using joint information for DTI and HARDI, Medical Image Analysis, Volume 14, Issue 2, Pages 205-218. 2010." ) ;
+    BBTK_CATEGORY ( "Diffusion.Denoising" ) ;
+
+    // GENERATED DESCRPTION
+    
+BBTK_INPUT(JointRicianLMMSEImageFilter , iRadiusEstimation , "iRadiusEstimation" , std::vector<int>, "");
+BBTK_INPUT(JointRicianLMMSEImageFilter , iRadiusFiltering , "iRadiusFiltering" , std::vector<int>, "");
+BBTK_INPUT(JointRicianLMMSEImageFilter , iNumNeighbors , "iNumNeighbors" , int, "");
+BBTK_INPUT(JointRicianLMMSEImageFilter , inputVolume , "inputVolume" , std::string, "");
+BBTK_INPUT(JointRicianLMMSEImageFilter , outputVolume , "outputVolume" , std::string, "");
+
+    // EO GENERATED DESCRIPTION
+
+    BBTK_END_DESCRIBE_BLACK_BOX ( JointRicianLMMSEImageFilter ) ;
+}
+
+#endif // __bbSlicerJointRicianLMMSEImageFilter_h_INCLUDED__
+
+