[Insight-users] Re: the sigmoid image is entirely white for GeodesicActiveContourLevelSet

Goo gtshowtime at gmail.com
Tue Mar 27 10:16:43 EST 2007


I am using EZDicom to visualize my result.
and discovering the value of intensity is full -32768.
it seems like overflow.

>
>
> 2007/3/27, Luis Ibanez < luis.ibanez at kitware.com>:
> >
> >
> > Hi Goo:
> >
> >
> > A couple of comments:
> >
> >
> > 1) What are you using for visualizing the images ?
> >
> >     e.g. what is the viewer that leads you to conclude
> >     that your float images are "full white". ?
> >
> >
> >
> > 2) If you get to a case where the Gradient Magnitude
> >     looks fine, and the Sigmoid looks "full white", then
> >     you need to *REDUCE* the value of the Beta parameter
> >     in the Sigmoid filter.
> >
> >     In order to find an appropriate value for Beta, you
> >     should study the values of the Gradient Magnitude image
> >     on the edges of the structures that you intend to segment.
> >
> >
> >
> >     Please read the ITK Software Guide:
> >
> >          http://www.itk.org/ItkSoftwareGuide.pdf
> >
> >     advice on how to set up the Alpha and Beta parameters
> >     in the context of the LevelSets framework is given in
> >     sections:
> >
> >
> >      9.3.1 "Fast Marching Segmentation" in pdf-page 565.
> >            Please read attentively pdf-page 569 and the
> >            discussion about K1 and K2 values.
> >
> >     and, of course, please read section:
> >
> >     6.3.2.  "Non linear mappings", in pdf-page 181-183.
> >
> >
> >
> >
> > Regards,
> >
> >
> >     Luis
> >
> >
> >
> > -------------
> > Goo wrote:
> > > notice something:
> > >
> > > (1)
> > > if the ExternalImageType used as float, the image of result will be
> > white
> > > entirely in every step (smooth,gradient and sigmoid).
> > >
> > > (2)
> > > And if both ExternalImageType and InternalImageType are signed short,
> > >
> > > the image of smooth and gradient are fine but sigmoid image is whole
> > white.
> > >
> > > (3) Unfortunately , the format for level set must be float.
> > > How do I solve this problem???
> > >
> > >
> > > 2007/3/27, Goo <gtshowtime at gmail.com <mailto:gtshowtime at gmail.com>>:
> > >
> > >     Hi All:
> > >
> > >     This question is so confused to me.
> > >     The output of sigmoid image is shown white entirely but gradient
> > >     image fine.
> > >
> > >     The following are my programs:
> > >     if the ExternalImageType used as float, the image of result will
> > be
> > >     white entirely in smooth,gradient and sigmoid.
> > >
> > >     Please give me some guidance.
> > >     Regards.
> > >
> > >
> > //----------------------------------CODE-------------------------------------------
> > >
> > >         typedef itk::Image< signed short, 3 >  InternalImageType;
> > >         typedef itk::Image< signed short, 3 >  ExternalImageType;
> > >
> > >         typedef itk::RescaleIntensityImageFilter<ExternalImageType,
> > >     InternalImageType> InputCastType;
> > >         typedef itk::RescaleIntensityImageFilter<InternalImageType,
> > >     ExternalImageType> OutputCastType;
> > >
> > >         OutputCastType::Pointer            m_SmoothObserver;
> > >         OutputCastType::Pointer            m_GradientObserver;
> > >         OutputCastType::Pointer            m_SigmoidObserver;
> > >
> > >             typedef itk::ResampleImageFilter<
> > >                                 InternalImageType , InternalImageType
> > >
> > >     FilterType;
> > >             FilterType::Pointer SubSample = FilterType::New();
> > >
> > >             typedef itk::AffineTransform< double, 3 >  TransformType;
> > >             TransformType::Pointer transform = TransformType::New();
> > >
> > >             typedef itk::NearestNeighborInterpolateImageFunction<
> > >                                InternalImageType, double >
> > >     InterpolatorType;
> > >             InterpolatorType::Pointer interpolator =
> > >     InterpolatorType::New();
> > >
> > >             SubSample->SetInterpolator( interpolator );
> > >             SubSample->SetDefaultPixelValue( 50 );
> > >
> > >             double spacing[ 3 ];
> > >             spacing[0] = InputCaster->GetOutput()->GetSpacing()[0];
> > >             spacing[1] = InputCaster->GetOutput()->GetSpacing()[1];
> > >             spacing[2] = InputCaster->GetOutput()->GetSpacing()[2];
> > >             SubSample->SetOutputSpacing( spacing );
> > >
> > >             double origin [3];
> > >             origin[0] = 80*spacing[0];
> > >             origin[1] = 80*spacing[1];
> > >             origin[2] = 15*spacing[2];
> > >             SubSample->SetOutputOrigin(origin);
> > >
> > >             InternalImageType::SizeType   size;
> > >
> > >             size[0] = 100;
> > >             size[1] = 100;
> > >             size[2] = 5;
> > >
> > >             SubSample->SetSize( size );
> > >             SubSample->SetInput( InputCaster->GetOutput() );
> > >             SubSample->SetTransform( transform );
> > >             transform->SetIdentity();
> > >
> > >             SubSample->Update();
> > >
> > >
> > >             typedef itk::CurvatureAnisotropicDiffusionImageFilter
> > >                         < InternalImageType,InternalImageType >
> > >     SmoothingFilterType;
> > >
> > >             typedef itk::GradientMagnitudeRecursiveGaussianImageFilter
> > >                         < InternalImageType,InternalImageType >
> > >     GradientFilterType;
> > >
> > >             typedef itk::SigmoidImageFilter
> > >                         < InternalImageType,InternalImageType >
> > >     SigmoidFilterType;
> > >
> > >             SmoothingFilterType::Pointer    m_smoothing =
> > >     SmoothingFilterType::New();
> > >             GradientFilterType::Pointer        m_gradientMagnitude =
> > >     GradientFilterType::New();
> > >             SigmoidFilterType::Pointer        m_sigmoid =
> > >     SigmoidFilterType::New();
> > >
> > >             m_smoothing->SetNumberOfIterations(  m_SmoothIter );
> > >             m_smoothing->SetConductanceParameter( m_SmoothConductance
> > );
> > >             m_smoothing->SetTimeStep( m_TimeStep );
> > >
> > >             m_gradientMagnitude->SetSigma(  m_sigma  );
> > >
> > >             m_sigmoid->SetOutputMinimum(  m_SigmoidOutMin  );
> > >             m_sigmoid->SetOutputMaximum(  m_SigmoidOutMax  );
> > >             m_sigmoid->SetAlpha( m_alpha );
> > >             m_sigmoid->SetBeta(  m_beta  );
> > >
> > >             m_smoothing->SetInput(     SubSample->GetOutput() );
> > >             m_gradientMagnitude->SetInput( m_smoothing->GetOutput() );
> >
> > >             m_sigmoid->SetInput( m_gradientMagnitude->GetOutput() );
> > >
> > >             m_SmoothObserver->SetInput(m_smoothing->GetOutput());
> > >
> > m_GradientObserver->SetInput(m_gradientMagnitude->GetOutput());
> > >             m_SigmoidObserver->SetInput(m_sigmoid->GetOutput());
> > >
> > >             m_SmoothObserver->Update();
> > >             m_GradientObserver->Update();
> > >             m_SigmoidObserver->Update();
> > >
> > >
> > >
> > >
> > ------------------------------------------------------------------------
> > >
> > > _______________________________________________
> > > Insight-users mailing list
> > > Insight-users at itk.org
> > > http://www.itk.org/mailman/listinfo/insight-users
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20070327/a930842b/attachment.html


More information about the Insight-users mailing list