From: Leonardo Flórez-Valencia Date: Tue, 17 Oct 2017 22:18:30 +0000 (-0500) Subject: ... X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=c85bbe2a2b725627f7836676a071d522c755abcb;p=FrontAlgorithms.git ... --- diff --git a/appli/CTBronchi/FastRandomWalker.cxx b/appli/CTBronchi/FastRandomWalker.cxx index 7342562..1d33545 100644 --- a/appli/CTBronchi/FastRandomWalker.cxx +++ b/appli/CTBronchi/FastRandomWalker.cxx @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -77,8 +78,19 @@ int main( int argc, char* argv[] ) double t = CTBronchi::MeasureTime( filter ); std::cout << "FastRandomWalk executed in " << t << " s" << std::endl; + // Extract label + typedef itk::BinaryThresholdImageFilter< TLabels, TLabels > _TExtract; + typename _TExtract::Pointer extract = _TExtract::New( ); + extract->SetInput( filter->GetOutputLabels( ) ); + extract->SetInsideValue( 1 ); + extract->SetOutsideValue( 0 ); + extract->SetLowerThreshold( 1 ); + extract->SetUpperThreshold( 1 ); + t = CTBronchi::MeasureTime( extract ); + std::cout << "Extract labels executed in " << t << " s" << std::endl; + // Write result - CTBronchi::WriteImage( filter->GetOutputLabels( ), out.getValue( ) ); + CTBronchi::WriteImage( extract->GetOutput( ), out.getValue( ) ); } catch( std::exception& err ) { diff --git a/appli/CTBronchi/MoriLabelling.h b/appli/CTBronchi/MoriLabelling.h index f9adb5c..1481d73 100644 --- a/appli/CTBronchi/MoriLabelling.h +++ b/appli/CTBronchi/MoriLabelling.h @@ -91,7 +91,7 @@ namespace CTBronchi minMax->SetImage( this->GetInputVesselness( ) ); minMax->Compute( ); this->m_MinVesselness = - ( 1.0 - ( this->m_VesselnessThreshold / double( 100 ) ) ) * + ( this->m_VesselnessThreshold / double( 100 ) ) * double( minMax->GetMaximum( ) ); } diff --git a/lib/fpa/Common/SliceBySliceRandomWalker.hxx b/lib/fpa/Common/SliceBySliceRandomWalker.hxx index c0bc3ff..3856bca 100644 --- a/lib/fpa/Common/SliceBySliceRandomWalker.hxx +++ b/lib/fpa/Common/SliceBySliceRandomWalker.hxx @@ -6,6 +6,7 @@ #define __fpa__Common__SliceBySliceRandomWalker__hxx__ #include +#include #include #include #include @@ -197,7 +198,7 @@ _RandomWalker( // Create seeds and background _TSliceBinaryPtr seeds = _TSliceBinary::New( ); seeds->CopyInformation( tmp ); - seeds->SetRequestedRegion( region ); + seeds->SetBufferedRegion( region ); seeds->Allocate( ); seeds->FillBuffer( 0 ); @@ -250,10 +251,19 @@ _RandomWalker( rw->SetInputLabels( seeds ); rw->SetEdgeFunction( edge ); + // Extract label + typedef itk::BinaryThresholdImageFilter< _TSliceBinary, _TSliceBinary > _TExtract; + typename _TExtract::Pointer extract = _TExtract::New( ); + extract->SetInput( rw->GetOutput( ) ); + extract->SetInsideValue( 1 ); + extract->SetOutsideValue( 0 ); + extract->SetLowerThreshold( 1 ); + extract->SetUpperThreshold( 1 ); + // Keep maximum typedef itk::MaximumImageFilter< _TSliceBinary > _TMax; typename _TMax::Pointer max = _TMax::New(); - max->SetInput( 0, rw->GetOutput( ) ); + max->SetInput( 0, extract->GetOutput( ) ); max->SetInput( 1, next ); max->Update( ); binaryTree[ z + o ] = max->GetOutput( );