Can a skeleton be defined on a neighbourhood of 8 pixels ?

Jean-Patrick Pommier jeanpatrick.pommier at gmail.com
Thu Jun 12 05:51:51 EDT 2014


Hi Juan,

You're right, I thought that the mask was a structuring element.

Regarding the way a skeleton is computed (C4 with skimage or C8 with 
mahotas), there's different advantages/difficulties. With a C4 skeleton, 
the branched points of the skeleton seems to be a unique pixel. The 
difficulties come when the edges (skeleton-branched points) are being  
labelled (on a neighbourhood of 4 or 8 pixels). If the edges derive from a 
c8 skeleton (mahotas.thin), labelling the edges with a neighbourhood of 4 
pixel is easy. However, the use of a C8 skeleton leads to branched "domain" 
which can be more than one pixel.

I was wondering if it was possible to have a C8 skeleton with branched 
domain of only one pixel. This difficulty with C8 skeletons may be bypassed 
now. The aim would be to convert a skeleton into a graph : some results are 
visible in an ipython notebook, 
<http://nbviewer.ipython.org/gist/jeanpat/c261d254c139d11eb6dd> up to now 
the code works for some cases (some explanations) .. 
<http://dip4fish.blogspot.fr/2014/06/graph-again.html>.By the way is there 
a "regular" way way to solve that problem?

Best regards

Jean-Patrick

Le jeudi 5 juin 2014 14:24:02 UTC+2, Jean-Patrick Pommier a écrit :
>
> Hi,
> Is it possible to skeletonize a binary 2D shape such that  its skeleton is 
> defined on a neighbourhood of 8 pixels?
>
> When skeletonizing with  : *morphology.medial_axis()* , I tried two 
> structuring elements (se8 or se4) as mask :
>
> se8 = np.array([[True,True,True],[True,True,True],[True,True,True]])
> se4 = 
> np.array([[False,True,False],[True,True,True],[False,True,False]])                       
>
> imK = makeLetterImage('K', 70)
> skel = *morphology.medial_axis*(imK,mask=se8) 
> Ep_Bp, Bp_Bp, Bp, Ep = SkeletonDecomposition(skel)
>
> The skeletons returned using se8 or se4 are very similar and look defined 
> on a neighbourhood of 4 pixels (left). To me, this is a problem when trying 
> to label the skeleton edges (right).
>
>
> <https://lh4.googleusercontent.com/-curcY_g5N9A/U5BfJdpe6yI/AAAAAAAAB0w/1PbxFHLHJ6s/s1600/labeling+edges.png>
>
> Jean-Patrick
>
> <https://lh4.googleusercontent.com/-curcY_g5N9A/U5BfJdpe6yI/AAAAAAAAB0w/1PbxFHLHJ6s/s1600/labeling+edges.png>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scikit-image/attachments/20140612/eb319212/attachment.html>


More information about the scikit-image mailing list