Hi everyone:
I briefly summarize my questions.
What is the best way to subsample or rescale a volume? And do we need low-pass filter to smooth the original volume?
If so, how to set sigma of RecursiveGaussianImageFilter ? Thanks.
I have tried these approaches by ITK.
1) Examples/Filtering/ResampleImageFilter1.cxx.
only use ResampleImageFilter and not involve low-pass filter.
2) Examples/Filtering/SubsampleVolume.cxx.
Before use ResampleImageFilter, a recursive RecursiveGaussianImageFilter is used to smooth the original volume.
And the parameters of guassian filter are set by:
const double sigmaX = inputSpacing[0] * factorX;
const double sigmaY = inputSpacing[1] * factorY;
const double sigmaZ = inputSpacing[2] * factorZ;
smootherX->SetSigma( sigmaX );
smootherY->SetSigma( sigmaY );
smootherZ->SetSigma( sigmaZ );
Which one is the appropriated way to subsample or rescale a volume.
I tried one volume by these methods. The result one the first one is much clear than the second one which involved with low-pass filter.
The result of the second one is fuzzy in some degree.
I doubt the reason is the parameter simga
RecursiveGaussianImageFilter affect the result.
There is a solution provided from
In there method, the parameters are set to:
const double sigmaX = inputSpacing[0] * factorX * 0.61;
const double sigmaY = inputSpacing[1] * factorY * 0.61;
const double sigmaZ = inputSpacing[2] * factorZ * 0.61;
smootherX->SetSigma( sigmaX );
smootherY->SetSigma( sigmaY );
smootherZ->SetSigma( sigmaZ );
If we need smooth the volume and how to set the parameter of RecursiveGaussianImageFilter? Thanks.