X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=inline;f=tools%2FclitkCropImageGenericFilter.cxx;h=5c78d4ea436355e1d8e459ba8a69e9eac3f5d36d;hb=842bd9736b8c4a9e249dd4f026794d473ba095f7;hp=b062976b678b4dac3abe72804dd6dbda572c81aa;hpb=e2b60b0a571c065a2fdfc2fba9ad174c39130299;p=clitk.git diff --git a/tools/clitkCropImageGenericFilter.cxx b/tools/clitkCropImageGenericFilter.cxx index b062976..5c78d4e 100644 --- a/tools/clitkCropImageGenericFilter.cxx +++ b/tools/clitkCropImageGenericFilter.cxx @@ -79,6 +79,7 @@ namespace clitk { // Reading input typename ImageType::Pointer input = this->template GetInput(0); + typename ImageType::RegionType input_region = input->GetLargestPossibleRegion(); // Check options if (mArgsInfo.BG_given && mArgsInfo.like_given) @@ -123,10 +124,11 @@ namespace clitk // ------------------------------------------------ typename ImageType::SizeType lSize; typename ImageType::SizeType uSize; + if (mArgsInfo.verbose_flag) std::cout << "input region " << input_region << std::endl; if (mArgsInfo.boundingBox_given) { for(unsigned int i=0; iGetLargestPossibleRegion().GetSize()[i]-mArgsInfo.boundingBox_arg[2*i+1]-1; + uSize[i] = input_region.GetSize()[i]-mArgsInfo.boundingBox_arg[2*i+1]-1; } } else { @@ -141,6 +143,11 @@ namespace clitk } else uSize.Fill(0); } + + if (mArgsInfo.verbose_flag) { + std::cout << "lower " << lSize << " upper " << uSize << std::endl; + } + typedef itk::CropImageFilter CropImageFilterType; typename CropImageFilterType::Pointer filter=CropImageFilterType::New(); filter->SetInput(input); @@ -157,6 +164,14 @@ namespace clitk origin.Fill(itk::NumericTraits::Zero); output->SetOrigin(origin); } + + // force index to zero + typename ImageType::RegionType region; + region = output->GetLargestPossibleRegion(); + typename ImageType::IndexType index; + index.Fill(itk::NumericTraits::Zero); + region.SetIndex(index); + output->SetRegions(region); // Write/Save results this->template SetNextOutput(output);