+
+
+//--------------------------------------------------------------------
+template<class InputImageType>
+typename InputImageType::Pointer
+clitk::ResampleImageSpacing(typename InputImageType::Pointer input,
+ typename InputImageType::SpacingType spacing,
+ int interpolationType)
+{
+ typedef clitk::ResampleImageWithOptionsFilter<InputImageType> ResampleFilterType;
+ typename ResampleFilterType::Pointer resampler = ResampleFilterType::New();
+ resampler->SetInput(input);
+ resampler->SetOutputSpacing(spacing);
+ typename ResampleFilterType::InterpolationTypeEnumeration inter=ResampleFilterType::NearestNeighbor;
+ switch(interpolationType) {
+ case 0: inter = ResampleFilterType::NearestNeighbor; break;
+ case 1: inter = ResampleFilterType::Linear; break;
+ case 2: inter = ResampleFilterType::BSpline; break;
+ case 3: inter = ResampleFilterType::B_LUT; break;
+ case 4: inter = ResampleFilterType::WSINC; break;
+ }
+ resampler->SetInterpolationType(inter);
+ resampler->SetGaussianFilteringEnabled(true);
+ resampler->Update();
+ return resampler->GetOutput();
+}
+//--------------------------------------------------------------------