[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