X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=tools%2FclitkRelativePositionGenericFilter.txx;h=66c4be47cfa9c80e9e5b687675e30ecf6f6e1061;hb=25972b1f582ecc43351be34ce8180e1c3e572687;hp=2e62b42957846569b3b66fbfb86a58b169ab0f4d;hpb=18383744683942aab80bfaf99600279c1854d151;p=clitk.git diff --git a/tools/clitkRelativePositionGenericFilter.txx b/tools/clitkRelativePositionGenericFilter.txx index 2e62b42..66c4be4 100644 --- a/tools/clitkRelativePositionGenericFilter.txx +++ b/tools/clitkRelativePositionGenericFilter.txx @@ -3,7 +3,7 @@ Authors belong to: - University of LYON http://www.universite-lyon.fr/ - - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - Léon Bérard cancer center http://www.centreleonberard.fr - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr This software is distributed WITHOUT ANY WARRANTY; without even @@ -14,7 +14,7 @@ - BSD See included LICENSE.txt file - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html - ======================================================================-====*/ + ===========================================================================**/ #include "clitkImageCommon.h" @@ -65,22 +65,28 @@ template void clitk::RelativePositionGenericFilter:: SetOptionsFromArgsInfoToFilter(FilterType * f) { - f->SetVerboseOption(mArgsInfo.verbose_flag); - f->SetVerboseStep(mArgsInfo.verboseStep_flag); - f->SetWriteStep(mArgsInfo.writeStep_flag); + f->SetVerboseOptionFlag(mArgsInfo.verboseOptions_flag); + f->SetVerboseStepFlag(mArgsInfo.verboseStep_flag); + f->SetWriteStepFlag(mArgsInfo.writeStep_flag); - if (mArgsInfo.orientation_given) { - f->SetOrientationTypeString(mArgsInfo.orientation_arg); + for(uint i=0; iAddOrientationTypeString(mArgsInfo.orientation_arg[i]); } if (mArgsInfo.spacing_given) { - f->ResampleBeforeRelativePositionFilterOn(); + f->IntermediateSpacingFlagOn(); f->SetIntermediateSpacing(mArgsInfo.spacing_arg); } + else { + f->IntermediateSpacingFlagOff(); + } f->SetFuzzyThreshold(mArgsInfo.threshold_arg); - f->SetNotFlag(mArgsInfo.not_flag); + f->SetRemoveObjectFlag(!mArgsInfo.doNotRemoveObject_flag); f->SetAutoCropFlag(!mArgsInfo.noAutoCrop_flag); + f->SetCombineWithOrFlag(mArgsInfo.combineWithOr_flag); + f->SetInverseOrientationFlag(mArgsInfo.inverse_flag); + } //-------------------------------------------------------------------- @@ -107,7 +113,16 @@ UpdateWithInputImageType() filter->SetInput(input); filter->SetInputObject(object); SetOptionsFromArgsInfoToFilter(filter); - filter->SetDirection(mArgsInfo.direction_arg); // only for SliceBySliceRelativePositionFilter + + // Set options only for SliceBySliceRelativePositionFilter + filter->SetDirection(mArgsInfo.direction_arg); + filter->SetUniqueConnectedComponentBySliceFlag(mArgsInfo.uniqueCCL_flag); + if (mArgsInfo.uniqueObjectCCL_flag) { + filter->UseTheLargestObjectCCLFlagOn(); + } + else { + filter->UseTheLargestObjectCCLFlagOff(); + } // Go ! filter->Update(); @@ -127,8 +142,8 @@ UpdateWithInputImageType() // Set global Options filter->SetInput(input); filter->SetInputObject(object); - filter->SetAngle1(mArgsInfo.angle1_arg);// only for this filter - filter->SetAngle2(mArgsInfo.angle2_arg); + if (mArgsInfo.angle1_given && mArgsInfo.angle2_given) + filter->AddAngles(mArgsInfo.angle1_arg, mArgsInfo.angle2_arg); SetOptionsFromArgsInfoToFilter(filter); // Go !