[Insight-users] DiscreteGaussianImageFilter in function

G G greenlander1986 at gmail.com
Fri Apr 1 09:43:29 EDT 2011


You are right, but I have to display "unsigned char" image... Do you know
name of filter, which convert float image to unsigned char image?
Thanks a lot

2011/4/1 Arunachalam Kana <Kana.Arunachalam at fh-wels.at>

> 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/26a3a59c/attachment.htm>


More information about the Insight-users mailing list