[Insight-users] Re: Speed Image and Propagation,
Advection and Curvature terms
Luis Ibanez
luis.ibanez at kitware.com
Thu May 5 21:56:14 EDT 2005
Hi Conn,
The output of the Sigmoid is strictly speaking a "feature" image.
From this image the PDE framework computes a "speed" image. The
speed image is computed as a combination of terms:
speed = propagation + curvature + advection
the propagation term is = feature image X propagationWeight
For more details you should read the ITK Software Guide
http://www.itk.org/ItkSoftwareGuide-2.0.1.pdf
In particular Section 9.3, "Level Set Segmentation",
in pdf-pages 496 to 541.
Regards,
Luis
--------------------
conn sullivan wrote:
> Hello Luis,
>
> It is not clear to me yet how speed is computed from Speed Image
> obtained from Sigmoid?
> Is propagation term directly taken from values of speed image? What
> about curvature and advection terms?
>
> Thanks,
> Conn
>
> */Luis Ibanez <luis.ibanez at kitware.com>/* wrote:
>
>
> Hi Conn,
>
> You may want to try:
>
> EdgePotential
> http://www.itk.org/Insight/Doxygen/html/classitk_1_1EdgePotentialImageFilter.html
>
> and he ExpNegativeImageFilter
> http://www.itk.org/Insight/Doxygen/html/classitk_1_1ExpNegativeImageFilter.html
>
>
> The first compute the gradient of the image and then pass it through an
> exponential. The second only do the exponential. The advangate of the
> second is that you can select your own gradient-magnitude-like filter.
> The disadvantage is that you use two filters.
>
>
> Note... however that the reason why we moved into using the Sigmoid for
> constructing speed images was that the traditional methods (edge
> potential) do not offer enough flexibility for controlling the creation
> of the speed image.
>
>
> I would suggest you to reconsider the way you are using the Sigmoid
> filter...! you probably just need to find better values for Alpha
> and Beta.
>
>
> Note also that if the gradient magnitude image have gaps in the contours
> there is not much that you can improve over that when computing the
> speed image. Probably the only thing that can help you there is to
> increase the CurvatureScaling of the level set...
>
> Presence of gaps in the gradient magnitude simply means that the
> intensities of the object that you are trying to segment are too
> close to some neighbor anatomical structure.
>
> If you want to be pragmatic you could also consider the use of
> "stoppers" as they are implemented in the SNAP application in
> InsightApplications.
>
>
>
> Regards,
>
>
> Luis
>
>
>
> ---------------------
> conn sullivan wrote:
>
> > Hello Luis,
> >
> > What are the ITK filters other than Sigmoid that can be used to
> generate
> > speed images?
> > In some cases, gradient magnitude + sidmoid filter is! not
> helping me due
> > to gaps produced on boundaries of gradient magnitude. This leads to
> > leackage in the final output.
> >
> > Thanks,
> > Conn
> >
> >
> >
> > */Luis Ibanez /* wrote:
> >
> >
> >
> > Hi Conn,
> >
> >
> > The speed image computation starts in :
> >
> > Insight/Code/Algorithms/
> > itkSegmentationLevelSetimageFilter.txx
> >
> > The computation is delegated to the SegmentationFunction
> > by invoking its method:
> >
> > CalculateSpeedImage();
> >
> > This method is implemented in the file
> >
> > Insight/Code/Algorithms/
> > itkCannySegmentationLevelSetFunction.txx
> >
> > in lines 30-38.
> >
> >
> > The speed image is computed as a distance map to the Canny
> > edges in the method CalculateDistanceimage() in lines 81-102
> > of the same file.
> >
> >
> >
> ! >
> > Regards,
> >
> >
> >
> > Luis
> >
> >
> >
> >
> -----------------------------------------------------------------------------
> > conn sullivan wrote:
> >
> > > Hello Luiz,
> > >
> > > I appreciate your reply. I get the speed image now. I have one more
> > > question. Are speed values taken directly ! from these speed
> > image. Also,
> > > what is z(x) computed for canny edge filter. What part of code from
> > > .cxx file performs this calculation?
> > >
> > > Thanks,
> > > Conn.
> > >
> > > */Luis Ibanez /* wrote:
> > >
> > >
> > > Hi Conn,
> > >
> > >
> > > Thanks for posting the output of the two readers.
> > >
> > > We tracked this problem down and found that what you are missing is
> > > to invoke the "GenerateSpeedImage()" method in the Canny level set
> > > filter ! before you invoke GetSpeedImage().
> > >
> > > Note that the GenerateSpeedImage() method must be called after
> > > runninig the filter with Update().
> > >
> > >
> > > For your convinience we added this code to the example in
> > >
> > > Insight/Examples/Segmentation/
> > > CannySegmentationLevelSetImageFilter.cxx
> > >
> > >
> > >
> > > In order to get the new version simply update your CVS checkout
> > of ITK,
> > ! > or go to the CVS-Web portal and download the new version of this
> > file:
> > >
> > >
> >
> http://www.itk.org/cgi-bin/viewcvs.cgi/Examples/Segmentation/CannySegmentationLevelSetImageFilter.cxx?rev=1.27&root=Insight&view=log
> > >
> > >
> > >
> > >
> > > Regards,
> > >
> > >
> > >
> > > Luis
> > >
> > >
> >
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam? Yahoo! Mail has the best spam protection around
> > http://mail.yahoo.com
> >
>
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
More information about the Insight-users
mailing list