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

3

Le document présente un code Python qui extrait les caractéristiques du Local Binary Pattern (LBP) à partir d'images. Il calcule l'image LBP et l'histogramme normalisé pour chaque image, puis les affiche en utilisant Matplotlib. Enfin, il montre les histogrammes LBP correspondants pour chaque image traitée.

Transféré par

enamichak00
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 TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
34 vues2 pages

3

Le document présente un code Python qui extrait les caractéristiques du Local Binary Pattern (LBP) à partir d'images. Il calcule l'image LBP et l'histogramme normalisé pour chaque image, puis les affiche en utilisant Matplotlib. Enfin, il montre les histogrammes LBP correspondants pour chaque image traitée.

Transféré par

enamichak00
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 TXT, PDF, TXT ou lisez en ligne sur Scribd

import cv2

import numpy as np
from skimage.feature import local_binary_pattern
import matplotlib.pyplot as plt

# Paramètres LBP
radius = 1 # Distance des voisins
n_points = 8 * radius # Nombre de voisins autour du pixel central

def extract_lbp_features(image):
"""
Calcule le Local Binary Pattern (LBP) et retourne l'image LBP + l'histogramme
normalisé.
"""
lbp = local_binary_pattern(image, n_points, radius, method="uniform")

# Calcul de l'histogramme LBP


hist, _ = np.histogram(lbp.ravel(), bins=np.arange(0, n_points + 3), range=(0,
n_points + 2))

# Normalisation de l'histogramme
hist = hist.astype("float")
hist /= (hist.sum() + 1e-6) # Éviter la division par zéro

return lbp, hist

# Extraction des caractéristiques LBP pour toutes les images


lbp_images = []
lbp_histograms = []

for img in data:


lbp_img, hist = extract_lbp_features(img)
lbp_images.append(lbp_img)
lbp_histograms.append(hist)

# Conversion en numpy array


lbp_histograms = np.array(lbp_histograms)

# Affichage des images et de leurs LBP


fig, axes = plt.subplots(4, 6, figsize=(15, 10)) # 4 lignes, 6 colonnes

for i in range(len(data)):
# Image originale
axes[i // 3, (i % 3) * 2].imshow(data[i], cmap='gray')
axes[i // 3, (i % 3) * 2].set_title(f"Image {i+1} ({labels[i]})")
axes[i // 3, (i % 3) * 2].axis("off")

# Image LBP
axes[i // 3, (i % 3) * 2 + 1].imshow(lbp_images[i], cmap='gray')
axes[i // 3, (i % 3) * 2 + 1].set_title(f"LBP {i+1}")
axes[i // 3, (i % 3) * 2 + 1].axis("off")

plt.tight_layout()
plt.show()

# Affichage des histogrammes LBP


fig, axes = plt.subplots(3, 4, figsize=(12, 9)) # 3 lignes, 4 colonnes

for i in range(len(data)):
axes[i // 4, i % 4].bar(range(len(lbp_histograms[i])), lbp_histograms[i])
axes[i // 4, i % 4].set_title(f"Histogramme {i+1}")
axes[i // 4, i % 4].set_xlabel("Valeurs LBP")
axes[i // 4, i % 4].set_ylabel("Fréquence")

plt.tight_layout()
plt.show()

Vous aimerez peut-être aussi