1 #include <ImageThresholdFilters/ImageToBoundingBoxFromThreshold.h>
2 #include <cpInstances/Image.h>
3 #include <cpInstances/BoundingBox.h>
6 #include <cpExtensions/Algorithms/ImageToBoundingBoxFromThreshold.h>
8 // -------------------------------------------------------------------------
9 cpPluginsImageThresholdFilters::ImageToBoundingBoxFromThreshold::
10 ImageToBoundingBoxFromThreshold( )
13 typedef cpInstances::Image _TImage;
14 typedef cpInstances::BoundingBox _TBBox;
16 this->_ConfigureInput< _TImage >( "Input", true, false );
17 this->_ConfigureOutput< _TBBox >( "Output" );
19 this->m_Parameters.ConfigureAsUint( "PAD", 0 );
20 this->m_Parameters.ConfigureAsReal( "LowerThreshold", 0 );
21 this->m_Parameters.ConfigureAsReal( "UpperThreshold", 0 );
24 // -------------------------------------------------------------------------
25 cpPluginsImageThresholdFilters::ImageToBoundingBoxFromThreshold::
26 ~ImageToBoundingBoxFromThreshold( )
30 // -------------------------------------------------------------------------
31 void cpPluginsImageThresholdFilters::ImageToBoundingBoxFromThreshold::
34 auto o = this->GetInputData( "Input" );
35 cpPlugins_Demangle_Image_ScalarPixels_AllDims_1( o, _GD0 )
36 this->_Error( "Invalid input image." );
39 // -------------------------------------------------------------------------
40 template< class _TImage >
41 void cpPluginsImageThresholdFilters::ImageToBoundingBoxFromThreshold::
42 _GD0( _TImage* image )
45 cpExtensions::Algorithms::ImageToBoundingBoxFromThreshold< _TImage >
49 _TFilter* filter = this->_CreateITK< _TFilter >( );
50 filter->SetImage( image );
51 filter->SetPAD( this->m_Parameters.GetUint( "PAD" ) );
52 filter->SetLowerThreshold( this->m_Parameters.GetReal( "LowerThreshold" ) );
53 filter->SetUpperThreshold( this->m_Parameters.GetReal( "UpperThreshold" ) );
57 auto reg = filter->GetRegion( );
58 auto bb = this->GetOutput< cpInstances::BoundingBox >( "Output" );
59 typename _TImage::PointType p0, p1;
60 image->TransformIndexToPhysicalPoint( reg.GetIndex( ), p0 );
61 image->TransformIndexToPhysicalPoint( reg.GetIndex( ) + reg.GetSize( ), p1 );