From: Eduardo DAVILA Date: Thu, 29 Dec 2022 14:38:27 +0000 (+0100) Subject: #3498 Connectivity Filter Threshold X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=f45c0d3794c0df6b6757bd560f1d3281712187f1;p=creaVtk.git #3498 Connectivity Filter Threshold --- diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkImageThresholdConnectivity.cxx b/bbtk_creaVtk_PKG/src/bbcreaVtkImageThresholdConnectivity.cxx index a7ddb49..25b85a6 100644 --- a/bbtk_creaVtk_PKG/src/bbcreaVtkImageThresholdConnectivity.cxx +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkImageThresholdConnectivity.cxx @@ -74,7 +74,13 @@ void ImageThresholdConnectivity::Process() } // for i filter->SetSeedPoints( points ); filter->SetInputData( bbGetInputIn() ); - filter->ThresholdBetween(10, 100); + if (bbGetInputThreshold().size()==2) + { + filter->ThresholdBetween( bbGetInputThreshold()[0] , bbGetInputThreshold()[1] ); + } else { + filter->ThresholdBetween( 0, 100 ); + }// if Thershold size + // filter->SetNeighborhoodRadius (4, 4, 4 ); filter->SetInValue(255); filter->SetOutValue(0); @@ -85,7 +91,9 @@ void ImageThresholdConnectivity::Process() filter->SetSliceRangeZ(minZ-border,maxZ+border); filter->Update(); bbSetOutputOut( filter->GetOutput() ); - } // if lst + } else { + bbSetOutputOut( NULL ); + }// if lst } //===== // 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) @@ -125,6 +133,69 @@ void ImageThresholdConnectivity::bbUserFinalizeProcessing() // if any } + +//========================================================================= +void ImageThresholdConnectivity::bbSetStatusAndPropagate(BlackBoxInputConnector* c, IOStatus s) +{ + bbtkBlackBoxDebugMessage("change",5, + "=> BlackBox::bbSetStatusAndPropagate(input," + <SetStatus(s); + + // Flash reaction + /* + if (bbGetBoxProcessModeValue() == Flash) + { + this->bbExecute(); + } + */ + + + OutputConnectorMapType::const_iterator o; + for ( o = bbGetOutputConnectorMap().begin(); + o != bbGetOutputConnectorMap().end(); ++o ) + { + + + if (o->first=="BoxChange") + { + o->second->SetStatus(UPTODATE); + } + + + +//EED 24/08/2015 +// EED CASPITAS 2 + if (o->second->GetStatus()==UPTODATE) +// if ((o->second->GetStatus()==UPTODATE) || (o->second->GetStatus()==OUTOFDATE)) +// if ((o->second->GetStatus()==UPTODATE) || (o->second->GetStatus()==MODIFIED)) + { + o->second->SetStatus(OUTOFDATE); + o->second->SignalChange(GetThisPointer(),o->first); + } // if + } // for + + + if ( ( bbBoxProcessModeIsReactive() + || (c==bbGetInputConnectorMap().find("BoxExecute")->second)) + && (bbCanReact() ) ) + { + bbtkBlackBoxDebugMessage("change",2, + "-> Execution triggered by Reactive mode or BoxExecute input change"<() ); + } // if + bbtkBlackBoxDebugMessage("change",5, + "<= BlackBox::bbSetStatusAndPropagate(input)" + <); BBTK_DECLARE_INPUT(LstY,std::vector); BBTK_DECLARE_INPUT(LstZ,std::vector); + BBTK_DECLARE_INPUT(Threshold,std::vector); BBTK_DECLARE_INPUT(MaskValue,std::vector); BBTK_DECLARE_INPUT(Border,int); BBTK_DECLARE_OUTPUT(Out,vtkImageData*); BBTK_PROCESS(Process); void Process(); + + + virutal void bbSetStatusAndPropagate(BlackBoxInputConnector* c, IOStatus s); + + + //===== // 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) //===== @@ -49,6 +56,7 @@ BBTK_BEGIN_DESCRIBE_BLACK_BOX(ImageThresholdConnectivity,bbtk::AtomicBlackBox); BBTK_INPUT(ImageThresholdConnectivity,LstY,"LstY seeds in voxels",std::vector,""); BBTK_INPUT(ImageThresholdConnectivity,LstZ,"LstZ seeds in voxels",std::vector,""); BBTK_INPUT(ImageThresholdConnectivity,MaskValue,"( default [O 255] ) [Out In] values of the output mask",std::vector,""); + BBTK_INPUT(ImageThresholdConnectivity,Threshold,"( default [O 100] ) [down upper] threshold to be segmented",std::vector,""); BBTK_INPUT(ImageThresholdConnectivity,Border,"(default 10)Border of the min and max positions",int,""); BBTK_OUTPUT(ImageThresholdConnectivity,Out,"Output image",vtkImageData*,"");