]> Creatis software - creaCLI.git/blobdiff - ModuleCall/GenSrc/bbSlicerGradientAnisotropicDiffusion.h
All Slicer modules succesfully compiled into BBTK boxes :P
[creaCLI.git] / ModuleCall / GenSrc / bbSlicerGradientAnisotropicDiffusion.h
diff --git a/ModuleCall/GenSrc/bbSlicerGradientAnisotropicDiffusion.h b/ModuleCall/GenSrc/bbSlicerGradientAnisotropicDiffusion.h
new file mode 100644 (file)
index 0000000..eb9e3ad
--- /dev/null
@@ -0,0 +1,66 @@
+#ifndef __bbSlicerGradientAnisotropicDiffusion_h_INCLUDED__
+#define __bbSlicerGradientAnisotropicDiffusion_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 GradientAnisotropicDiffusion
+    :
+    public bbtk::AtomicBlackBox {
+        BBTK_BLACK_BOX_INTERFACE ( GradientAnisotropicDiffusion , bbtk::AtomicBlackBox ) ;
+
+        // GENERATED ARGS        
+        
+BBTK_DECLARE_INPUT ( conductance , double );
+BBTK_DECLARE_INPUT ( numberOfIterations , int );
+BBTK_DECLARE_INPUT ( timeStep , double );
+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 ( GradientAnisotropicDiffusion , bbtk::AtomicBlackBox ) ;
+    BBTK_NAME ( "GradientAnisotropicDiffusion" ) ;
+    BBTK_AUTHOR ( "Bill Lorensen" ) ;
+    BBTK_DESCRIPTION ( "Runs gradient anisotropic diffusion on a volume.Anisotropic diffusion methods reduce noise or unwanted detail in images while preserving specific image features, like edges.  For many applications, there is an assumption that light-dark transitions edges are interesting.  Standard isotropic diffusion methods move and blur light-dark boundaries.  Anisotropic diffusion methods are formulated to specifically preserve edges. The conductance term for this implementation is a function of the gradient magnitude of the image at each point, reducing the strength of diffusion at edges. The numerical implementation of this equation is similar to that described in the Perona-Malik paper, but uses a more robust technique for gradient magnitude estimation and has been generalized to N-dimensions." ) ;
+    BBTK_CATEGORY ( "Filtering.Denoising" ) ;
+
+    // GENERATED DESCRPTION
+    
+BBTK_INPUT(GradientAnisotropicDiffusion , conductance , "conductance" , double, "");
+BBTK_INPUT(GradientAnisotropicDiffusion , numberOfIterations , "numberOfIterations" , int, "");
+BBTK_INPUT(GradientAnisotropicDiffusion , timeStep , "timeStep" , double, "");
+BBTK_INPUT(GradientAnisotropicDiffusion , inputVolume , "inputVolume" , std::string, "");
+BBTK_INPUT(GradientAnisotropicDiffusion , outputVolume , "outputVolume" , std::string, "");
+
+    // EO GENERATED DESCRIPTION
+
+    BBTK_END_DESCRIBE_BLACK_BOX ( GradientAnisotropicDiffusion ) ;
+}
+
+#endif // __bbSlicerGradientAnisotropicDiffusion_h_INCLUDED__
+
+