Maison > développement back-end > Tutoriel Python > Traitement d'image à l'aide de Python

Traitement d'image à l'aide de Python

Joseph Gordon-Levitt
Libérer: 2025-03-03 10:18:13
original
771 Les gens l'ont consulté

Traitement d'images avec la bibliothèque Scikit-Image de Python: un guide pratique

Un rédacteur en chef du journal de 1911 a déclaré: "Utilisez une image. Cela vaut mille mots." Cela met en évidence le rôle crucial que les images jouent dans la communication, des photographies de tous les jours aux analyses médicales spécialisées comme les IRM et les échographies. Les méthodes d'acquisition d'images varient considérablement: les dermatoscopes pour les images du cancer de la peau, les caméras numériques pour les photos personnelles et les smartphones pour les instantanés occasionnels. Cependant, des imperfections d'image telles que le flou, résultant souvent du processus d'acquisition, peuvent survenir. Quoi alors? Lorsque vous traitez avec des images médicales préexistantes, la réimagerie n'est pas une option. C'est là que les techniques de traitement d'image deviennent inestimables.

Le traitement d'image, tel que défini par les dictionnaires d'Oxford, est "l'analyse et la manipulation d'une image numérisée, en particulier afin d'améliorer sa qualité". Cette manipulation numérique nécessite l'utilisation de langages de programmation, et Python, avec ses bibliothèques puissantes, est un excellent choix. Ce didacticiel démontre des tâches de traitement d'image de base à l'aide de la bibliothèque scikit-image de Python.

Grayscaling une image

La bibliothèque scikit-image simplifie la manipulation de l'image. Nous allons commencer par convertir une image couleur en niveaux de gris. La fonction imread() de la bibliothèque charge l'image, et rgb2gray() le convertit en niveaux de gris à l'aide d'un calcul de luminance:

L = 0.2125*R 0.7154*G 0.0721*B

Voici le code Python:

from skimage import io, color

img = io.imread('pizzeria.png')
img_grayscale = color.rgb2gray(img)

io.imsave('gray-pizzeria.png', img_grayscale)
io.imshow(img_grayscale)
io.show()
Copier après la connexion

L'image en niveaux de gris résultant:

Image Processing Using Python

Application des filtres

Le filtrage d'images améliore les images à travers des opérations comme l'amélioration des bords, l'affûtage et le lissage. Nous appliquerons le filtre Sobel pour la détection des bords:

from skimage import io, filters

img = io.imread('pizzeria.png')
sobel_a = filters.sobel(img)

io.imsave('sobel-filter.png', sobel_a)
Copier après la connexion

(Remarque: un avertissement peut apparaître si l'image n'est pas 2D; assurer le format d'image approprié.)

L'image filtrée par Sobel:

Image Processing Using Python

D'autres filtres, comme le filtre gaussien pour le flou, offrent d'autres capacités de manipulation d'images. Le paramètre d'écart type contrôle l'intensité de flou.

from skimage import io, color, filters

img = io.imread('pizzeria.png')
gaussian_a = filters.gaussian(img, 10)
gaussian_b = filters.gaussian(img, [20, 1])

io.imsave('gaussian-filter-10.png', gaussian_a)
io.imsave('gaussian-filter-20-1.png', gaussian_b)
Copier après la connexion

Résultats du filtre gaussien (σ = 10 et σ = [20,1]):

Image Processing Using Python Image Processing Using Python

Seuil

Le seuil convertit une image en niveaux de gris en image binaire (noir et blanc). Nous utilisons la valeur moyenne en niveaux de gris comme seuil:

from statistics import mean
from skimage import io, filters, util

img = io.imread('pizzeria.png', as_gray=True)

mean_threshold = filters.threshold_mean(img)
print(mean_threshold)

binary = img > mean_threshold
binary = util.img_as_ubyte(binary)

io.imsave('threshold-filter.png', binary)
Copier après la connexion

L'image seuil:

Image Processing Using Python

Conclusion

scikit-image offre une large gamme de capacités de traitement d'image. Explorez sa documentation approfondie pour des techniques plus avancées. Pour ceux qui souhaitent apprendre Python, des tutoriels complets sont facilement disponibles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal