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