Making a binary skeletonization less noisy - image processing

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

 Respuesta aceptada

Image Analyst
Image Analyst el 7 de Dic. de 2012
Try blurring the image before you skeletonize it.

4 comentarios

You mean blurring the binary mask? I hadn't thought of that. I was blurring the original image before getting the binary mask, but not the mask itself.
Will try that.
For this kind of image, what do you think is the best way to blur? Simple median filter or should I go with something else?
Nad
Nad el 8 de Dic. de 2012
Editada: Nad el 8 de Dic. de 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.
Just try a simple box filter on the grayscale image.
out = conv2(in, ones(21), 'same');
Then do your morphology.

Iniciar sesión para comentar.

Más respuestas (0)

Preguntada:

Nad
el 7 de Dic. de 2012

Community Treasure Hunt

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

Start Hunting!

Translated by