X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=segmentation%2FclitkExtractPatientGenericFilter.txx;h=ae87cc8363afc36d6225d90cb36fef33505dec6b;hb=d7f456d86ca398a89ccf9de43ab68a2b50b8ca1f;hp=e2b2e976e501529c85150a346f0c74523154ae26;hpb=5668d4a49a5a6b68dc80fa28f0f82b54187cb70c;p=clitk.git diff --git a/segmentation/clitkExtractPatientGenericFilter.txx b/segmentation/clitkExtractPatientGenericFilter.txx index e2b2e97..ae87cc8 100644 --- a/segmentation/clitkExtractPatientGenericFilter.txx +++ b/segmentation/clitkExtractPatientGenericFilter.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" @@ -36,6 +36,8 @@ template void clitk::ExtractPatientGenericFilter::InitializeImageType() { ADD_IMAGE_TYPE(Dim, short); + ADD_IMAGE_TYPE(Dim, unsigned short); + ADD_IMAGE_TYPE(Dim, float); // ADD_IMAGE_TYPE(Dim, int); // ADD_IMAGE_TYPE(Dim, float); } @@ -47,10 +49,64 @@ template void clitk::ExtractPatientGenericFilter::SetArgsInfo(const ArgsInfoType & a) { mArgsInfo=a; - SetIOVerbose(mArgsInfo.verbose_flag); + this->SetIOVerbose(mArgsInfo.verbose_flag); if (mArgsInfo.imagetypes_flag) this->PrintAvailableImageTypes(); - if (mArgsInfo.input_given) SetInputFilename(mArgsInfo.input_arg); - if (mArgsInfo.output_given) AddOutputFilename(mArgsInfo.output_arg); + if (mArgsInfo.input_given) this->SetInputFilename(mArgsInfo.input_arg); + if (mArgsInfo.output_given) this->AddOutputFilename(mArgsInfo.output_arg); +} +//-------------------------------------------------------------------- + + +//-------------------------------------------------------------------- +template +template +void +clitk::ExtractPatientGenericFilter:: +SetOptionsFromArgsInfoToFilter(FilterType * f) +{ + f->SetVerboseOptionFlag(mArgsInfo.verbose_flag); + f->SetVerboseStepFlag(mArgsInfo.verboseStep_flag); + f->SetWriteStepFlag(mArgsInfo.writeStep_flag); + f->SetVerboseWarningFlag(!mArgsInfo.verboseWarningOff_flag); + f->SetVerboseMemoryFlag(mArgsInfo.verboseMemory_flag); + + if (mArgsInfo.afdb_given) + f->SetAFDBFilename(mArgsInfo.afdb_arg); + + f->SetOutputPatientFilename(mArgsInfo.output_arg); + + f->SetUpperThreshold(mArgsInfo.upper_arg); + f->SetLowerThreshold(mArgsInfo.lower_arg); + f->SetPrimaryOpeningRadius(mArgsInfo.openingRadius_arg); + + f->SetDecomposeAndReconstructDuringFirstStep(mArgsInfo.erode1_flag); + + // Convert to SizeType + typename FilterType::InputImageSizeType s; + if (mArgsInfo.radius1_given) { + ConvertOptionMacro(mArgsInfo.radius1, s, 3, false); + f->SetRadius1(s); + } + + f->SetMaximumNumberOfLabels1(mArgsInfo.max1_arg); + f->SetNumberOfNewLabels1(mArgsInfo.new1_arg); + + f->SetDecomposeAndReconstructDuringSecondStep(mArgsInfo.erode2_flag); + + // Convert to SizeType + if (mArgsInfo.radius2_given) { + ConvertOptionMacro(mArgsInfo.radius2, s, 3, false); + f->SetRadius2(s); + } + + f->SetMaximumNumberOfLabels2(mArgsInfo.max2_arg); + f->SetNumberOfNewLabels2(mArgsInfo.new2_arg); + + f->SetFirstKeep(mArgsInfo.firstKeep_arg); + f->SetLastKeep(mArgsInfo.lastKeep_arg); + + f->SetFinalOpenClose(mArgsInfo.openClose_flag); + f->SetAutoCrop(!mArgsInfo.noAutoCrop_flag); } //-------------------------------------------------------------------- @@ -76,8 +132,8 @@ void clitk::ExtractPatientGenericFilter::UpdateWithInputImageType( this->SetFilterBase(filter); // Set global Options - filter->SetArgsInfo(mArgsInfo); filter->SetInput(input); + SetOptionsFromArgsInfoToFilter(filter); // Go ! filter->Update();