<< "ObjectCCLSelectionFlag = " << this->GetObjectCCLSelectionFlag() << std::endl
<< "ObjectCCLSelectionDimension = " << this->GetObjectCCLSelectionDimension() << std::endl
<< "ObjectCCLSelectionIgnoreSingleCCLFlag = " << this->GetObjectCCLSelectionIgnoreSingleCCLFlag() << std::endl
<< "ObjectCCLSelectionFlag = " << this->GetObjectCCLSelectionFlag() << std::endl
<< "ObjectCCLSelectionDimension = " << this->GetObjectCCLSelectionDimension() << std::endl
<< "ObjectCCLSelectionIgnoreSingleCCLFlag = " << this->GetObjectCCLSelectionIgnoreSingleCCLFlag() << std::endl
- << "IgnoreEmptySliceObjectFlag = " << this->GetIgnoreEmptySliceObjectFlag() << std::endl;
+ << "IgnoreEmptySliceObjectFlag = " << this->GetIgnoreEmptySliceObjectFlag() << std::endl
+ << "(RP) FastFlag = " << this->GetFastFlag() << std::endl
+ << "(RP) Radius = " << this->GetRadius() << std::endl;
m_working_object = clitk::ResizeImageLike<ImageType>(m_working_object,
m_working_input,
this->GetObjectBackgroundValue());
m_working_object = clitk::ResizeImageLike<ImageType>(m_working_object,
m_working_input,
this->GetObjectBackgroundValue());
//--------------------------------------------------------------------
// Perform slice by slice relative position
//--------------------------------------------------------------------
// Perform slice by slice relative position
for(unsigned int i=0; i<mInputSlices.size(); i++) {
// Count the number of CCL (allow to ignore empty slice)
for(unsigned int i=0; i<mInputSlices.size(); i++) {
// Count the number of CCL (allow to ignore empty slice)
// Relative position
typedef clitk::AddRelativePositionConstraintToLabelImageFilter<SliceType> RelPosFilterType;
typename RelPosFilterType::Pointer relPosFilter = RelPosFilterType::New();
// Relative position
typedef clitk::AddRelativePositionConstraintToLabelImageFilter<SliceType> RelPosFilterType;
typename RelPosFilterType::Pointer relPosFilter = RelPosFilterType::New();
relPosFilter->VerboseStepFlagOff();
relPosFilter->WriteStepFlagOff();
// relPosFilter->VerboseMemoryFlagOn();
relPosFilter->VerboseStepFlagOff();
relPosFilter->WriteStepFlagOff();
// relPosFilter->VerboseMemoryFlagOn();
relPosFilter->SetBackgroundValue(this->GetBackgroundValue());
relPosFilter->SetInput(mInputSlices[i]);
relPosFilter->SetInputObject(mObjectSlices[i]);
relPosFilter->SetBackgroundValue(this->GetBackgroundValue());
relPosFilter->SetInput(mInputSlices[i]);
relPosFilter->SetInputObject(mObjectSlices[i]);
// This flag (InverseOrientation) *must* be set before
// AddOrientation because AddOrientation can change it.
relPosFilter->SetInverseOrientationFlag(this->GetInverseOrientationFlag());
// This flag (InverseOrientation) *must* be set before
// AddOrientation because AddOrientation can change it.
relPosFilter->SetInverseOrientationFlag(this->GetInverseOrientationFlag());
relPosFilter->SetFuzzyThreshold(this->GetFuzzyThreshold());
relPosFilter->AutoCropFlagOff(); // important ! because we join the slices after this loop
relPosFilter->SetCombineWithOrFlag(this->GetCombineWithOrFlag());
relPosFilter->SetFuzzyThreshold(this->GetFuzzyThreshold());
relPosFilter->AutoCropFlagOff(); // important ! because we join the slices after this loop
relPosFilter->SetCombineWithOrFlag(this->GetCombineWithOrFlag());
- // relPosFilter->SetComputeFuzzyMapFlag(this->GetComputeFuzzyMapFlag());
-
+ // relPosFilter->SetComputeFuzzyMapFlag(this->GetComputeFuzzyMapFlag());
+ relPosFilter->SetFastFlag(this->GetFastFlag());
+ relPosFilter->SetRadius(this->GetRadius());
+