]> Creatis software - creaCLI.git/blob - ModuleCall/GenSrc/bbSlicerUnbiasedNonLocalMeansfilterforDWI.h
All Slicer modules succesfully compiled into BBTK boxes :P
[creaCLI.git] / ModuleCall / GenSrc / bbSlicerUnbiasedNonLocalMeansfilterforDWI.h
1 #ifndef __bbSlicerUnbiasedNonLocalMeansfilterforDWI_h_INCLUDED__
2 #define __bbSlicerUnbiasedNonLocalMeansfilterforDWI_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 UnbiasedNonLocalMeansfilterforDWI
25     :
26     public bbtk::AtomicBlackBox {
27         BBTK_BLACK_BOX_INTERFACE ( UnbiasedNonLocalMeansfilterforDWI , bbtk::AtomicBlackBox ) ;
28
29         // GENERATED ARGS        
30         
31 BBTK_DECLARE_INPUT ( iRadiusSearch , std::vector<int> );
32 BBTK_DECLARE_INPUT ( iRadiusComp , std::vector<int> );
33 BBTK_DECLARE_INPUT ( iH , float );
34 BBTK_DECLARE_INPUT ( iNumNeighbors , int );
35 BBTK_DECLARE_INPUT ( iRadiusEstimation , std::vector<int> );
36 BBTK_DECLARE_INPUT ( inputVolume , std::string );
37 BBTK_DECLARE_INPUT ( outputVolume , std::string );
38
39         // EO GENERATED ARGS
40
41         BBTK_PROCESS ( Process ) ;
42         void Process ( ) ;
43     private:
44         void execute ( std::string lib , int _argc , char * _argv[] ) ;
45     } ;
46
47     BBTK_BEGIN_DESCRIBE_BLACK_BOX ( UnbiasedNonLocalMeansfilterforDWI , bbtk::AtomicBlackBox ) ;
48     BBTK_NAME ( "UnbiasedNonLocalMeansfilterforDWI" ) ;
49     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." ) ;
50     BBTK_DESCRIPTION ( "This module reduces noise or unwanted detail on a set of diffusion weighted images. For this, it filters the images using a Unbiased Non Local Means for Rician noise algorithm. It exploits not only the spatial redundancy, but the redundancy in similar gradient directions as well; it takes into account the N closest gradient directions to the direction being processed a maximum of 5 gradient directions is allowed to keep a reasonable computational load, since we do not use neither similarity maps nor block-wise implementation.The noise parameter is automatically estimated in the same way as in the jointLMMSE module.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.Please, note that the execution of this filter is extremely slow, son only very conservative parameters block size and search size as small as possible should be used. Even so, its execution may take several hours. The advantage of this filter over joint LMMSE is its better preservation of edges and fine structures." ) ;
51     BBTK_CATEGORY ( "Legacy.Diffusion.Denoising" ) ;
52
53     // GENERATED DESCRPTION
54     
55 BBTK_INPUT(UnbiasedNonLocalMeansfilterforDWI , iRadiusSearch , "iRadiusSearch" , std::vector<int>, "");
56 BBTK_INPUT(UnbiasedNonLocalMeansfilterforDWI , iRadiusComp , "iRadiusComp" , std::vector<int>, "");
57 BBTK_INPUT(UnbiasedNonLocalMeansfilterforDWI , iH , "iH" , float, "");
58 BBTK_INPUT(UnbiasedNonLocalMeansfilterforDWI , iNumNeighbors , "iNumNeighbors" , int, "");
59 BBTK_INPUT(UnbiasedNonLocalMeansfilterforDWI , iRadiusEstimation , "iRadiusEstimation" , std::vector<int>, "");
60 BBTK_INPUT(UnbiasedNonLocalMeansfilterforDWI , inputVolume , "inputVolume" , std::string, "");
61 BBTK_INPUT(UnbiasedNonLocalMeansfilterforDWI , outputVolume , "outputVolume" , std::string, "");
62
63     // EO GENERATED DESCRIPTION
64
65     BBTK_END_DESCRIBE_BLACK_BOX ( UnbiasedNonLocalMeansfilterforDWI ) ;
66 }
67
68 #endif // __bbSlicerUnbiasedNonLocalMeansfilterforDWI_h_INCLUDED__
69
70