0% ont trouvé ce document utile (0 vote)
53 vues2 pages

Note 4-M31 (Code)

Le document présente des méthodes de traitement d'image utilisant OpenCV en Python, notamment le calcul du squelette avec la méthode de Lantuejoul et l'extraction de caractéristiques d'images avec des techniques de morphologie. Il illustre la binarisation d'images et l'utilisation d'éléments structurants pour améliorer la détection des formes dans des images à éclairage non uniforme. Des exemples de code sont fournis pour démontrer ces techniques sur des images spécifiques.

Transféré par

Anass ibn tahaikt
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
53 vues2 pages

Note 4-M31 (Code)

Le document présente des méthodes de traitement d'image utilisant OpenCV en Python, notamment le calcul du squelette avec la méthode de Lantuejoul et l'extraction de caractéristiques d'images avec des techniques de morphologie. Il illustre la binarisation d'images et l'utilisation d'éléments structurants pour améliorer la détection des formes dans des images à éclairage non uniforme. Des exemples de code sont fournis pour démontrer ces techniques sur des images spécifiques.

Transféré par

Anass ibn tahaikt
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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]()

Vous aimerez peut-être aussi