X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=tools%2FclitkCropImageGenericFilter.cxx;h=aeae1f988806c100c6198f407f59baefc5134222;hb=54de2903ffa1d7f444d2a38609de58f8f2ab0d2d;hp=5c78d4ea436355e1d8e459ba8a69e9eac3f5d36d;hpb=274bf49f4b2781c521ddc04c0fc77ac43f2f2b82;p=clitk.git diff --git a/tools/clitkCropImageGenericFilter.cxx b/tools/clitkCropImageGenericFilter.cxx index 5c78d4e..aeae1f9 100644 --- a/tools/clitkCropImageGenericFilter.cxx +++ b/tools/clitkCropImageGenericFilter.cxx @@ -165,14 +165,21 @@ namespace clitk output->SetOrigin(origin); } - // force index to zero - typename ImageType::RegionType region; - region = output->GetLargestPossibleRegion(); - typename ImageType::IndexType index; + // adjust image origin and force index to zero + typename ImageType::RegionType region = output->GetLargestPossibleRegion(); + typename ImageType::IndexType index = region.GetIndex(); + typename ImageType::PointType origin = output->GetOrigin(); + typename ImageType::SpacingType spacing = output->GetSpacing(); + if (mArgsInfo.verbose_flag) std::cout << "origin before crop " << origin << std::endl; + for (unsigned int i = 0; i < output->GetImageDimension(); i++) + origin[i] += index[i]*spacing[i]; + if (mArgsInfo.verbose_flag) std::cout << "origin after crop " << origin << std::endl; + output->SetOrigin(origin); + index.Fill(itk::NumericTraits::Zero); region.SetIndex(index); output->SetRegions(region); - + // Write/Save results this->template SetNextOutput(output); }