<div dir="ltr">Matt - I did not have success building TubeTk. First I got errors related to Boost (even though the build instructions said it was optional) and then I got errors related to KW Widgets. So, I abandoned building TubeTk.<div><br></div><div>Dan - Thanks again for the link but WhiteHatTopImageFilter did not work for me. Again, if I read your email correctly then you said that a binary image (1 inside vessel, 0 outside) should work as input for itkSpeedFunctionToPathFilter. Binary images did not work for me either - I ended up with zero points in my shortest path.</div><div><br></div><div>In case someone else stumbles across this post here's what worked for me:</div><div><br></div><div>(Defining the problem again) My goal is to find the shortest path between two points that lie on a vessel's centerline.</div><div><br></div><div>What worked for me:</div><div>(assumes that input image and all other intermediate outputs are double images. if not, cast your image).</div><div><br></div><div>1. Crop the input image (to speed up computations)</div><div>2. Select seeds on cropped image and use itkConfidenceConnectedmageFilter to segment vessel</div><div>3. Fill the holes in the segmented binary image</div><div>4. Multiply the above image (hole filled binary segmented image) with cropped image </div><div>5. Use image from step 4 as input for itkMultiScaleHessianBasedMeasureImageFilter. </div><div>      I used itkHessianToObjectnessMeasureImageFilter as my hessian measure filter input. Note that I had to set  SetScaleObjectnessMeasure to TRUE                for <span style="font-size:13.1999998092651px;line-height:19.7999992370605px">itkHessianToObjectnessMeasureImageFilter</span><span style="font-size:13.1999998092651px;line-height:19.7999992370605px">  to work.</span></div><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px">6. Rescale </span><span style="font-size:13.1999998092651px;line-height:19.7999992370605px"> </span><span style="font-size:13.1999998092651px;line-height:19.7999992370605px">itkMultiScaleHessianBasedMeasureImageFilter to lie between 0 and 1</span></div><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px">7. Select start and end point and run itkSpeedFunctionToPathFilter</span></div><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></span></div><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px">Thanks again to Matt and Dan for responding and helping me out.</span></div><div><span style="font-size:13.1999998092651px;line-height:19.7999992370605px">Prashanth</span></div><div> </div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Aug 25, 2015 at 11:16 AM Prashanth <<a href="mailto:prashanth.dumpuri@gmail.com">prashanth.dumpuri@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Matt and Dan - Thank you so much for getting back to me. <div><br></div><div>Dan - If I understood your email correctly then a binary image (with 1 inside the vessels and 0 outside) should work as a speed function. And if that is the case then a binary mask did not work for me. I get no points in the output of SpeedToPath filter if I use a binary mask. I'm looking into White top hat filtering and vesselness currently. Like you pointed out (and as mentioned in your thesis), vesselness is slower but so far it seems to be working better than white top hat.</div><div><br></div><div>Matt - I will look into TubeTk as well and post an update to the mailing list.</div><div><br></div><div>Thanks again</div></div><div dir="ltr"><div>Prashanth</div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Aug 25, 2015 at 10:52 AM Matt McCormick <<a href="mailto:matt.mccormick@kitware.com" target="_blank">matt.mccormick@kitware.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Prashanth,<br>
<br>
Classes within TubeTK [1] specialize in creating input images that<br>
would work well as an input to the itk::SpeedToPathFilter.<br>
<br>
Hope this helps,<br>
Matt<br>
<br>
[1] <a href="https://github.com/KitwareMedical/TubeTK" rel="noreferrer" target="_blank">https://github.com/KitwareMedical/TubeTK</a><br>
<br>
On Sun, Aug 23, 2015 at 5:49 AM, Dan Mueller <<a href="mailto:dan.muel@gmail.com" target="_blank">dan.muel@gmail.com</a>> wrote:<br>
> Hi Prashanth,<br>
><br>
> Essentially you want your speed function to be white (1.0) in the<br>
> vessels and black (0.0) outside of the vessels — any way you can<br>
> achieve this is fine. The method you have outline is very general, and<br>
> the issue is step (1) i.e. finding an approximate centreline. Some<br>
> have suggested achieving this by applying multiscale Hessian line<br>
> filtering (aka vessel enhancement filtering) such as Sato/Frangi<br>
> method — while this can achieve good results, personally I find this<br>
> method very slow. In my own work, I have found morphological top-hat<br>
> by opening (aka white top-hat or WTH) produces good results at a<br>
> fraction of the computation expense, especially using the box<br>
> structuring element with acceleration (e.g. see [1]).<br>
><br>
> Good luck.<br>
><br>
> Cheers, Dan<br>
><br>
> [1] “Direct volume illustration for cardiac applications,” chapter 4,<br>
> page 83–109, <a href="http://eprints.qut.edu.au/17028/1/Daniel_Mueller_Thesis.pdf" rel="noreferrer" target="_blank">http://eprints.qut.edu.au/17028/1/Daniel_Mueller_Thesis.pdf</a><br>
><br>
> On 22 August 2015 at 06:52, Prashanth <<a href="mailto:prashanth.dumpuri@gmail.com" target="_blank">prashanth.dumpuri@gmail.com</a>> wrote:<br>
>> All,<br>
>><br>
>> I'm working on finding the shortest path between two points in a vessel<br>
>> tree. itkSpeedToPathFilter seems to be working well for me as long as I<br>
>> select the right speed function. Digging through Insight Journal, I found a<br>
>> link to Deschamp's Ph.D. thesis<br>
>> (<a href="https://tel.archives-ouvertes.fr/file/index/docid/45537/filename/index.html" rel="noreferrer" target="_blank">https://tel.archives-ouvertes.fr/file/index/docid/45537/filename/index.html</a>)<br>
>> which outlines one method to select a speed function:<br>
>><br>
>> 1. Approximate centerline based on the input image<br>
>> 2. Segmentation using the approximate centerline<br>
>> 3. Use the segmented image and approximate centerline to create an image<br>
>> with signed distances to the approximate centerline<br>
>> 4. Use the above image as the  input speed function for itkSpeedToPathFilter<br>
>><br>
>> The above steps seem to work (I say 'seem to work' because I tested it just<br>
>> three 2D images so far), but are there other methods to select the speed<br>
>> function? My input images are contrast enhanced CT images and the vessels<br>
>> are easy to identify and segment. Any help on how to select the correct<br>
>> speed function will be appreciated.<br>
>><br>
>> Thanks<br>
>> Prashanth<br>
>><br>
>> _____________________________________<br>
>> Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
>><br>
>> Visit other Kitware open-source projects at<br>
>> <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
>><br>
>> Kitware offers ITK Training Courses, for more information visit:<br>
>> <a href="http://www.kitware.com/products/protraining.php" rel="noreferrer" target="_blank">http://www.kitware.com/products/protraining.php</a><br>
>><br>
>> Please keep messages on-topic and check the ITK FAQ at:<br>
>> <a href="http://www.itk.org/Wiki/ITK_FAQ" rel="noreferrer" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
>><br>
>> Follow this link to subscribe/unsubscribe:<br>
>> <a href="http://public.kitware.com/mailman/listinfo/insight-users" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/insight-users</a><br>
>><br>
> _____________________________________<br>
> Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
><br>
> Visit other Kitware open-source projects at<br>
> <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
><br>
> Kitware offers ITK Training Courses, for more information visit:<br>
> <a href="http://www.kitware.com/products/protraining.php" rel="noreferrer" target="_blank">http://www.kitware.com/products/protraining.php</a><br>
><br>
> Please keep messages on-topic and check the ITK FAQ at:<br>
> <a href="http://www.itk.org/Wiki/ITK_FAQ" rel="noreferrer" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
><br>
> Follow this link to subscribe/unsubscribe:<br>
> <a href="http://public.kitware.com/mailman/listinfo/insight-users" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/insight-users</a><br>
</blockquote></div></blockquote></div>