Find a path between two points
3 views (last 30 days)
Show older comments
I'm doing some image processing for biology research. I'm looking at images of a larva that bends into different shapes as it moves around. I'm able to binarize the images and automatically locate the head and tail. However, I need a way to draw a line between the head and the tail that follows the body of the larva, so I can calculate its curvature.
So the data is a 640 x 480 matrix of zeros, with an elongated and curved field of ones somewhere in the middle that represents the larva. In addition there are two points [A, B] located at either end of the field of ones, which correspond to head and the tail. How can I get Matlab find for example the shortest distance along the ones between A and B? (It doesn't have to be the shortest distance, it's just one way of constraining the question.) A polynomial or spline won't do because the larva often bends 360 degrees or more.
Thanks!! Chris
1 Comment
Doug Hull
on 6 Nov 2013
have you skeletonized the larva (even if invertebrate!) The bwmorph command might be what you are looking for, use 'skel' option.
Accepted Answer
Alex Taylor
on 6 Nov 2013
Edited: Alex Taylor
on 6 Nov 2013
Check out bwdistgeodesic/greythresh, as shown in Steve's post:
Both of these functions require the Image Processing Toolbox. bwdistgeodesic is intended exactly for this type of binary constrained shortest path problem.
0 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!