[Insight-users] DiscreteGaussianImageFilter in function
Arunachalam Kana
Kana.Arunachalam at fh-wels.at
Fri Apr 1 07:48:26 EDT 2011
Hi,
Writing the error message will give a better idea for us about what you are facing.
Anyways from what i know, the outputimagetype for discretegaussian is a float image. So in your definition
typedef itk::DiscreteGaussianImageFilter< TImageType, TImageType > DiscreteGaussianFilterType;
TImageType should be of float type. So your input image should be a float too. If this is true then i don't know the bug.
If your input image is not float then you should change the definition as
typedef itk::DiscreteGaussianImageFilter< TImageType, TOutputImageType > DiscreteGaussianFilterType;
TOutputImageType should be a float image.
This is the only thought sparked in my mind. Please check for this.
All the best
Regards,
Kana
From: insight-users-bounces at itk.org [mailto:insight-users-bounces at itk.org] On Behalf Of G G
Sent: 01 April 2011 11:37
To: insight-users
Subject: [Insight-users] DiscreteGaussianImageFilter in function
Hi, I dont solve it, so I try to ask here...
I have this function
template<typename TImageTypePointer, typename TImageType> void WatershedCompute::
discreteGaussianFilter(TImageTypePointer inputImage, void *poutputImage)
{
typedef itk::DiscreteGaussianImageFilter< TImageType, TImageType > DiscreteGaussianFilterType;
DiscreteGaussianFilterType::Pointer discreteGaussianFilter = DiscreteGaussianFilterType::New();
discreteGaussianFilter->SetInput( inputImage );
const double gaussianVariance = this->params->Get_discrete_gaussian_variance();
const unsigned int maxKernelWidth = this->params->Get_discrete_gaussian_kernel_width();
discreteGaussianFilter->SetVariance( gaussianVariance );
discreteGaussianFilter->SetMaximumKernelWidth( maxKernelWidth );
discreteGaussianFilter->Update(); // this line
TImageTypePointer *Pout = (TImageTypePointer *)poutputImage;
*Pout = discreteGaussianFilter->GetOutput();
return;
}
And in // this line I have "error"... I dont know, if it is error, because I get code from another function, which I dont call, I dont know what is the problem :(
I have another function for example
template<typename TImageTypePointer, typename TImageType> void WatershedCompute::
rescaleIntensityFilter(TImageTypePointer inputImage, void *poutputImage, int min, int max)
{
typedef itk::RescaleIntensityImageFilter< TImageType, TImageType > RescaleFilterType;
RescaleFilterType::Pointer rescaler = RescaleFilterType::New();
rescaler->SetOutputMinimum( min );
rescaler->SetOutputMaximum( max );
rescaler->SetInput( inputImage );
rescaler->Update();
TImageTypePointer *Pout = (TImageTypePointer *)poutputImage;
*Pout = rescaler->GetOutput();
return;
}
When I call only rescaleIntensityFilter and dont call discreteGaussianFilter it is OK. Could someone help me, please?
Thanks a lot :-)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20110401/2d0ca193/attachment.htm>
More information about the Insight-users
mailing list