Making a binary skeletonization less noisy - image processing

1 view (last 30 days)
Hi - I am trying to skeletonize a binary mask like this https://dl.dropbox.com/u/54307333/4ANDmask.bmp. But I end up with too many small branches coming off of the long segments https://dl.dropbox.com/u/54307333/4Maskthin.bmp. I want to get rid of small branches (<20 pixels) that are only connected on one end. Ones that are connected on both ends are valuable to me.
I am using bwmorph to calculate the endpoints. And using that I can exclude branches that are below a certain size, but like I said, I want to keep the ones that are connected on both ends.
I probably have to do some kind of if statement, checking the connectivity of each endpoint...? Not sure. Any ideas?
Thanks,
Nad

Accepted Answer

Image Analyst
Image Analyst on 7 Dec 2012
Try blurring the image before you skeletonize it.
  4 Comments
Nad
Nad on 8 Dec 2012
Edited: Nad on 8 Dec 2012
tried gaussian filter (see help for fspecial if anyone is interested) with a decent sized window (15x15 for a 250x250 roi) and that got rid of the small off shooting branches. thanks!
also tried bwmorph(image,'spur',numofpixels) to get rid of branches of a certain size and that seemed to help as well.
Image Analyst
Image Analyst on 10 Dec 2012
Just try a simple box filter on the grayscale image.
out = conv2(in, ones(21), 'same');
Then do your morphology.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!