]> Creatis software - creaCLI.git/blobdiff - ModuleCall/GenSrc/bbSlicerCurvatureAnisotropicDiffusion.h
All Slicer modules succesfully compiled into BBTK boxes :P
[creaCLI.git] / ModuleCall / GenSrc / bbSlicerCurvatureAnisotropicDiffusion.h
diff --git a/ModuleCall/GenSrc/bbSlicerCurvatureAnisotropicDiffusion.h b/ModuleCall/GenSrc/bbSlicerCurvatureAnisotropicDiffusion.h
new file mode 100644 (file)
index 0000000..fc17218
--- /dev/null
@@ -0,0 +1,66 @@
+#ifndef __bbSlicerCurvatureAnisotropicDiffusion_h_INCLUDED__
+#define __bbSlicerCurvatureAnisotropicDiffusion_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 CurvatureAnisotropicDiffusion
+    :
+    public bbtk::AtomicBlackBox {
+        BBTK_BLACK_BOX_INTERFACE ( CurvatureAnisotropicDiffusion , 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 ( CurvatureAnisotropicDiffusion , bbtk::AtomicBlackBox ) ;
+    BBTK_NAME ( "CurvatureAnisotropicDiffusion" ) ;
+    BBTK_AUTHOR ( "Bill Lorensen" ) ;
+    BBTK_DESCRIPTION ( "Performs anisotropic diffusion on an image using a modified curvature diffusion equation MCDE.MCDE does not exhibit the edge enhancing properties of classic anisotropic diffusion, which can under certain conditions undergo a 'negative' diffusion, which enhances the contrast of edges.  Equations of the form of MCDE always undergo positive diffusion, with the conductance term only varying the strength of that diffusion.  Qualitatively, MCDE compares well with other non-linear diffusion techniques.  It is less sensitive to contrast than classic Perona-Malik style diffusion, and preserves finer detailed structures in images.  There is a potential speed trade-off for using this function in place of Gradient Anisotropic Diffusion.  Each iteration of the solution takes roughly twice as long.  Fewer iterations, however, may be required to reach an acceptable solution." ) ;
+    BBTK_CATEGORY ( "Filtering.Denoising" ) ;
+
+    // GENERATED DESCRPTION
+    
+BBTK_INPUT(CurvatureAnisotropicDiffusion , conductance , "conductance" , double, "");
+BBTK_INPUT(CurvatureAnisotropicDiffusion , numberOfIterations , "numberOfIterations" , int, "");
+BBTK_INPUT(CurvatureAnisotropicDiffusion , timeStep , "timeStep" , double, "");
+BBTK_INPUT(CurvatureAnisotropicDiffusion , inputVolume , "inputVolume" , std::string, "");
+BBTK_INPUT(CurvatureAnisotropicDiffusion , outputVolume , "outputVolume" , std::string, "");
+
+    // EO GENERATED DESCRIPTION
+
+    BBTK_END_DESCRIBE_BLACK_BOX ( CurvatureAnisotropicDiffusion ) ;
+}
+
+#endif // __bbSlicerCurvatureAnisotropicDiffusion_h_INCLUDED__
+
+