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

</BODY>
</HTML>