#ifndef __bbUtilitiesImageContinuousErode3D_h_INCLUDED__ #define __bbUtilitiesImageContinuousErode3D_h_INCLUDED__ #include "bbtkAtomicBlackBox.h" #include "iostream" #include #include namespace bbUtilities { class /*BBTK_EXPORT*/ ImageContinuousErode3D : public bbtk::AtomicBlackBox { BBTK_BLACK_BOX_INTERFACE(ImageContinuousErode3D,bbtk::AtomicBlackBox); //================================================================== BBTK_DECLARE_INPUT(In,vtkImageData*); BBTK_DECLARE_INPUT(KernelSizeX,int); BBTK_DECLARE_INPUT(KernelSizeY,int); BBTK_DECLARE_INPUT(KernelSizeZ,int); BBTK_DECLARE_OUTPUT(Out,vtkImageData*); BBTK_PROCESS(Process); void Process(); private: vtkImageContinuousErode3D* imgerode; }; BBTK_BEGIN_DESCRIBE_BLACK_BOX(ImageContinuousErode3D,bbtk::AtomicBlackBox); BBTK_NAME("ImageContinuousErode3D"); BBTK_AUTHOR("car-prie@uniandes.edu.co"); BBTK_DESCRIPTION("Replaces a pixel with the minimum over an ellipsoidal neighborhood. If KernelSize of an axis is 1, no processing is done on that axis."); BBTK_CATEGORY("__CATEGORY__"); BBTK_INPUT(ImageContinuousErode3D,In,"Image data",vtkImageData*,""); BBTK_INPUT(ImageContinuousErode3D,KernelSizeX,"Kernel in X",int,""); BBTK_INPUT(ImageContinuousErode3D,KernelSizeY,"Kernel in Y",int,""); BBTK_INPUT(ImageContinuousErode3D,KernelSizeZ,"Kernel in Z",int,""); BBTK_OUTPUT(ImageContinuousErode3D,Out,"First output",vtkImageData*,""); BBTK_END_DESCRIBE_BLACK_BOX(ImageContinuousErode3D); } // EO namespace bbUtilities #endif // __bbUtilitiesImageContinuousErode3D_h_INCLUDED__