itkGetConstMacro(Direction, int);
itkSetMacro(Direction, int);
- itkGetConstMacro(UniqueConnectedComponentBySlice, bool);
- itkSetMacro(UniqueConnectedComponentBySlice, bool);
- itkBooleanMacro(UniqueConnectedComponentBySlice);
+ itkGetConstMacro(UniqueConnectedComponentBySliceFlag, bool);
+ itkSetMacro(UniqueConnectedComponentBySliceFlag, bool);
+ itkBooleanMacro(UniqueConnectedComponentBySliceFlag);
itkGetConstMacro(IgnoreEmptySliceObjectFlag, bool);
itkSetMacro(IgnoreEmptySliceObjectFlag, bool);
itkBooleanMacro(IgnoreEmptySliceObjectFlag);
- itkGetConstMacro(UseASingleObjectConnectedComponentBySliceFlag, bool);
- itkSetMacro(UseASingleObjectConnectedComponentBySliceFlag, bool);
- itkBooleanMacro(UseASingleObjectConnectedComponentBySliceFlag);
-
- itkGetConstMacro(CCLSelectionFlag, bool);
- itkSetMacro(CCLSelectionFlag, bool);
- itkBooleanMacro(CCLSelectionFlag);
- itkGetConstMacro(CCLSelectionDimension, int);
- itkSetMacro(CCLSelectionDimension, int);
- itkGetConstMacro(CCLSelectionDirection, int);
- itkSetMacro(CCLSelectionDirection, int);
- itkGetConstMacro(CCLSelectionIgnoreSingleCCLFlag, bool);
- itkSetMacro(CCLSelectionIgnoreSingleCCLFlag, bool);
- itkBooleanMacro(CCLSelectionIgnoreSingleCCLFlag);
+ itkGetConstMacro(UseTheLargestObjectCCLFlag, bool);
+ itkSetMacro(UseTheLargestObjectCCLFlag, bool);
+ itkBooleanMacro(UseTheLargestObjectCCLFlag);
+
+ itkGetConstMacro(ObjectCCLSelectionFlag, bool);
+ itkSetMacro(ObjectCCLSelectionFlag, bool);
+ itkBooleanMacro(ObjectCCLSelectionFlag);
+ itkGetConstMacro(ObjectCCLSelectionDimension, int);
+ itkSetMacro(ObjectCCLSelectionDimension, int);
+ itkGetConstMacro(ObjectCCLSelectionDirection, int);
+ itkSetMacro(ObjectCCLSelectionDirection, int);
+ itkGetConstMacro(ObjectCCLSelectionIgnoreSingleCCLFlag, bool);
+ itkSetMacro(ObjectCCLSelectionIgnoreSingleCCLFlag, bool);
+ itkBooleanMacro(ObjectCCLSelectionIgnoreSingleCCLFlag);
protected:
SliceBySliceRelativePositionFilter();
ImagePointer object;
ImagePointer m_working_input;
ImagePointer m_working_object;
- bool m_UniqueConnectedComponentBySlice;
+ bool m_UniqueConnectedComponentBySliceFlag;
int m_Direction;
bool m_IgnoreEmptySliceObjectFlag;
- bool m_UseASingleObjectConnectedComponentBySliceFlag;
- bool m_CCLSelectionFlag;
- int m_CCLSelectionDimension;
- int m_CCLSelectionDirection;
- bool m_CCLSelectionIgnoreSingleCCLFlag;
+ bool m_UseTheLargestObjectCCLFlag;
+ bool m_ObjectCCLSelectionFlag;
+ int m_ObjectCCLSelectionDimension;
+ int m_ObjectCCLSelectionDirection;
+ bool m_ObjectCCLSelectionIgnoreSingleCCLFlag;
private:
SliceBySliceRelativePositionFilter(const Self&); //purposely not implemented
clitk::AddRelativePositionConstraintToLabelImageFilter<ImageType>()
{
SetDirection(2);
- UniqueConnectedComponentBySliceOff();
+ UniqueConnectedComponentBySliceFlagOff();
SetIgnoreEmptySliceObjectFlag(false);
- UseASingleObjectConnectedComponentBySliceFlagOn();
+ UseTheLargestObjectCCLFlagOff();
this->VerboseStepFlagOff();
this->WriteStepFlagOff();
this->SetCombineWithOrFlag(false);
- CCLSelectionFlagOff();
- SetCCLSelectionDimension(0);
- SetCCLSelectionDirection(1);
- CCLSelectionIgnoreSingleCCLFlagOff();
+ ObjectCCLSelectionFlagOff();
+ SetObjectCCLSelectionDimension(0);
+ SetObjectCCLSelectionDirection(1);
+ ObjectCCLSelectionIgnoreSingleCCLFlagOff();
}
//--------------------------------------------------------------------
DD(this->GetIntermediateSpacingFlag());
DD(this->GetIntermediateSpacing());
DD(this->GetFuzzyThreshold());
- DD(this->GetUniqueConnectedComponentBySlice());
+ DD(this->GetUniqueConnectedComponentBySliceFlag());
DD(this->GetAutoCropFlag());
DD(this->GetInverseOrientationFlag());
DD(this->GetRemoveObjectFlag());
DD(this->GetCombineWithOrFlag());
+ DD(this->GetUseTheLargestObjectCCLFlag());
+ DD(this->GetObjectCCLSelectionFlag());
+ DD(this->GetObjectCCLSelectionDimension());
+ DD(this->GetObjectCCLSelectionIgnoreSingleCCLFlag());
}
//--------------------------------------------------------------------
if ((!GetIgnoreEmptySliceObjectFlag()) || (nb!=0)) {
// Select or not a single CCL ?
- if (GetUseASingleObjectConnectedComponentBySliceFlag()) {
+ if (GetUseTheLargestObjectCCLFlag()) {
mObjectSlices[i] = KeepLabels<SliceType>(mObjectSlices[i], 0, 1, 1, 1, true);
}
// Select a single according to a position if more than one CCL
- if (GetCCLSelectionFlag()) {
+ if (GetObjectCCLSelectionFlag()) {
// if several CCL, choose the most extrema according a direction,
// if not -> should we consider this slice ?
if (nb<2) {
- if (GetCCLSelectionIgnoreSingleCCLFlag()) {
+ if (GetObjectCCLSelectionIgnoreSingleCCLFlag()) {
mObjectSlices[i] = SetBackground<SliceType, SliceType>(mObjectSlices[i], mObjectSlices[i],
1, this->GetBackgroundValue(),
true);
}
}
- int dim = GetCCLSelectionDimension();
- int direction = GetCCLSelectionDirection();
+ int dim = GetObjectCCLSelectionDimension();
+ int direction = GetObjectCCLSelectionDirection();
std::vector<typename SliceType::PointType> centroids;
ComputeCentroids<SliceType>(mObjectSlices[i], this->GetBackgroundValue(), centroids);
uint index=1;
true);
}
}
- } // end GetCCLSelectionFlag = true
+ } // end GetbjectCCLSelectionFlag = true
// Relative position
typedef clitk::AddRelativePositionConstraintToLabelImageFilter<SliceType> RelPosFilterType;
relPosFilter->SetInput(mInputSlices[i]);
relPosFilter->SetInputObject(mObjectSlices[i]);
relPosFilter->SetRemoveObjectFlag(this->GetRemoveObjectFlag());
+ // This flag (InverseOrientation) *must* be set before
+ // AddOrientation because AddOrientation can change it.
+ relPosFilter->SetInverseOrientationFlag(this->GetInverseOrientationFlag());
for(int j=0; j<this->GetNumberOfAngles(); j++) {
relPosFilter->AddOrientationTypeString(this->GetOrientationTypeString(j));
+ //DD(this->GetOrientationTypeString(j));
}
- relPosFilter->SetInverseOrientationFlag(this->GetInverseOrientationFlag());
+ //DD(this->GetInverseOrientationFlag());
//relPosFilter->SetOrientationType(this->GetOrientationType());
relPosFilter->SetIntermediateSpacing(this->GetIntermediateSpacing());
relPosFilter->SetIntermediateSpacingFlag(this->GetIntermediateSpacingFlag());
mInputSlices[i] = relPosFilter->GetOutput();
// Select main CC if needed
- if (GetUniqueConnectedComponentBySlice()) {
+ if (GetUniqueConnectedComponentBySliceFlag()) {
mInputSlices[i] = Labelize<SliceType>(mInputSlices[i], 0, true, 1);
mInputSlices[i] = KeepLabels<SliceType>(mInputSlices[i], 0, 1, 1, 1, true);
}