<DIV>Hello Luis,</DIV>
<DIV> </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> </DIV>
<DIV>Thanks,</DIV>
<DIV>Conn<BR><BR><B><I>Luis Ibanez <luis.ibanez@kitware.com></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>> Hello Luis,<BR>> <BR>> What are the ITK filters other than Sigmoid that can be used to generate <BR>> speed images?<BR>> In some cases, gradient magnitude + sidmoid filter is not
helping me due <BR>> to gaps produced on boundaries of gradient magnitude. This leads to <BR>> leackage in the final output.<BR>> <BR>> Thanks,<BR>> Conn<BR>> <BR>> <BR>> <BR>> */Luis Ibanez <LUIS.IBANEZ@KITWARE.COM>/* wrote:<BR>> <BR>> <BR>> <BR>> Hi Conn,<BR>> <BR>> <BR>> The speed image computation starts in :<BR>> <BR>> Insight/Code/Algorithms/<BR>> itkSegmentationLevelSetimageFilter.txx<BR>> <BR>> The computation is delegated to the SegmentationFunction<BR>> by invoking its method:<BR>> <BR>> CalculateSpeedImage();<BR>> <BR>> This method is implemented in the file<BR>> <BR>> Insight/Code/Algorithms/<BR>> itkCannySegmentationLevelSetFunction.txx<BR>> <BR>> in lines 30-38.<BR>> <BR>> <BR>> The speed image is computed as a distance map to the Canny<BR>> edges in the method CalculateDistanceimage() in lines 81-102<BR>> of the same file.<BR>> <BR>> <BR>> <BR>>
<BR>> Regards,<BR>> <BR>> <BR>> <BR>> Luis<BR>> <BR>> <BR>> <BR>> -----------------------------------------------------------------------------<BR>> conn sullivan wrote:<BR>> <BR>> > Hello Luiz,<BR>> ><BR>> > I appreciate your reply. I get the speed image now. I have one more<BR>> > question. Are speed values taken directly ! from these speed<BR>> image. Also,<BR>> > what is z(x) computed for canny edge filter. What part of code from<BR>> > .cxx file performs this calculation?<BR>> ><BR>> > Thanks,<BR>> > Conn.<BR>> ><BR>> > */Luis Ibanez /* wrote:<BR>> ><BR>> ><BR>> > Hi Conn,<BR>> ><BR>> ><BR>> > Thanks for posting the output of the two readers.<BR>> ><BR>> > We tracked this problem down and found that what you are missing is<BR>> > to invoke the "GenerateSpeedImage()" method in the Canny level set<BR>> > filter before
you invoke GetSpeedImage().<BR>> ><BR>> > Note that the GenerateSpeedImage() method must be called after<BR>> > runninig the filter with Update().<BR>> ><BR>> ><BR>> > For your convinience we added this code to the example in<BR>> ><BR>> > Insight/Examples/Segmentation/<BR>> > CannySegmentationLevelSetImageFilter.cxx<BR>> ><BR>> ><BR>> ><BR>> > In order to get the new version simply update your CVS checkout<BR>> of ITK,<BR>> ! > or go to the CVS-Web portal and download the new version of this<BR>> file:<BR>> ><BR>> ><BR>> http://www.itk.org/cgi-bin/viewcvs.cgi/Examples/Segmentation/CannySegmentationLevelSetImageFilter.cxx?rev=1.27&root=Insight&view=log<BR>> ><BR>> ><BR>> ><BR>> ><BR>> > Regards,<BR>> ><BR>> ><BR>> ><BR>> > Luis<BR>> ><BR>> ><BR>> <BR>> <BR>> <BR>>
__________________________________________________<BR>> Do You Yahoo!?<BR>> Tired of spam? Yahoo! Mail has the best spam protection around<BR>> http://mail.yahoo.com<BR>> <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