X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=segmentation%2FclitkExtractPatientFilter.txx;h=00e31653afce00e5ea32c5a91a1218fbe39251fa;hb=703487ce9c727034bddad25e1b33750a835f7caf;hp=74cc2ccd0f7cc1909b7c70f3335583a2eb88d8d7;hpb=667a674794cf667db213d3c03f2d4b5d907ca35d;p=clitk.git diff --git a/segmentation/clitkExtractPatientFilter.txx b/segmentation/clitkExtractPatientFilter.txx index 74cc2cc..00e3165 100644 --- a/segmentation/clitkExtractPatientFilter.txx +++ b/segmentation/clitkExtractPatientFilter.txx @@ -1,7 +1,7 @@ /*========================================================================= Program: vv http://www.creatis.insa-lyon.fr/rio/vv - Authors belong to: + Authors belong to: - University of LYON http://www.universite-lyon.fr/ - Léon Bérard cancer center http://www.centreleonberard.fr - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr @@ -69,11 +69,11 @@ ExtractPatientFilter(): SetRadius2(r); SetMaximumNumberOfLabels2(2); SetNumberOfNewLabels2(1); - + // Step 5: Only keep label corresponding (Keep patient's labels) SetFirstKeep(1); SetLastKeep(1); - + // Step 4: OpenClose (option) FinalOpenCloseOff(); AutoCropOn(); @@ -83,9 +83,9 @@ ExtractPatientFilter(): //-------------------------------------------------------------------- template -void +void clitk::ExtractPatientFilter:: -SetInput(const TInputImageType * image) +SetInput(const TInputImageType * image) { this->SetNthInput(0, const_cast(image)); } @@ -94,9 +94,9 @@ SetInput(const TInputImageType * image) //-------------------------------------------------------------------- template -void +void clitk::ExtractPatientFilter:: -GenerateOutputInformation() { +GenerateOutputInformation() { clitk::PrintMemory(GetVerboseMemoryFlag(), "Initial memory"); // OK @@ -109,10 +109,10 @@ GenerateOutputInformation() { // Get input pointers static const unsigned int Dim = InputImageType::ImageDimension; //input = dynamic_cast(itk::ProcessObject::GetInput(0)); - + //-------------------------------------------------------------------- //-------------------------------------------------------------------- - // Step 1: + // Step 1: StartNewStep("Find low densities areas"); // Pad images with air to prevent patient touching the image border @@ -127,7 +127,7 @@ GenerateOutputInformation() { padFilter->SetPadLowerBound(bounds); padFilter->SetPadUpperBound(bounds); - typedef itk::BinaryThresholdImageFilter BinarizeFilterType; + typedef itk::BinaryThresholdImageFilter BinarizeFilterType; typename BinarizeFilterType::Pointer binarizeFilter=BinarizeFilterType::New(); binarizeFilter->SetInput(padFilter->GetOutput()); if (m_UseLowerThreshold) binarizeFilter->SetLowerThreshold(GetLowerThreshold()); @@ -141,7 +141,7 @@ GenerateOutputInformation() { connectFilter->SetInput(binarizeFilter->GetOutput()); connectFilter->SetBackgroundValue(this->GetBackgroundValue()); connectFilter->SetFullyConnected(false); - + // Sort labels according to size typedef itk::RelabelComponentImageFilter RelabelFilterType; typename RelabelFilterType::Pointer relabelFilter=RelabelFilterType::New(); @@ -149,13 +149,13 @@ GenerateOutputInformation() { relabelFilter->SetInput(connectFilter->GetOutput()); relabelFilter->Update(); working_image = relabelFilter->GetOutput(); - + // End StopCurrentStep(working_image); //-------------------------------------------------------------------- //-------------------------------------------------------------------- - // [Optional] + // [Optional] if (GetDecomposeAndReconstructDuringFirstStep()) { StartNewStep("First Decompose & Reconstruct step"); typedef clitk::DecomposeAndReconstructImageFilter FilterType; @@ -172,11 +172,11 @@ GenerateOutputInformation() { working_image = f->GetOutput(); StopCurrentStep(working_image); } - + //-------------------------------------------------------------------- //-------------------------------------------------------------------- StartNewStep("Remove the air (largest area)"); - typedef itk::BinaryThresholdImageFilter iBinarizeFilterType; + typedef itk::BinaryThresholdImageFilter iBinarizeFilterType; typename iBinarizeFilterType::Pointer binarizeFilter2 = iBinarizeFilterType::New(); binarizeFilter2->SetInput(working_image); binarizeFilter2->SetLowerThreshold(GetFirstKeep()); @@ -194,15 +194,15 @@ GenerateOutputInformation() { relabelFilter2->SetInput(connectFilter2->GetOutput()); relabelFilter2->Update(); working_image = relabelFilter2->GetOutput(); - + // Keep main label working_image = KeepLabels - (working_image, GetBackgroundValue(), GetForegroundValue(), 1, 1, true); + (working_image, GetBackgroundValue(), GetForegroundValue(), 1, 1, true); StopCurrentStep(working_image); //-------------------------------------------------------------------- //-------------------------------------------------------------------- - // [Optional] + // [Optional] if (GetDecomposeAndReconstructDuringSecondStep()) { StartNewStep("Second Decompose & Reconstruct step"); typedef clitk::DecomposeAndReconstructImageFilter FilterType; @@ -235,7 +235,7 @@ GenerateOutputInformation() { openFilter->SetInput(working_image); openFilter->SetBackgroundValue(this->GetBackgroundValue()); openFilter->SetForegroundValue(this->GetForegroundValue()); - openFilter->SetKernel(structuringElement); + openFilter->SetKernel(structuringElement); // Close typedef itk::BinaryMorphologicalClosingImageFilter CloseFilterType; typename CloseFilterType::Pointer closeFilter = CloseFilterType::New(); @@ -244,14 +244,14 @@ GenerateOutputInformation() { closeFilter->SetForegroundValue(this->GetForegroundValue()); // closeFilter->SetBackgroundValue(SetBackgroundValue()); closeFilter->SetKernel(structuringElement); - closeFilter->Update(); + closeFilter->Update(); working_image = closeFilter->GetOutput(); StopCurrentStep(working_image); } //-------------------------------------------------------------------- //-------------------------------------------------------------------- - // Final Cast + // Final Cast typedef itk::CastImageFilter CastImageFilterType; typename CastImageFilterType::Pointer caster= CastImageFilterType::New(); caster->SetInput(working_image); @@ -267,7 +267,7 @@ GenerateOutputInformation() { typename CropFilterType::Pointer cropFilter = CropFilterType::New(); cropFilter->SetInput(output); cropFilter->SetBackgroundValue(GetBackgroundValue()); - cropFilter->Update(); + cropFilter->Update(); output = cropFilter->GetOutput(); StopCurrentStep(output); } @@ -288,16 +288,16 @@ GenerateOutputInformation() { //-------------------------------------------------------------------- template -void +void clitk::ExtractPatientFilter:: GenerateData() { // Final Graft this->GraftOutput(output); // Store image filename into AFDB - GetAFDB()->SetImageFilename("Patient", this->GetOutputPatientFilename()); + GetAFDB()->SetImageFilename("Patient", this->GetOutputPatientFilename()); WriteAFDB(); } //-------------------------------------------------------------------- - + #endif //#define CLITKBOOLEANOPERATORLABELIMAGEFILTER_TXX