<!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. You are right, changing the epsilon parameter makes my results closer to the expected ones.<BR>
Based on the CVS realease before 10 days:<BR>
1. RMS Change values are very high. Have you already fixed this?<BR>
2. Concerning the observer:<BR>
I use<BR>
LevelSetType::Pointer levelSetFilter = LevelSetType::New();<BR>
levelSetFilter-&gt;SetFunctionCount( 1 );<BR>
levelSetFilter-&gt;SetFeatureImage( InputImage );<BR>
levelSetFilter-&gt;SetLevelSet( 0, InitialLevelSet );<BR>
levelSetFilter-&gt;SetNumberOfIterations( nb_iteration );<BR>
levelSetFilter-&gt;SetMaximumRMSError( rms );<BR>
levelSetFilter-&gt;SetUseImageSpacing( 1 );<BR>
<BR>
typedef itk::AtanRegularizedHeavisideStepFunction&lt; InputPixelType, InputPixelType &gt;&nbsp; DomainFunctionType;<BR>
DomainFunctionType::Pointer domainFunction = DomainFunctionType::New();<BR>
domainFunction-&gt;SetEpsilon( epsilon );<BR>
levelSetFilter-&gt;GetDifferenceFunction(0)-&gt;SetDomainFunction( domainFunction );<BR>
levelSetFilter-&gt;GetDifferenceFunction(0)-&gt;SetCurvatureWeight( mu );<BR>
levelSetFilter-&gt;GetDifferenceFunction(0)-&gt;SetAreaWeight( nu );<BR>
levelSetFilter-&gt;GetDifferenceFunction(0)-&gt;SetLambda1( l1 );<BR>
levelSetFilter-&gt;GetDifferenceFunction(0)-&gt;SetLambda2( l2 );<BR>
<BR>
typedef CommandIterationUpdate ObserverType;<BR>
ObserverType::Pointer pObserver = ObserverType::New();<BR>
pObserver-&gt;SetInput(renWin, inter, ren);<BR>
levelSetFilter-&gt;AddObserver( itk::IterationEvent() , pObserver);<BR>
levelSetFilter-&gt;Update();<BR>
<BR>
<BR>
and inside the observer:<BR>
<BR>
void Execute(itk::Object *caller, const itk::EventObject &amp; event)<BR>
&nbsp; {<BR>
&nbsp;&nbsp;&nbsp; //Execute( (const itk::Object *)caller, event);<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; LevelSetFilterPointer LevelSetFilter =<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dynamic_cast&lt; LevelSetFilterPointer &gt;( caller );<BR>
&nbsp;&nbsp;&nbsp; if( ! itk::IterationEvent().CheckEvent( &amp;event ) )<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //to binary volume<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LevelSetVesselSegmentation::InputImageType::Pointer currentLevelSet = LevelSetFilter-&gt;GetLevelSet(0);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; typedef itk::BinaryThresholdImageFilter&lt; LevelSetVesselSegmentation::InputImageType, LevelSetVesselSegmentation::OutputImageType &gt; ThresholdingFilterType;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThresholdingFilterType::Pointer thresholder = ThresholdingFilterType::New();<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; thresholder-&gt;SetInput(currentLevelSet);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; thresholder-&gt;SetUpperThreshold( 0.0 );<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; thresholder-&gt;SetOutsideValue( 0 );<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; thresholder-&gt;SetInsideValue( 255 );<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; thresholder-&gt;Update();<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LevelSetVesselSegmentation::OutputImageType::Pointer thresholded_image = thresholder-&gt;GetOutput();<BR>
<BR>
but I dint get correct results between the iterations<BR>
<BR>
Thank you very much<BR>
<BR>
Regards,<BR>
Eleni<BR>
<BR>
<BR>
<BR>
-----Original Message-----<BR>
From: Kishore Mosaliganti [<A HREF="mailto:kishoreraom@gmail.com">mailto:kishoreraom@gmail.com</A>]<BR>
Sent: Tue 6/16/2009 5:19 AM<BR>
To: Sgouritsa, Eleni<BR>
Cc: insight-users@itk.org<BR>
Subject: Re: [Insight-users] itkScalarChanAndVeseSparseLevelSetImageFilter<BR>
<BR>
HI Eleni,<BR>
<BR>
Between the IJ and the Review code, we made one significant modification.<BR>
The heaviside regularization function was not being correctly applied in the<BR>
formula to compute the global constants. So, we changed that.<BR>
<BR>
This will change the boundary of your segmentation in a minor way. I think<BR>
that is what you are observing. If you were to change the SetEpsilon( 1 ) to<BR>
SetEpsilon(0.1), you will probably see the old result.<BR>
<BR>
In your previous email, you reported problems with using the Observer and<BR>
negative origins. Is that working out now? If not, can you elaborate your<BR>
experience. This will help us.<BR>
<BR>
Thanks,<BR>
Kishore<BR>
<BR>
<BR>
On Sun, Jun 14, 2009 at 11:29 PM, Sgouritsa, Eleni<BR>
&lt;esgourit@central.uh.edu&gt;wrote:<BR>
<BR>
&gt;&nbsp; Hello Kishore,<BR>
&gt; I tried the new filter (latest CVS) also in more data. In all it works well<BR>
&gt; but the segmentation is always an augmented version of the correct<BR>
&gt; segmentation.As we discussed, the filter now gives a very good result, but<BR>
&gt; still the segmentation expands outside the real boundary of the data (see<BR>
&gt; dataset 1). We could probably think that this is not a problem because<BR>
&gt; probably that is the result that Chan and Vese method can give. However, the<BR>
&gt; insight journal code gave the correct segmentation so I was wondering if<BR>
&gt; there is still a bug or a difference between insight code and itk last<BR>
&gt; release.<BR>
&gt; Thank you for the help.<BR>
&gt;<BR>
&gt; Regards,<BR>
&gt; Eleni<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: Mon 6/8/2009 1:02 PM<BR>
&gt; To: Sgouritsa, Eleni<BR>
&gt; Cc: insight-users@itk.org<BR>
&gt; Subject: Re: [Insight-users] itkScalarChanAndVeseSparseLevelSetImageFilter<BR>
&gt;<BR>
&gt; Hi Eleni,<BR>
&gt;<BR>
&gt; Can you update your ITK code repository and try your data again. We made<BR>
&gt; several modifications over the weekend and also took care of 2 important<BR>
&gt; bugs. The first bug related to the computation of the foreground constant<BR>
&gt; and the second bug related the Halt() method that you pointed out.<BR>
&gt; Currently, we are looking into the negative origin issue.<BR>
&gt;<BR>
&gt; The first bug is critical and that definitely is one reason why your output<BR>
&gt; differs from the Insight journal submission.<BR>
&gt;<BR>
&gt;<BR>
&gt; Kishore<BR>
&gt;<BR>
&gt; On Sun, Jun 7, 2009 at 4:30 PM, Sgouritsa, Eleni &lt;esgourit@central.uh.edu<BR>
&gt; &gt;wrote:<BR>
&gt;<BR>
&gt; &gt;&nbsp; Hello,<BR>
&gt; &gt; thank you very much for the help. Unfortunately I work with medical data<BR>
&gt; &gt; that I am not supposed to give.<BR>
&gt; &gt; Can you explain a little more point 2. You mean that I have to define my<BR>
&gt; &gt; level set as inside positive and outside negative to have the opposite<BR>
&gt; &gt; propagation direction?<BR>
&gt; &gt; I tried it but it did not work. I both cases, if I initialize the LS<BR>
&gt; inside<BR>
&gt; &gt; the boundary of my data, it shrinks. I use mu=0, nu=0, l1=1 and l2=1. Do<BR>
&gt; I<BR>
&gt; &gt; need negative l1?When I initialize almost the whole LS outside my data it<BR>
&gt; &gt; seems to work in some cases.Generally, I get different results from the<BR>
&gt; &gt; insight journal that I was getting correct.<BR>
&gt; &gt;<BR>
&gt; &gt; Thank you,<BR>
&gt; &gt; Eleni<BR>
&gt; &gt;<BR>
&gt; &gt;<BR>
&gt; &gt; -----Original Message-----<BR>
&gt; &gt; From: Kishore Mosaliganti [<A HREF="mailto:kishoreraom@gmail.com">mailto:kishoreraom@gmail.com</A>&lt;kishoreraom@gmail.com&gt;<BR>
&gt; &lt;kishoreraom@gmail.com&gt;<BR>
&gt; &gt; ]<BR>
&gt; &gt; Sent: Fri 6/5/2009 1:02 PM<BR>
&gt; &gt; To: Sgouritsa, Eleni<BR>
&gt; &gt; Cc: Luis Ibanez; insight-users@itk.org<BR>
&gt; &gt; Subject: Re: [Insight-users]<BR>
&gt; itkScalarChanAndVeseSparseLevelSetImageFilter<BR>
&gt; &gt;<BR>
&gt; &gt; Hi Eleni,<BR>
&gt; &gt;<BR>
&gt; &gt; Thank you for pointing out these problems. You are right that the Review<BR>
&gt; &gt; code is not very stable as yet. We are working on fixing them. During the<BR>
&gt; &gt; transfer from the IJ paper to the Review directory, a lot of<BR>
&gt; modifications<BR>
&gt; &gt; were made. We might have inadvertently introduced new errors.<BR>
&gt; &gt;<BR>
&gt; &gt; Regarding your problems:<BR>
&gt; &gt;<BR>
&gt; &gt; 2. The level-set function is defined by convention as inside is negative<BR>
&gt; &gt; and<BR>
&gt; &gt; outside is positive. So the negative values become your foreground and<BR>
&gt; &gt; positive values become the background. This controls the propagation<BR>
&gt; &gt; direction.<BR>
&gt; &gt;<BR>
&gt; &gt; 3. I am looking at the Halt function. Looks like the boundary case of 0<BR>
&gt; &gt; iterations is not coded right.<BR>
&gt; &gt;<BR>
&gt; &gt; 4.&nbsp; Regarding the high RMS values, the level-set function is<BR>
&gt; re-initialized<BR>
&gt; &gt; to a signed distance function after every few iterations. It so happens<BR>
&gt; &gt; that<BR>
&gt; &gt; the default setting is 1 iteration. Hence, the RMS change is being<BR>
&gt; &gt; calculated after the reinitialization while it needs to be done before.<BR>
&gt; We<BR>
&gt; &gt; are also working on correcting this. Thank you for pointing this out.<BR>
&gt; &gt;<BR>
&gt; &gt;<BR>
&gt; &gt; Is it possible for you to post a small sample of your data for us to work<BR>
&gt; &gt; on<BR>
&gt; &gt; the errors.<BR>
&gt; &gt;<BR>
&gt; &gt;<BR>
&gt; &gt; Kishore<BR>
&gt; &gt;<BR>
&gt; &gt; On Tue, Jun 2, 2009 at 11:24 AM, Sgouritsa, Eleni<BR>
&gt; &gt; &lt;esgourit@central.uh.edu&gt;wrote:<BR>
&gt; &gt;<BR>
&gt; &gt; &gt;&nbsp; Hello,<BR>
&gt; &gt; &gt; I m sorry if my point was not clear. The problems that I am facing<BR>
&gt; using<BR>
&gt; &gt; &gt; this class to segment 3D data are the following:<BR>
&gt; &gt; &gt;<BR>
&gt; &gt; &gt; 1. My data has negative origin (for example (-100, -100, -60). Unless I<BR>
&gt; &gt; do<BR>
&gt; &gt; &gt; SetOrigin(0,0,0) (or I guess any origin &gt;=0) my program crashes. I have<BR>
&gt; &gt; to<BR>
&gt; &gt; &gt; set my negative origin as zero for my program to run. Does the class<BR>
&gt; &gt; assumes<BR>
&gt; &gt; &gt; positive origin of the input image?<BR>
&gt; &gt; &gt;<BR>
&gt; &gt; &gt; 2. I initialize my level set inside (so the evolution should be<BR>
&gt; &gt; outwards).<BR>
&gt; &gt; &gt; In this case I can not make my level set expand (it can just shrink, or<BR>
&gt; &gt; not<BR>
&gt; &gt; &gt; move). I think I should use something like SetReverseExpansionDirection<BR>
&gt; &gt; to<BR>
&gt; &gt; &gt; control the propagation direction, but I can not find this option in<BR>
&gt; the<BR>
&gt; &gt; &gt; class public members. (This is currently my main problem where I am<BR>
&gt; &gt; stuck,<BR>
&gt; &gt; &gt; any help would be very useful!)<BR>
&gt; &gt; &gt;<BR>
&gt; &gt; &gt; 3. The maximum RMS Error serves (along with the number of iterations)<BR>
&gt; as<BR>
&gt; &gt; a<BR>
&gt; &gt; &gt; stopping criteria inside the Halt function (of<BR>
&gt; &gt; &gt; itkMultiphaseFiniteDifferenceImageFilter.txx file).<BR>
&gt; &gt; &gt; Lets say I set maximum RMS Error = 0.01.<BR>
&gt; &gt; &gt; The Halt function returns the following:<BR>
&gt; &gt; &gt; return ( (this-&gt;GetElapsedIterations() &gt;= this-&gt;m_NumberOfIterations)<BR>
&gt; ||<BR>
&gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ( this-&gt;GetMaximumRMSError() &gt;= m_RMSChange ) );<BR>
&gt; &gt; &gt; While the Halt function returns false the evolution continues.<BR>
&gt; &gt; &gt; However, in iteration 0, I get m_RMSChange = 0, so the evolution always<BR>
&gt; &gt; &gt; stops doing 0 iterations (since the condition<BR>
&gt; this-&gt;GetMaximumRMSError()<BR>
&gt; &gt; &gt;=<BR>
&gt; &gt; &gt; m_RMSChange becomes true)<BR>
&gt; &gt; &gt; If I modify the Halt function to returm the following:<BR>
&gt; &gt; &gt; if(this-&gt;GetElapsedIterations()==0)<BR>
&gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<BR>
&gt; &gt; &gt; else<BR>
&gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ( (this-&gt;GetElapsedIterations() &gt;=<BR>
&gt; &gt; &gt; this-&gt;m_NumberOfIterations) || ( this-&gt;GetMaximumRMSError() &gt;=<BR>
&gt; &gt; m_RMSChange )<BR>
&gt; &gt; &gt; );<BR>
&gt; &gt; &gt; then it works.<BR>
&gt; &gt; &gt; The other problem is that RMSChange in the next iterations (1,2,3...)<BR>
&gt; has<BR>
&gt; &gt; &gt; very big values (like 5000) even near convergence. So the only way to<BR>
&gt; &gt; stop<BR>
&gt; &gt; &gt; the evolution is through the iterations number.<BR>
&gt; &gt; &gt;<BR>
&gt; &gt; &gt; I am still investigating the class and I am not absolutely sure about<BR>
&gt; the<BR>
&gt; &gt; &gt; points mentioned but I would like to share with you for more advice.<BR>
&gt; &gt; &gt;<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;<BR>
&gt; &gt; &gt;<BR>
&gt; &gt; &gt; -----Original Message-----<BR>
&gt; &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; &lt;luis.ibanez@kitware.com&gt;<BR>
&gt; &gt; &gt; ]<BR>
&gt; &gt; &gt; Sent: Mon 6/1/2009 8:39 PM<BR>
&gt; &gt; &gt; To: Sgouritsa, Eleni<BR>
&gt; &gt; &gt; Cc: alex gouaillard; insight-users@itk.org<BR>
&gt; &gt; &gt; Subject: Re: [Insight-users]<BR>
&gt; &gt; itkScalarChanAndVeseSparseLevelSetImageFilter<BR>
&gt; &gt; &gt;<BR>
&gt; &gt; &gt;<BR>
&gt; &gt; &gt; Hi Lena,<BR>
&gt; &gt; &gt;<BR>
&gt; &gt; &gt; Could you please be more specific about your problem report on<BR>
&gt; &gt; &gt; item (2) ?<BR>
&gt; &gt; &gt;<BR>
&gt; &gt; &gt; Is there a chance that you can report this in a form that<BR>
&gt; &gt; &gt; we could reproduce ?<BR>
&gt; &gt; &gt;<BR>
&gt; &gt; &gt;<BR>
&gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; Thanks<BR>
&gt; &gt; &gt;<BR>
&gt; &gt; &gt;<BR>
&gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Luis<BR>
&gt; &gt; &gt;<BR>
&gt; &gt; &gt;<BR>
&gt; &gt; &gt; -----------------------------<BR>
&gt; &gt; &gt; Sgouritsa, Eleni wrote:<BR>
&gt; &gt; &gt; &gt; Hi,<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt; I have two more questions.<BR>
&gt; &gt; &gt; &gt; 1. In the insight journal code there was an option<BR>
&gt; &gt; &gt; &gt; SetReverseExpansionDirection to control if the expansion of the level<BR>
&gt; &gt; &gt; &gt; set will be inwards or outwards. How can I do it using the<BR>
&gt; &gt; &gt; &gt; itkScalarChanAndVeseSparseLevelSetImageFilter of 3.14 release?<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt; 2. I still have a problem when my 3D data have negative origin.<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt; Thanks and regards,<BR>
&gt; &gt; &gt; &gt; Lena<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt; -----Original Message-----<BR>
&gt; &gt; &gt; &gt; From: Sgouritsa, Eleni<BR>
&gt; &gt; &gt; &gt; Sent: Mon 6/1/2009 4:00 AM<BR>
&gt; &gt; &gt; &gt; To: alex gouaillard<BR>
&gt; &gt; &gt; &gt; Cc: insight-users@itk.org<BR>
&gt; &gt; &gt; &gt; Subject: RE: [Insight-users]<BR>
&gt; &gt; &gt; itkScalarChanAndVeseSparseLevelSetImageFilter<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt; Hello,<BR>
&gt; &gt; &gt; &gt; finally the second issue was my fault (I just had a problem while<BR>
&gt; &gt; &gt; &gt; including the header files of the review folder).<BR>
&gt; &gt; &gt; &gt; For the first, the inconsistency is just a matter of name. The code<BR>
&gt; &gt; runs<BR>
&gt; &gt; &gt; &gt; correctly, just the name assignement in the txx is a little<BR>
&gt; misleading.<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt; Thank you very much,<BR>
&gt; &gt; &gt; &gt; Lena<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt; -----Original Message-----<BR>
&gt; &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; &lt;alexandre_gouaillard@hms.harvard.edu&gt;<BR>
&gt; &gt; &gt; ]<BR>
&gt; &gt; &gt; &gt; Sent: Sun 5/31/2009 11:34 PM<BR>
&gt; &gt; &gt; &gt; To: Sgouritsa, Eleni<BR>
&gt; &gt; &gt; &gt; Cc: insight-users@itk.org<BR>
&gt; &gt; &gt; &gt; Subject: Re: [Insight-users]<BR>
&gt; &gt; &gt; itkScalarChanAndVeseSparseLevelSetImageFilter<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt; hi eleni,<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt; we'll take a look tomorrow.<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt; thanks for the feedback.<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt; alex.<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt; On May 31, 2009, at 11:52 PM, Sgouritsa, Eleni wrote:<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; Hello,<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; I know that the review folder of the new release (3.14) is not<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; stable yet but I would just like to give two comments:<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt;<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; 1. I found an inconsistency between the template arguments of the<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; itkScalarChanAndVeseSparseLevelSetImageFilter.h and the<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; itkScalarChanAndVeseSparseLevelSetImageFilter.txx.<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; Specifically, in the header file, the template is :<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; template &lt; class TInputImage, class TFeatureImage, class<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; TOutputImage, class TFunction,<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt;&nbsp;&nbsp; class TSharedData, typename TIdCell = unsigned int &gt;<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; whereas in the txx it is:<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; template &lt; class TInput, class TFeature, class TFunction,<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; class TOutputPixel, class TSharedData, typename TIdCell &gt;<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; There is a change in the order of the 3rd and 4th argument.<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt;<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; 2. I can not find this class<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; (itkScalarChanAndVeseSparseLevelSetImageFilter)&nbsp; incuded in the<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; CMakeLists of the review folder<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt;<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; Regards,<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; Lena<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt;<BR>
&gt; &gt; &gt; &gt;&nbsp; &gt; &lt;ATT00001.txt&gt;<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; ------------------------------------------------------------------------<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt; _____________________________________<BR>
&gt; &gt; &gt; &gt; Powered by www.kitware.com<BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt; Visit other Kitware open-source projects at<BR>
&gt; &gt; &gt; &gt; <A HREF="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</A><BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt; Please keep messages on-topic and check the ITK FAQ at:<BR>
&gt; &gt; &gt; <A HREF="http://www.itk.org/Wiki/ITK_FAQ">http://www.itk.org/Wiki/ITK_FAQ</A><BR>
&gt; &gt; &gt; &gt;<BR>
&gt; &gt; &gt; &gt; Follow this link to subscribe/unsubscribe:<BR>
&gt; &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; &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; &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; &gt;<BR>
&gt; &gt; &gt;<BR>
&gt; &gt;<BR>
&gt; &gt;<BR>
&gt;<BR>
&gt;<BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>