+ typedef itk::RecursiveGaussianImageFilter<InputImageType, InputImageType> GaussianFilterType;
+ std::vector<typename GaussianFilterType::Pointer> gaussianFilters;
+ if (gaussianFilteringEnabled || autoGaussEnabled) {
+ for(unsigned int i=0; i<Dimension; i++) {
+ if (gaussianSigma[i] != 0) {
+ gaussianFilters.push_back(GaussianFilterType::New());
+ gaussianFilters[i]->SetDirection(i);
+ gaussianFilters[i]->SetOrder(GaussianFilterType::ZeroOrder);
+ gaussianFilters[i]->SetNormalizeAcrossScale(false);
+ gaussianFilters[i]->SetSigma(gaussianSigma[i]); // in millimeter !
+ if (gaussianFilters.size() == 1) { // first
+ gaussianFilters[0]->SetInput(input);
+ } else {
+ gaussianFilters[i]->SetInput(gaussianFilters[i-1]->GetOutput());
+ }
+ }
+ }
+ if (gaussianFilters.size() > 0) {
+ resampler->SetInput(gaussianFilters[gaussianFilters.size()-1]->GetOutput());
+ } else resampler->SetInput(input);
+ } else resampler->SetInput(input);
+