[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