Traitement d'images en Python
Rebeca Gonzalez
Data Engineer
Segmenter une image en avant-plan et arrière-plan
En la rendant noir et blanc
On y arrive en définissant chaque pixel à :

La méthode la plus simple de segmentation d'images

Uniquement à partir d'images en niveaux de gris

# Obtenir la valeur seuil optimale thresh = 127# Appliquer le seuillage à l'image binary = image > thresh# Afficher l'originale et la seuillée show_image(image, 'Original') show_image(binary, 'Thresholded')

# Obtenir la valeur seuil optimale thresh = 127# Appliquer le seuillage à l'image (inversé) inverted_binary = image <= thresh# Afficher l'originale et la seuillée show_image(image, 'Original') show_image(inverted_binary, 'Inverted thresholded')

Global ou basé sur l'histogramme : bon pour les arrière-plans uniformes
Local ou adaptatif : pour un éclairage d'arrière-plan inégal

from skimage.filters import try_all_threshold# Obtenir toutes les images résultantes fig, ax = try_all_threshold(image, verbose=False)# Afficher les graphiques obtenus show_plot(fig, ax)

# Importer la fonction de seuil d'Otsu from skimage.filters import threshold_otsu# Obtenir la valeur seuil optimale thresh = threshold_otsu(image)# Appliquer le seuillage à l'image binary_global = image > thresh
# Afficher l'originale et l'image binaire
show_image(image, 'Original')
show_image(binary_global, 'Global thresholding')

# Importer la fonction de seuil local from skimage.filters import threshold_local# Définir la taille de bloc à 35 block_size = 35# Obtenir le seuillage local optimal local_thresh = threshold_local(text_image, block_size, offset=10)# Appliquer le seuillage local et obtenir l'image binaire binary_local = text_image > local_thresh
# Afficher l'originale et l'image binaire
show_image(text_image, 'Original')
show_image(binary_local, 'Local thresholding')

Traitement d'images en Python