]> Creatis software - creaRigidRegistration.git/blobdiff - PackRecalage/src/bbPackRecalageImageSubstraction.h
New items
[creaRigidRegistration.git] / PackRecalage / src / bbPackRecalageImageSubstraction.h
diff --git a/PackRecalage/src/bbPackRecalageImageSubstraction.h b/PackRecalage/src/bbPackRecalageImageSubstraction.h
new file mode 100644 (file)
index 0000000..f2a18e9
--- /dev/null
@@ -0,0 +1,126 @@
+#ifndef __bbPackRecalageImageSubstraction_h_INCLUDED__
+#define __bbPackRecalageImageSubstraction_h_INCLUDED__
+#include "bbPackRecalage_EXPORT.h"
+#include "bbtkAtomicBlackBox.h"
+#include "iostream"
+#include "vtkImageData.h"
+
+#include <string>
+#include <vector>
+
+
+namespace bbPackRecalage
+{
+
+       class MyImageSubstraction 
+{
+
+       //----------------------------------------------------------------------------------------
+       // Methods definition
+       //----------------------------------------------------------------------------------------
+       public:
+       //--------------------------
+       //Constructor & Destructor
+       //--------------------------            
+               MyImageSubstraction(vtkImageData* imageData1, vtkImageData* imageData2, int uZLevel,int lZLevel, std::vector<double> uColor, std::vector<double> lColor, std::vector<double> mColor);
+               ~MyImageSubstraction();
+       //--------------------------
+       //Methods
+       //--------------------------
+               /*
+               getting ready the points
+               */
+               void initialize(int dimensions[],double spacing[]);
+               /*
+               Calculate the new image and save it in the attribute imageResult
+               it is used if the user had given the imageData
+               */
+               void substractImage(vtkImageData* imageData1, vtkImageData* imageData2);
+               
+               /*
+               Returns the ImageResult
+               */
+               vtkImageData* getSubstractedImage();
+               
+               /*
+                Get Image Size
+               */
+               int getImageSize();
+               
+               /*
+               constructing image substract
+               */
+               void substract(vtkImageData* imageData1, vtkImageData* imageData2);
+               
+
+
+       //----------------------------------------------------------------------------------------
+       // Attributes declaration
+       //----------------------------------------------------------------------------------------
+       private: 
+               /*
+                Substracted Image
+               */
+               vtkImageData* imageResult;
+               /*
+                image size dimx*dimy*dimz
+               */
+               int sizeImage;
+               /*
+               upper zero level for doing the Substraction
+               */
+               int uZeroLevel;
+               /*
+               lower zero level for doing the Substraction
+               */
+               int lZeroLevel;
+               /*
+               Color for the upper threshold
+               */
+               int upperColor[3];
+               /*
+               Color for the lower threshold
+               */
+               int lowerColor[3];
+               /*
+               Color for the medium threshold
+               */
+               int mediumColor[3];
+};
+
+class bbPackRecalage_EXPORT ImageSubstraction
+ : 
+   public bbtk::AtomicBlackBox
+{
+  BBTK_BLACK_BOX_INTERFACE(ImageSubstraction,bbtk::AtomicBlackBox);
+  BBTK_DECLARE_INPUT(In1,vtkImageData*);
+  BBTK_DECLARE_INPUT(In2,vtkImageData*);
+  BBTK_DECLARE_INPUT(In3,int);
+  BBTK_DECLARE_INPUT(In4,int);
+  BBTK_DECLARE_INPUT(InU,std::vector<double>);
+  BBTK_DECLARE_INPUT(InM,std::vector<double>);
+  BBTK_DECLARE_INPUT(InL,std::vector<double>);
+  BBTK_DECLARE_OUTPUT(Out,vtkImageData*);
+  BBTK_PROCESS(Process);
+  void Process();
+};
+
+BBTK_BEGIN_DESCRIBE_BLACK_BOX(ImageSubstraction,bbtk::AtomicBlackBox);
+BBTK_NAME("ImageSubstraction");
+BBTK_AUTHOR("jn.trillos44@uniandes.edu.co");
+BBTK_DESCRIPTION("Creates a image resulting from the substraction of the RGB values of 2 other images.");
+BBTK_CATEGORY("__CATEGORY__");
+BBTK_INPUT(ImageSubstraction,In1,"Image 1",vtkImageData*,"");
+BBTK_INPUT(ImageSubstraction,In2,"Image 2",vtkImageData*,"");
+BBTK_INPUT(ImageSubstraction,In3,"Upper Zero Level (Value between 0 and 255)",int,"");
+BBTK_INPUT(ImageSubstraction,In4,"Lower Zero Level (Value between 0 and 255)",int,"");
+BBTK_INPUT(ImageSubstraction,InU,"Upper Level Color (RGB)",std::vector<double>,"");
+BBTK_INPUT(ImageSubstraction,InM,"Medium Level Color (RGB)",std::vector<double>,"");
+BBTK_INPUT(ImageSubstraction,InL,"Lower Level Color (RGB)",std::vector<double>,"");
+BBTK_OUTPUT(ImageSubstraction,Out,"Image Result",vtkImageData*,"");
+BBTK_END_DESCRIBE_BLACK_BOX(ImageSubstraction);
+}
+// EO namespace bbCreaRecalage
+
+#endif // __bbCreaRecalageImageSubstraction_h_INCLUDED__
+