[Insight-users] itkScalarChanAndVeseSparseLevelSetImageFilter

Kishore Mosaliganti kishoreraom at gmail.com
Tue Jun 16 06:19:46 EDT 2009


HI Eleni,

Between the IJ and the Review code, we made one significant modification.
The heaviside regularization function was not being correctly applied in the
formula to compute the global constants. So, we changed that.

This will change the boundary of your segmentation in a minor way. I think
that is what you are observing. If you were to change the SetEpsilon( 1 ) to
SetEpsilon(0.1), you will probably see the old result.

In your previous email, you reported problems with using the Observer and
negative origins. Is that working out now? If not, can you elaborate your
experience. This will help us.

Thanks,
Kishore


On Sun, Jun 14, 2009 at 11:29 PM, Sgouritsa, Eleni
<esgourit at central.uh.edu>wrote:

>  Hello Kishore,
> I tried the new filter (latest CVS) also in more data. In all it works well
> but the segmentation is always an augmented version of the correct
> segmentation.As we discussed, the filter now gives a very good result, but
> still the segmentation expands outside the real boundary of the data (see
> dataset 1). We could probably think that this is not a problem because
> probably that is the result that Chan and Vese method can give. However, the
> insight journal code gave the correct segmentation so I was wondering if
> there is still a bug or a difference between insight code and itk last
> release.
> Thank you for the help.
>
> Regards,
> Eleni
>
> -----Original Message-----
> From: Kishore Mosaliganti [mailto:kishoreraom at gmail.com<kishoreraom at gmail.com>
> ]
> Sent: Mon 6/8/2009 1:02 PM
> To: Sgouritsa, Eleni
> Cc: insight-users at itk.org
> Subject: Re: [Insight-users] itkScalarChanAndVeseSparseLevelSetImageFilter
>
> Hi Eleni,
>
> Can you update your ITK code repository and try your data again. We made
> several modifications over the weekend and also took care of 2 important
> bugs. The first bug related to the computation of the foreground constant
> and the second bug related the Halt() method that you pointed out.
> Currently, we are looking into the negative origin issue.
>
> The first bug is critical and that definitely is one reason why your output
> differs from the Insight journal submission.
>
>
> Kishore
>
> On Sun, Jun 7, 2009 at 4:30 PM, Sgouritsa, Eleni <esgourit at central.uh.edu
> >wrote:
>
> >  Hello,
> > thank you very much for the help. Unfortunately I work with medical data
> > that I am not supposed to give.
> > Can you explain a little more point 2. You mean that I have to define my
> > level set as inside positive and outside negative to have the opposite
> > propagation direction?
> > I tried it but it did not work. I both cases, if I initialize the LS
> inside
> > the boundary of my data, it shrinks. I use mu=0, nu=0, l1=1 and l2=1. Do
> I
> > need negative l1?When I initialize almost the whole LS outside my data it
> > seems to work in some cases.Generally, I get different results from the
> > insight journal that I was getting correct.
> >
> > Thank you,
> > Eleni
> >
> >
> > -----Original Message-----
> > From: Kishore Mosaliganti [mailto:kishoreraom at gmail.com<kishoreraom at gmail.com>
> <kishoreraom at gmail.com>
> > ]
> > Sent: Fri 6/5/2009 1:02 PM
> > To: Sgouritsa, Eleni
> > Cc: Luis Ibanez; insight-users at itk.org
> > Subject: Re: [Insight-users]
> itkScalarChanAndVeseSparseLevelSetImageFilter
> >
> > Hi Eleni,
> >
> > Thank you for pointing out these problems. You are right that the Review
> > code is not very stable as yet. We are working on fixing them. During the
> > transfer from the IJ paper to the Review directory, a lot of
> modifications
> > were made. We might have inadvertently introduced new errors.
> >
> > Regarding your problems:
> >
> > 2. The level-set function is defined by convention as inside is negative
> > and
> > outside is positive. So the negative values become your foreground and
> > positive values become the background. This controls the propagation
> > direction.
> >
> > 3. I am looking at the Halt function. Looks like the boundary case of 0
> > iterations is not coded right.
> >
> > 4.  Regarding the high RMS values, the level-set function is
> re-initialized
> > to a signed distance function after every few iterations. It so happens
> > that
> > the default setting is 1 iteration. Hence, the RMS change is being
> > calculated after the reinitialization while it needs to be done before.
> We
> > are also working on correcting this. Thank you for pointing this out.
> >
> >
> > Is it possible for you to post a small sample of your data for us to work
> > on
> > the errors.
> >
> >
> > Kishore
> >
> > On Tue, Jun 2, 2009 at 11:24 AM, Sgouritsa, Eleni
> > <esgourit at central.uh.edu>wrote:
> >
> > >  Hello,
> > > I m sorry if my point was not clear. The problems that I am facing
> using
> > > this class to segment 3D data are the following:
> > >
> > > 1. My data has negative origin (for example (-100, -100, -60). Unless I
> > do
> > > SetOrigin(0,0,0) (or I guess any origin >=0) my program crashes. I have
> > to
> > > set my negative origin as zero for my program to run. Does the class
> > assumes
> > > positive origin of the input image?
> > >
> > > 2. I initialize my level set inside (so the evolution should be
> > outwards).
> > > In this case I can not make my level set expand (it can just shrink, or
> > not
> > > move). I think I should use something like SetReverseExpansionDirection
> > to
> > > control the propagation direction, but I can not find this option in
> the
> > > class public members. (This is currently my main problem where I am
> > stuck,
> > > any help would be very useful!)
> > >
> > > 3. The maximum RMS Error serves (along with the number of iterations)
> as
> > a
> > > stopping criteria inside the Halt function (of
> > > itkMultiphaseFiniteDifferenceImageFilter.txx file).
> > > Lets say I set maximum RMS Error = 0.01.
> > > The Halt function returns the following:
> > > return ( (this->GetElapsedIterations() >= this->m_NumberOfIterations)
> ||
> > >       ( this->GetMaximumRMSError() >= m_RMSChange ) );
> > > While the Halt function returns false the evolution continues.
> > > However, in iteration 0, I get m_RMSChange = 0, so the evolution always
> > > stops doing 0 iterations (since the condition
> this->GetMaximumRMSError()
> > >=
> > > m_RMSChange becomes true)
> > > If I modify the Halt function to returm the following:
> > > if(this->GetElapsedIterations()==0)
> > >         return false;
> > > else
> > >         return ( (this->GetElapsedIterations() >=
> > > this->m_NumberOfIterations) || ( this->GetMaximumRMSError() >=
> > m_RMSChange )
> > > );
> > > then it works.
> > > The other problem is that RMSChange in the next iterations (1,2,3...)
> has
> > > very big values (like 5000) even near convergence. So the only way to
> > stop
> > > the evolution is through the iterations number.
> > >
> > > I am still investigating the class and I am not absolutely sure about
> the
> > > points mentioned but I would like to share with you for more advice.
> > >
> > >
> > > Thank you very much,
> > > Lena
> > >
> > >
> > >
> > >
> > > -----Original Message-----
> > > From: Luis Ibanez [mailto:luis.ibanez at kitware.com<luis.ibanez at kitware.com>
> <luis.ibanez at kitware.com>
> > <luis.ibanez at kitware.com>
> > > ]
> > > Sent: Mon 6/1/2009 8:39 PM
> > > To: Sgouritsa, Eleni
> > > Cc: alex gouaillard; insight-users at itk.org
> > > Subject: Re: [Insight-users]
> > itkScalarChanAndVeseSparseLevelSetImageFilter
> > >
> > >
> > > Hi Lena,
> > >
> > > Could you please be more specific about your problem report on
> > > item (2) ?
> > >
> > > Is there a chance that you can report this in a form that
> > > we could reproduce ?
> > >
> > >
> > >     Thanks
> > >
> > >
> > >        Luis
> > >
> > >
> > > -----------------------------
> > > Sgouritsa, Eleni wrote:
> > > > Hi,
> > > >
> > > > I have two more questions.
> > > > 1. In the insight journal code there was an option
> > > > SetReverseExpansionDirection to control if the expansion of the level
> > > > set will be inwards or outwards. How can I do it using the
> > > > itkScalarChanAndVeseSparseLevelSetImageFilter of 3.14 release?
> > > >
> > > > 2. I still have a problem when my 3D data have negative origin.
> > > >
> > > > Thanks and regards,
> > > > Lena
> > > >
> > > > -----Original Message-----
> > > > From: Sgouritsa, Eleni
> > > > Sent: Mon 6/1/2009 4:00 AM
> > > > To: alex gouaillard
> > > > Cc: insight-users at itk.org
> > > > Subject: RE: [Insight-users]
> > > itkScalarChanAndVeseSparseLevelSetImageFilter
> > > >
> > > > Hello,
> > > > finally the second issue was my fault (I just had a problem while
> > > > including the header files of the review folder).
> > > > For the first, the inconsistency is just a matter of name. The code
> > runs
> > > > correctly, just the name assignement in the txx is a little
> misleading.
> > > >
> > > > Thank you very much,
> > > > Lena
> > > >
> > > >
> > > > -----Original Message-----
> > > > From: alex gouaillard [mailto:alexandre_gouaillard at hms.harvard.edu<alexandre_gouaillard at hms.harvard.edu>
> <alexandre_gouaillard at hms.harvard.edu>
> > <alexandre_gouaillard at hms.harvard.edu>
> > > ]
> > > > Sent: Sun 5/31/2009 11:34 PM
> > > > To: Sgouritsa, Eleni
> > > > Cc: insight-users at itk.org
> > > > Subject: Re: [Insight-users]
> > > itkScalarChanAndVeseSparseLevelSetImageFilter
> > > >
> > > > hi eleni,
> > > >
> > > > we'll take a look tomorrow.
> > > >
> > > > thanks for the feedback.
> > > >
> > > > alex.
> > > >
> > > > On May 31, 2009, at 11:52 PM, Sgouritsa, Eleni wrote:
> > > >
> > > >  > Hello,
> > > >  > I know that the review folder of the new release (3.14) is not
> > > >  > stable yet but I would just like to give two comments:
> > > >  >
> > > >  > 1. I found an inconsistency between the template arguments of the
> > > >  > itkScalarChanAndVeseSparseLevelSetImageFilter.h and the
> > > >  > itkScalarChanAndVeseSparseLevelSetImageFilter.txx.
> > > >  > Specifically, in the header file, the template is :
> > > >  > template < class TInputImage, class TFeatureImage, class
> > > >  > TOutputImage, class TFunction,
> > > >  >   class TSharedData, typename TIdCell = unsigned int >
> > > >  > whereas in the txx it is:
> > > >  > template < class TInput, class TFeature, class TFunction,
> > > >  > class TOutputPixel, class TSharedData, typename TIdCell >
> > > >  > There is a change in the order of the 3rd and 4th argument.
> > > >  >
> > > >  > 2. I can not find this class
> > > >  > (itkScalarChanAndVeseSparseLevelSetImageFilter)  incuded in the
> > > >  > CMakeLists of the review folder
> > > >  >
> > > >  > Regards,
> > > >  > Lena
> > > >  >
> > > >  > <ATT00001.txt>
> > > >
> > > >
> > > >
> > > >
> > > >
> > ------------------------------------------------------------------------
> > > >
> > > > _____________________________________
> > > > Powered by www.kitware.com
> > > >
> > > > Visit other Kitware open-source projects at
> > > > http://www.kitware.com/opensource/opensource.html
> > > >
> > > > Please keep messages on-topic and check the ITK FAQ at:
> > > http://www.itk.org/Wiki/ITK_FAQ
> > > >
> > > > Follow this link to subscribe/unsubscribe:
> > > > http://www.itk.org/mailman/listinfo/insight-users
> > >
> > >
> > > _____________________________________
> > > Powered by www.kitware.com
> > >
> > > Visit other Kitware open-source projects at
> > > http://www.kitware.com/opensource/opensource.html
> > >
> > > Please keep messages on-topic and check the ITK FAQ at:
> > > http://www.itk.org/Wiki/ITK_FAQ
> > >
> > > Follow this link to subscribe/unsubscribe:
> > > http://www.itk.org/mailman/listinfo/insight-users
> > >
> > >
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20090616/ad1e54a5/attachment-0001.htm>


More information about the Insight-users mailing list