diff --git a/resample.cxx b/resample.cxx index e0f0438..dce3504 100644 --- a/resample.cxx +++ b/resample.cxx @@ -70,20 +70,19 @@ int DoIt2(int argc, char *argv[], InterpolatorType* interpolator){ typename InputImageType::SpacingType outputSpacing; std::vector savedPointers; // to store smart-pointers outside their creation scope - savedPointers.push_back(caster.GetPointer()); - typedef itk::ImageSource ISType; + savedPointers.push_back(caster); for (unsigned int i= 0; i < Dimension; i++){ outputSpacing[i]= atof(argv[5+i]); typename GaussianFilterType::Pointer smoother = GaussianFilterType::New(); - smoother->SetInput(dynamic_cast(savedPointers[i].GetPointer())->GetOutput()); // similar to: https://cmake.org/pipermail/insight-users/2007-May/022374.html + smoother->SetInput(savedPointers[i]->GetOutput()); // similar to: https://cmake.org/pipermail/insight-users/2007-May/022374.html smoother->SetSigma(outputSpacing[i]); smoother->SetDirection(i); smoother->ReleaseDataFlagOn(); smoother->InPlaceOn(); FilterWatcher watcherX(smoother); - savedPointers.push_back(smoother.GetPointer()); + savedPointers.push_back(smoother); } const typename InputImageType::SizeType& inputSize= input->GetLargestPossibleRegion().GetSize(); @@ -98,7 +97,7 @@ int DoIt2(int argc, char *argv[], InterpolatorType* interpolator){ typedef itk::ResampleImageFilter FilterType; typename FilterType::Pointer filter= FilterType::New(); - filter->SetInput(dynamic_cast(savedPointers[savedPointers.size()].GetPointer())->GetOutput()); + filter->SetInput(savedPointers[savedPointers.size()]->GetOutput()); filter->SetTransform(transform); filter->SetInterpolator(interpolator); filter->SetOutputSpacing(outputSpacing);