I have a basic level of image processing/matlab. I need to write an m file to complete skeletisation of a binary image of the word "skeleton" in white on a black background. It is to be done without using matlab functions for skeletising. thank you
Mostrar comentarios más antiguos
Hi, I have a basic level of image processing/matlab. I need to write an m file to complete skeletisation of a binary image of the word "skeleton" in white on a black background. It is to be done without using matlab functions for skeletising. possibly one that will work on all binary images. Thanks
my code is as follows. I created it using an algorithm found online and adapted it to this:
clear all
I=imread('skeleton.jpg')
I = im2double(I);
I = im2bw(I);
figure, imshow(I);
H = size(I, 1); %height of image
W = size(I, 2); %width of image
for i = 2:H-1
for j = 2:W-1
Neighbour = [I(i-1,j) I(i-1,j+1) I(i,j+1) I(i+1,j+1) I(i+1,j) I(i+1,j-1) I(i,j-1) I(i-1,j-1)];
Surrounds = [I(i-1,j) I(i-1,j+1) I(i,j+1) I(i+1,j+1) I(i+1,j) I(i+1,j-1) I(i,j-1) I(i-1,j-1) I(i-1,j)];
Transition = nnz(diff(Surrounds)==1);
Non_zero = sum(Neighbour(:)==1);
if Transition==1 && (2<=Non_zero<=6) && (I(i-1,j)*I(i,j+1)*I(i+1,j)==0) && (I(i,j+1)*I(i+1,j)*I(i,j-1)==0)
I(i,j)=0;
end
end
end
figure, imshow(I)
5 comentarios
Image Analyst
el 18 de Abr. de 2013
Why do you have that restriction? How can that help you?
Thomas
el 18 de Abr. de 2013
So is the problem solved now?
Ralph Dunne
el 18 de Abr. de 2013
Image Analyst
el 18 de Abr. de 2013
The restriction that you can't use the built-in MATLAB function that calculates the skeleton. I mean, why not use it?
Ralph Dunne
el 18 de Abr. de 2013
Respuestas (1)
Thomas
el 18 de Abr. de 2013
0 votos
The grassfire transform would be easy to implement: http://en.wikipedia.org/wiki/Grassfire_Transform
Be aware that this algorithm is not exceptionally fast. However, it can be parallelized.
1 comentario
Ralph Dunne
el 18 de Abr. de 2013
Categorías
Más información sobre Morphological Operations en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!