MST MBD-SIM/M31 Labs OpenCV-Python M.
AIT KBIR
Calcul du squelette : Méthode de Lantuejoul
import cv2
import numpy as np
img = [Link]('../images/[Link]',0)
[Link]("Originale",img)
# image squelette
skel = [Link]([Link],np.uint8)
# Binarisation
img = [Link](img,127,255,0)[1]
# Élément structurant
element_structurant = [Link](cv2.MORPH_CROSS, (3,3))
done = False
# Lantuejoul : centres des disques maximaux
while (not done):
opened = [Link](img, cv2.MORPH_OPEN, element_structurant)
temp = [Link](img,opened)
#Ajouter les points disparus suite à l'ouverture
skel = cv2.bitwise_or(skel, temp)
img = [Link](img, cv2.MORPH_ERODE, element_structurant)
if [Link](img) == 0:
done = True
[Link]("skel",skel)
[Link](0)
[Link]()
1
MST MBD-SIM/M31 Labs OpenCV-Python M. AIT KBIR
/* Image [Link] : difficile à choisir le seuil de binarisation ( Eclairage non uniforme)
Ouverture : Approximation du fond de l'image
Top-Hat blanc : Extraction des pics ( La taille de l'élément structurant doit être suffisamment grande)
*/
import cv2
import numpy as np
# Image avec un éclairage non uniforme
img = [Link]('../images/[Link]',0)
[Link]("Originale", img)
# Prendre un élément structurant de taille assez grande
# pour que les particules passent comme des pics d'intensité
kernel = [Link]((11,11),np.uint8)
ouverture = [Link](img, cv2.MORPH_OPEN, kernel)
top = img-ouverture;
# ou encore :
#top = [Link](img, cv2.MORPH_TOPHAT, kernel)
# Fond de l'image
[Link]("Ouverture", ouverture)
#Les pics (Particules): binaire
ret,binaire = [Link](top,0,255,cv2.THRESH_OTSU)
[Link]("Binaire", binaire)
[Link](0)
[Link]()