X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=segmentation%2FclitkExtractPatientGenericFilter.txx;h=8cde3f5be4e85d8bd4dad97b73481d43299f74bf;hb=686056dfe2391eed76302af43b08d30791901965;hp=f90c1c7992a0a7b900083a372251f4b6e4be2978;hpb=50c57f15fa84d140994a8239ce84191ded47a985;p=clitk.git diff --git a/segmentation/clitkExtractPatientGenericFilter.txx b/segmentation/clitkExtractPatientGenericFilter.txx index f90c1c7..8cde3f5 100644 --- a/segmentation/clitkExtractPatientGenericFilter.txx +++ b/segmentation/clitkExtractPatientGenericFilter.txx @@ -55,6 +55,59 @@ void clitk::ExtractPatientGenericFilter::SetArgsInfo(const ArgsInf //-------------------------------------------------------------------- +//-------------------------------------------------------------------- +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->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); +} +//-------------------------------------------------------------------- + + //-------------------------------------------------------------------- // Update with the number of dimensions and the pixeltype //-------------------------------------------------------------------- @@ -69,25 +122,18 @@ void clitk::ExtractPatientGenericFilter::UpdateWithInputImageType( typename ImageType::Pointer input = this->template GetInput(0); // Create filter - typedef clitk::ExtractPatientFilter FilterType; + typedef clitk::ExtractPatientFilter FilterType; typename FilterType::Pointer filter = FilterType::New(); // Set the filter (needed for example for threaded monitoring) this->SetFilterBase(filter); // Set global Options - filter->SetArgsInfo(mArgsInfo); filter->SetInput(input); + SetOptionsFromArgsInfoToFilter(filter); // Go ! filter->Update(); - - // Check if error - if (filter->HasError()) { - SetLastError(filter->GetLastError()); - // No output - return; - } // Write/Save results typename OutputImageType::Pointer output = filter->GetOutput();