17 #ifndef __itkAttributeRelabelImageFilter_txx
18 #define __itkAttributeRelabelImageFilter_txx
26 template<
class TInputImage,
class TLabelObject,
class TLabelObjectValuator,
class TAttributeAccessor>
30 m_BackgroundValue = NumericTraits<OutputImagePixelType>::NonpositiveMin();
31 m_ReverseOrdering =
false;
34 template<
class TInputImage,
class TLabelObject,
class TLabelObjectValuator,
class TAttributeAccessor>
40 Superclass::GenerateInputRequestedRegion();
46 input->SetRequestedRegion( input->GetLargestPossibleRegion() );
51 template<
class TInputImage,
class TLabelObject,
class TLabelObjectValuator,
class TAttributeAccessor>
57 ->SetRequestedRegion( this->GetOutput()->GetLargestPossibleRegion() );
61 template<
class TInputImage,
class TLabelObject,
class TLabelObjectValuator,
class TAttributeAccessor>
68 progress->SetMiniPipelineFilter(
this);
71 this->AllocateOutputs();
74 labelizer->SetInput( this->GetInput() );
75 labelizer->SetBackgroundValue( m_BackgroundValue );
76 labelizer->SetNumberOfThreads( this->GetNumberOfThreads() );
77 progress->RegisterInternalFilter(labelizer, .3f);
79 typename LabelObjectValuatorType::Pointer valuator = LabelObjectValuatorType::New();
80 valuator->SetInput( labelizer->GetOutput() );
81 valuator->SetNumberOfThreads( this->GetNumberOfThreads() );
82 progress->RegisterInternalFilter(valuator, .3f);
85 opening->SetInput( valuator->GetOutput() );
86 opening->SetReverseOrdering( m_ReverseOrdering );
87 opening->SetNumberOfThreads( this->GetNumberOfThreads() );
88 progress->RegisterInternalFilter(opening, .2f);
91 binarizer->SetInput( opening->GetOutput() );
92 binarizer->SetNumberOfThreads( this->GetNumberOfThreads() );
93 progress->RegisterInternalFilter(binarizer, .2f);
95 this->CustomizeInternalFilters( labelizer, valuator, opening, binarizer );
97 binarizer->GraftOutput( this->GetOutput() );
99 this->GraftOutput( binarizer->GetOutput() );
103 template<
class TInputImage,
class TLabelObject,
class TLabelObjectValuator,
class TAttributeAccessor>
108 Superclass::PrintSelf(os, indent);
110 os << indent <<
"ReverseOrdering: " << m_ReverseOrdering << std::endl;
111 os << indent <<
"BackgroundValue: " <<
static_cast<typename NumericTraits<OutputImagePixelType>::PrintType
>(m_BackgroundValue) << std::endl;