X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=itk%2FclitkAutoCropFilter.txx;h=cc2c137abdf7e2c8bf04bf1ba5a5fc3979909fcb;hb=021d8fc72f6edbf44b2b63db3a10552df34120ee;hp=164bb22e42e41179332c6d15c3494bec89a00962;hpb=682faa996059bfeee148e3d65ffa5cec4dadf3e2;p=clitk.git diff --git a/itk/clitkAutoCropFilter.txx b/itk/clitkAutoCropFilter.txx index 164bb22..cc2c137 100644 --- a/itk/clitkAutoCropFilter.txx +++ b/itk/clitkAutoCropFilter.txx @@ -29,6 +29,7 @@ #include "itkLabelImageToLabelMapFilter.h" #include "itkLabelMapToLabelImageFilter.h" #include "itkRegionOfInterestImageFilter.h" +#include "itkExtractImageFilter.h" namespace clitk { @@ -94,7 +95,8 @@ namespace clitk { typedef itk::AutoCropLabelMapFilter AutoCropFilterType; typename AutoCropFilterType::Pointer autoCropFilter = AutoCropFilterType::New(); autoCropFilter->SetInput(imageToLabelFilter->GetOutput()); - + autoCropFilter->ReleaseDataFlagOff(); + // Convert to LabelImage typedef itk::LabelMapToLabelImageFilter MapToImageFilterType; typename MapToImageFilterType::Pointer labelToImageFilter = MapToImageFilterType::New(); @@ -106,6 +108,12 @@ namespace clitk { // Update the output size m_Region = m_labeImage->GetLargestPossibleRegion(); + // Sometimes the index is 9223372036854775807 ??? + if (m_Region.GetIndex()[0] > 99999) { + typename ImageType::IndexType index; + index.Fill(0); + m_Region.SetIndex(index); + } output->SetLargestPossibleRegion(m_Region); output->SetRequestedRegion(m_Region); output->SetBufferedRegion(m_Region); @@ -118,16 +126,23 @@ namespace clitk { void AutoCropFilter:: GenerateData() { - DD("AutoCropFilter::GenerateData"); // Get input pointers ImageConstPointer input = dynamic_cast(itk::ProcessObject::GetInput(0)); // Extract the region - typedef itk::RegionOfInterestImageFilter CropFilterType; + + //TO CHANGE WITH EXTRACTIMAGEFILTER ! + + // typedef itk::RegionOfInterestImageFilter CropFilterType; + typedef itk::ExtractImageFilter CropFilterType; m_labeImage->SetRequestedRegion(m_labeImage->GetLargestPossibleRegion()); typename CropFilterType::Pointer cropFilter = CropFilterType::New(); cropFilter->SetInput(m_labeImage); - cropFilter->SetRegionOfInterest(m_Region); + + // cropFilter->SetRegionOfInterest(m_Region); + cropFilter->SetExtractionRegion(m_Region); + + cropFilter->ReleaseDataFlagOff(); // Go ! cropFilter->Update();