#include "bbcreaVtkImageContinuousErode3D.h" #include "bbcreaVtkPackage.h" #include "vtkImageContinuousErode3D.h" namespace bbcreaVtk { BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaVtk,ImageContinuousErode3D) BBTK_BLACK_BOX_IMPLEMENTATION(ImageContinuousErode3D,bbtk::AtomicBlackBox); void ImageContinuousErode3D::Process() { vtkImageData* result = erodeFilterRecursive(bbGetInputImage(), bbGetInputRepetitions(), bbGetInputX(),bbGetInputY(),bbGetInputZ()); bbSetOutputOut(result); } vtkImageData* ImageContinuousErode3D::erodeFilterRecursive(vtkImageData* image, int repetitions, double x, double y, double z) { vtkImageContinuousErode3D *erodeFilter = vtkImageContinuousErode3D ::New(); //EED 2017-01-01 Migration VTK7 #if VTK_MAJOR_VERSION <= 5 erodeFilter->SetInput (image); #else erodeFilter->SetInputData(image); #endif erodeFilter->SetKernelSize(x, y, z); erodeFilter->Modified(); erodeFilter->Update(); vtkImageData* resultRec; if(repetitions == 0) { resultRec = erodeFilter->GetOutput(); return resultRec; }else{ erodeFilterRecursive(erodeFilter->GetOutput(), (repetitions-1), x, y, z); } // if repetitions } void ImageContinuousErode3D::bbUserSetDefaultValues() { bbSetInputX(3); bbSetInputY(3); bbSetInputY(3); bbSetInputRepetitions(0); } //===== // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) //===== void ImageContinuousErode3D::bbUserInitializeProcessing() { } //===== // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) //===== void ImageContinuousErode3D::bbUserFinalizeProcessing() { } } // EO namespace bbcreaVtk