<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7654.12">
<TITLE>RE: [Insight-users] itkScalarChanAndVeseSparseLevelSetImageFilter</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->
<P><FONT SIZE=2>Hello,<BR>
thank you very much for the help. Unfortunately I work with medical data that I am not supposed to give.<BR>
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?<BR>
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.<BR>
<BR>
Thank you,<BR>
Eleni<BR>
<BR>
<BR>
-----Original Message-----<BR>
From: Kishore Mosaliganti [<A HREF="mailto:kishoreraom@gmail.com">mailto:kishoreraom@gmail.com</A>]<BR>
Sent: Fri 6/5/2009 1:02 PM<BR>
To: Sgouritsa, Eleni<BR>
Cc: Luis Ibanez; insight-users@itk.org<BR>
Subject: Re: [Insight-users] itkScalarChanAndVeseSparseLevelSetImageFilter<BR>
<BR>
Hi Eleni,<BR>
<BR>
Thank you for pointing out these problems. You are right that the Review<BR>
code is not very stable as yet. We are working on fixing them. During the<BR>
transfer from the IJ paper to the Review directory, a lot of modifications<BR>
were made. We might have inadvertently introduced new errors.<BR>
<BR>
Regarding your problems:<BR>
<BR>
2. The level-set function is defined by convention as inside is negative and<BR>
outside is positive. So the negative values become your foreground and<BR>
positive values become the background. This controls the propagation<BR>
direction.<BR>
<BR>
3. I am looking at the Halt function. Looks like the boundary case of 0<BR>
iterations is not coded right.<BR>
<BR>
4. Regarding the high RMS values, the level-set function is re-initialized<BR>
to a signed distance function after every few iterations. It so happens that<BR>
the default setting is 1 iteration. Hence, the RMS change is being<BR>
calculated after the reinitialization while it needs to be done before. We<BR>
are also working on correcting this. Thank you for pointing this out.<BR>
<BR>
<BR>
Is it possible for you to post a small sample of your data for us to work on<BR>
the errors.<BR>
<BR>
<BR>
Kishore<BR>
<BR>
On Tue, Jun 2, 2009 at 11:24 AM, Sgouritsa, Eleni<BR>
<esgourit@central.uh.edu>wrote:<BR>
<BR>
> Hello,<BR>
> I m sorry if my point was not clear. The problems that I am facing using<BR>
> this class to segment 3D data are the following:<BR>
><BR>
> 1. My data has negative origin (for example (-100, -100, -60). Unless I do<BR>
> SetOrigin(0,0,0) (or I guess any origin >=0) my program crashes. I have to<BR>
> set my negative origin as zero for my program to run. Does the class assumes<BR>
> positive origin of the input image?<BR>
><BR>
> 2. I initialize my level set inside (so the evolution should be outwards).<BR>
> In this case I can not make my level set expand (it can just shrink, or not<BR>
> move). I think I should use something like SetReverseExpansionDirection to<BR>
> control the propagation direction, but I can not find this option in the<BR>
> class public members. (This is currently my main problem where I am stuck,<BR>
> any help would be very useful!)<BR>
><BR>
> 3. The maximum RMS Error serves (along with the number of iterations) as a<BR>
> stopping criteria inside the Halt function (of<BR>
> itkMultiphaseFiniteDifferenceImageFilter.txx file).<BR>
> Lets say I set maximum RMS Error = 0.01.<BR>
> The Halt function returns the following:<BR>
> return ( (this->GetElapsedIterations() >= this->m_NumberOfIterations) ||<BR>
> ( this->GetMaximumRMSError() >= m_RMSChange ) );<BR>
> While the Halt function returns false the evolution continues.<BR>
> However, in iteration 0, I get m_RMSChange = 0, so the evolution always<BR>
> stops doing 0 iterations (since the condition this->GetMaximumRMSError() >=<BR>
> m_RMSChange becomes true)<BR>
> If I modify the Halt function to returm the following:<BR>
> if(this->GetElapsedIterations()==0)<BR>
> return false;<BR>
> else<BR>
> return ( (this->GetElapsedIterations() >=<BR>
> this->m_NumberOfIterations) || ( this->GetMaximumRMSError() >= m_RMSChange )<BR>
> );<BR>
> then it works.<BR>
> The other problem is that RMSChange in the next iterations (1,2,3...) has<BR>
> very big values (like 5000) even near convergence. So the only way to stop<BR>
> the evolution is through the iterations number.<BR>
><BR>
> I am still investigating the class and I am not absolutely sure about the<BR>
> points mentioned but I would like to share with you for more advice.<BR>
><BR>
><BR>
> Thank you very much,<BR>
> Lena<BR>
><BR>
><BR>
><BR>
><BR>
> -----Original Message-----<BR>
> From: Luis Ibanez [<A HREF="mailto:luis.ibanez@kitware.com">mailto:luis.ibanez@kitware.com</A><luis.ibanez@kitware.com><BR>
> ]<BR>
> Sent: Mon 6/1/2009 8:39 PM<BR>
> To: Sgouritsa, Eleni<BR>
> Cc: alex gouaillard; insight-users@itk.org<BR>
> Subject: Re: [Insight-users] itkScalarChanAndVeseSparseLevelSetImageFilter<BR>
><BR>
><BR>
> Hi Lena,<BR>
><BR>
> Could you please be more specific about your problem report on<BR>
> item (2) ?<BR>
><BR>
> Is there a chance that you can report this in a form that<BR>
> we could reproduce ?<BR>
><BR>
><BR>
> Thanks<BR>
><BR>
><BR>
> Luis<BR>
><BR>
><BR>
> -----------------------------<BR>
> Sgouritsa, Eleni wrote:<BR>
> > Hi,<BR>
> ><BR>
> > I have two more questions.<BR>
> > 1. In the insight journal code there was an option<BR>
> > SetReverseExpansionDirection to control if the expansion of the level<BR>
> > set will be inwards or outwards. How can I do it using the<BR>
> > itkScalarChanAndVeseSparseLevelSetImageFilter of 3.14 release?<BR>
> ><BR>
> > 2. I still have a problem when my 3D data have negative origin.<BR>
> ><BR>
> > Thanks and regards,<BR>
> > Lena<BR>
> ><BR>
> > -----Original Message-----<BR>
> > From: Sgouritsa, Eleni<BR>
> > Sent: Mon 6/1/2009 4:00 AM<BR>
> > To: alex gouaillard<BR>
> > Cc: insight-users@itk.org<BR>
> > Subject: RE: [Insight-users]<BR>
> itkScalarChanAndVeseSparseLevelSetImageFilter<BR>
> ><BR>
> > Hello,<BR>
> > finally the second issue was my fault (I just had a problem while<BR>
> > including the header files of the review folder).<BR>
> > For the first, the inconsistency is just a matter of name. The code runs<BR>
> > correctly, just the name assignement in the txx is a little misleading.<BR>
> ><BR>
> > Thank you very much,<BR>
> > Lena<BR>
> ><BR>
> ><BR>
> > -----Original Message-----<BR>
> > From: alex gouaillard [<A HREF="mailto:alexandre_gouaillard@hms.harvard.edu">mailto:alexandre_gouaillard@hms.harvard.edu</A><alexandre_gouaillard@hms.harvard.edu><BR>
> ]<BR>
> > Sent: Sun 5/31/2009 11:34 PM<BR>
> > To: Sgouritsa, Eleni<BR>
> > Cc: insight-users@itk.org<BR>
> > Subject: Re: [Insight-users]<BR>
> itkScalarChanAndVeseSparseLevelSetImageFilter<BR>
> ><BR>
> > hi eleni,<BR>
> ><BR>
> > we'll take a look tomorrow.<BR>
> ><BR>
> > thanks for the feedback.<BR>
> ><BR>
> > alex.<BR>
> ><BR>
> > On May 31, 2009, at 11:52 PM, Sgouritsa, Eleni wrote:<BR>
> ><BR>
> > > Hello,<BR>
> > > I know that the review folder of the new release (3.14) is not<BR>
> > > stable yet but I would just like to give two comments:<BR>
> > ><BR>
> > > 1. I found an inconsistency between the template arguments of the<BR>
> > > itkScalarChanAndVeseSparseLevelSetImageFilter.h and the<BR>
> > > itkScalarChanAndVeseSparseLevelSetImageFilter.txx.<BR>
> > > Specifically, in the header file, the template is :<BR>
> > > template < class TInputImage, class TFeatureImage, class<BR>
> > > TOutputImage, class TFunction,<BR>
> > > class TSharedData, typename TIdCell = unsigned int ><BR>
> > > whereas in the txx it is:<BR>
> > > template < class TInput, class TFeature, class TFunction,<BR>
> > > class TOutputPixel, class TSharedData, typename TIdCell ><BR>
> > > There is a change in the order of the 3rd and 4th argument.<BR>
> > ><BR>
> > > 2. I can not find this class<BR>
> > > (itkScalarChanAndVeseSparseLevelSetImageFilter) incuded in the<BR>
> > > CMakeLists of the review folder<BR>
> > ><BR>
> > > Regards,<BR>
> > > Lena<BR>
> > ><BR>
> > > <ATT00001.txt><BR>
> ><BR>
> ><BR>
> ><BR>
> ><BR>
> > ------------------------------------------------------------------------<BR>
> ><BR>
> > _____________________________________<BR>
> > Powered by www.kitware.com<BR>
> ><BR>
> > Visit other Kitware open-source projects at<BR>
> > <A HREF="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</A><BR>
> ><BR>
> > Please keep messages on-topic and check the ITK FAQ at:<BR>
> <A HREF="http://www.itk.org/Wiki/ITK_FAQ">http://www.itk.org/Wiki/ITK_FAQ</A><BR>
> ><BR>
> > Follow this link to subscribe/unsubscribe:<BR>
> > <A HREF="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</A><BR>
><BR>
><BR>
> _____________________________________<BR>
> Powered by www.kitware.com<BR>
><BR>
> Visit other Kitware open-source projects at<BR>
> <A HREF="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</A><BR>
><BR>
> Please keep messages on-topic and check the ITK FAQ at:<BR>
> <A HREF="http://www.itk.org/Wiki/ITK_FAQ">http://www.itk.org/Wiki/ITK_FAQ</A><BR>
><BR>
> Follow this link to subscribe/unsubscribe:<BR>
> <A HREF="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</A><BR>
><BR>
><BR>
<BR>
</FONT>
</P>
</BODY>
</HTML>