Vous êtes sur la page 1sur 5

 NumPy (alias np) est une bibliothèque qui est utilisée pour effectuer des calculs

numériques et des opérations sur des tableaux multidimensionnels.


 Pandas (alias pd) est une bibliothèque utilisée pour la manipulation et l'analyse de
données.
 OpenCV (alias cv2) est une bibliothèque qui fournit des outils pour le traitement
d'images et de vidéos en temps réel.
 PIL (Python Imaging Library) est une bibliothèque utilisée pour ouvrir, manipuler et
enregistrer des images.
 Matplotlib est une bibliothèque utilisée pour la visualisation de données.
 Scikit-image (alias skimage) est une bibliothèque utilisée pour le traitement d'images.

Chargement d'images à partir d'urls

 Une liste nommée urls est définie contenant les URLs de trois images.
 Pour chaque URL d'image, le code crée une nouvelle figure de tracé à l'aide de la
fonction plt.figure().
 La fonction io.imread()est utilisée pour lire l'image à partir de l'URL. Cette fonction
retourne un tableau NumPy contenant les pixels de l'image.
 La fonction cv.cvtColor() est ensuite utilisée pour convertir le schéma de couleurs de
l'image de BGR à RGB
 la fonction cv.hconcat() est utilisée pour concaténer horizontalement les deux images
 La fonction plt.imshow() est utilisée pour afficher l'image concaténée. Le code utilise
également plt.savefig() pour enregistrer chaque image résultante dans un fichier PNG
 Ce code est permet de lire et afficher des images à partir d'une liste d'URLs comme le
premier code.
 Il permet d'afficher les images mais ne les enregistre pas. De plus, le premier code
convertit les images en format RGB et concatène deux images horizontalement avant de
les afficher, tandis que ce code ne le fait pas.

Analyse d'image

 La fonction imshow(): affiche l'image dans une fenêtre graphique


 image.shape: Affiche la taille de l'image sous la forme d'un tuple
 image.dtype: Affiche le type de données des pixels de l'image, par exemple uint8 pour
des pixels non signés codés sur 8 bits.
 image.shape[0]: Affiche la hauteur de l'image, qui est le nombre de lignes dans la
matrice d'images.
 image.shape[1]: Affiche le nombre de canaux de couleur de l'image. Pour une image en
niveaux de gris, cela sera 1. Pour une image RGB, cela sera 3
 Histogramme d'image
 Créer l'histogramme de l'image
 image.ravel() est une méthode qui transforme l'image en une séquence à une seule
dimension de ses valeurs de luminosité.
 Enregistrer l'histogramme en tant que fichier PNG
 cv.calcHist([image],[i],None,[256],[0,256]): itère sur chaque canal de couleur de
l'image (bleu, vert, rouge) et calcule l'histogramme correspondant
 La fonction plt.plot(): est utilisée pour tracer l'histogramme sous forme de graphique
linéaire.
 plt.xlim(): est utilisée pour définir la plage des valeurs sur l'axe des abscisses
 plt.savefig(): est utilisée pour enregistrer l'histogramme tracé sous forme d'image PNG
 Convertir une image en couleur (image) en une image en niveaux de
gris (gray_image), en utilisant la fonction cvtColor() de la bibliothèque OpenCV
 Afficher l'image en niveaux de gris
 La fonction savefig() de matplotlib.pyplot utiliser pour enregistrer l'image affichée dans
le format PNG
 Créer un histogramme à partir d'une image en niveaux de gris,
utilise matplotlib.pyplot pour l'afficher
 Enregistrer le résultat sous forme de fichier PNG dans le dossier "image_processing"
 Contour
 Utilise la fonction contour() de matplotlib pour créer les contours de l'image en
niveaux de gris
 Utilise la fonction savefig() de matplotlib.pyplot pour enregistrer l'image affichée sous
forme de fichier PNG
 Utilise la fonction threshold() de OpenCV pour effectuer une binarisation de l'image
en niveaux de gris. Les pixels de l'image ayant une valeur inférieure à 150 sont définis à
0 (noir) et les pixels ayant une valeur supérieure ou égale à 150 sont définis à 255
(blanc).
 Utilise la fonction findContours() de OpenCV pour détecter les contours dans l'image
binaire
 Utilise la fonction drawContours() de OpenCV pour dessiner les contours détectés sur
l'image originale. L'argument "-1" indique que tous les contours doivent être dessinés.
Le tuple (0, 255, 0) spécifie la couleur des contours (ici vert).
 Utilise la bibliothèque Pillow (importée sous le nom "Image") pour convertir l'image
résultante en un objet Image et l'enregistrer sous forme de fichier PNG
 La méthode fromarray() est utilisée pour convertir l'image en un objet Image.
 Grayscale Transformation
 Crée une nouvelle variable im2 qui contient l'image en niveaux de gris inversée. La
formule "- gray_image + 255" soustrait la valeur de luminosité de chaque pixel de
l'image en niveaux de gris à 255, ce qui inverse les niveaux de gris de l'image.
 Crée un objet Image à partir de l'array numpy im2 en utilisant la fonction fromarray().
 La fonction astype() convertit le type de données de l'array numpy en uint8,
 Crée une nouvelle variable im2 qui contient l'image en niveaux de gris inversée. La
formule "- gray_image + 255" soustrait la valeur de luminosité de chaque pixel de
l'image en niveaux de gris à 255, ce qui inverse les niveaux de gris de l'image.
 Crée un objet Image à partir de l'array numpy im2 en utilisant la fonction fromarray().
 La fonction astype() convertit le type de données de l'array numpy en uint8,
 Égalisation des histogrammes
 np.histogram(): Calcule l'histogramme de l'image.
 La méthode flatten() Utilisée pour convertir l'image 2D en un tableau 1D
 imhist.cumsum(): Utilisée pour calculer la somme cumulative des comptages de
l'histogramme.
 imhist.max()*cdf/cdf.max(): Normalise le CDF de sorte que sa valeur maximale soit
égale à la valeur maximale de l'histogramme d'entrée
 np.ma.masked_equal(cdf, 0): Masquer toutes les valeurs du CDF qui sont égales à 0
 (cdf_mask - cdf_mask.min())*255/(cdf_mask.max()-cdf_mask.min()): Normalise la
fonction de distribution cumulative masquée pour obtenir une image égalisée avec une
plage dynamique complète de valeurs de pixel.
 np.ma.filled(cdf_mask,0).astype('uint8'): Remplace toutes les valeurs masquées de
cdf_mask par zéro.La méthode astype('uint8') est utilisée pour convertir les valeurs de
cdf_mask en entiers non signés sur 8 bits
 cdf[im.astype('uint8')]: Applique l'égalisation d'histogramme en utilisant le CDF
normalisé pour calculer les nouvelles valeurs de pixel de l'image d'entrée
 Fourier Transformation
 cv.blur(gray_image,(5,5): floute l'image en niveaux de gris gray_image en utilisant
une fenêtre de flou de taille (5, 5) à l'aide de la fonction blur de la bibliothèque OpenCV
 np.fft.fft2(imBlur): calcule la transformation de Fourier bidimensionnelle de l'image
floue imBlur en utilisant la fonction fft2
 np.fft.fftshift(f): décale les fréquences de f en utilisant la fonction fftshift de NumPy.
 30*np.log(np.abs(fshift)): calcule le spectre de magnitude de la transformée de Fourier
décalée fshift. Elle utilise la fonction abs de NumPy pour obtenir la valeur absolue des
coefficients de fréquence, puis prend le logarithme en base 10 de ces valeurs et
multiplie le résultat par 30 pour amplifier les différences de magnitude
 (subplot): pour afficher l'image floue imBlur et le spectre de magnitude
magnitude_spectrum
 (title):Les titres "Input Image" et "Magnitude Spectrum" sont ajoutés à chaque
sous-graphique, et les graduations des axes sont désactivées
 Filtrage passe-haut en FFT
 imBlur.shape: Récupère les dimensions de l'image floutée.
 round(rows/2) , round(cols/2): Calcule les coordonnées du centre de l'image.
 fshift[crow-10:crow+10, ccol-10:ccol+10] = 0: Supprime les basses fréquences de
l'image en affectant à 0 les coefficients de la transformée de Fourier qui correspondent à
une zone rectangulaire autour du centre de l'image de taille 20x20 pixels.
 np.fft.ifftshift(fshift): Recentre la transformée de Fourier après avoir supprimé les
basses fréquences.
 np.fft.ifft2(f_ishift): Calcule la transformée de Fourier inverse de f_ishift pour obtenir
l'image filtrée.
 np.abs(img_back): Prend la valeur absolue de img_back pour s'assurer que les valeurs
de pixels sont toutes positives.
 plt.figure(figsize=([20, 20])): Crée une figure pour afficher les images côte à côte.
 plt.subplot(),plt.imshow(imBlur, cmap = 'gray'): Ajoute le sous-graphique à la figure
et affiche l'image floutée en niveaux de gris.
 plt.title(''), plt.xticks([]), plt.yticks([]): Ajoute un titre au sous-graphique et cache les
graduations sur les axes.
 plt.subplot(132),plt.imshow(img_back, cmap = 'gray'): Ajoute le deuxième sous-
graphique à la figure et affiche l'image filtrée en niveaux de gris.
 plt.show(): Affiche la figure contenant les deux sous-graphiques.
 Reconnaissance des formes
 Importe le modèle color qui fournit des fonctions pour convertir des images d'un espace
colorimétrique à un autre.
 Importe le modules io qui fournit une collection de fonctions pour lire et écrire des
images.
 La fonction rgb2gray de ce module est utilisée pour convertir une image en couleur en
une image en niveaux de gris.
 la fonction imread du module io est utilisée pour lire une image à partir du chemin de
fichier spécifié.
 La variable full est affectée à la version en niveaux de gris de l'image lue.
 color.rgb2gray(): Prend l'image lue par io.imread() en entrée et renvoie sa version en
niveaux de gris.
 la fonction plt.imshow() est utilisée pour afficher l'image en niveaux de gris représentée
par full, en utilisant une colormap en niveaux de gris plt.cm.gray.
 La fonction plt.title() définit le titre de l'image affichée.
 Créer un nouveau tableau appelé "template" en extrayant une partie de
l'image "full" qui se trouve entre les lignes 100 et 150 et les colonnes 140 et 170.
 La fonction "plt.imshow()" permet d'afficher une image dans une fenêtre graphique.
 La fonction "plt.figure()" crée une nouvelle fenêtre graphique.
 La fonction "plt.subplot(1,2,1)" indique que la nouvelle fenêtre graphique contiendra
deux sous-graphiques disposés en une seule ligne et deux colonnes, et que le premier
sous-graphique doit être sélectionné. Cela permet de diviser la fenêtre graphique en
deux parties.
 la fonction "plt.title()" est utilisée pour ajouter un titre au premier sous-graphique.
 la fonction "match_template()" calculer la corrélation entre le "template" et chaque
sous-région de l'image "full" qui a la même taille que le "template". Le résultat est
stocké dans une variable appelée "correlation".
 Créent deux listes vides appelées "xcoords" et "ycoords". Ces listes seront utilisées
pour stocker les coordonnées x et y des pixels où le "template" a été trouvé avec une
corrélation supérieure à 0,9
 Les deux boucles "for" suivantes parcourent chaque pixel de la matrice de
corrélation "correlation". La première boucle parcourt chaque ligne de la matrice,
tandis que la deuxième boucle parcourt chaque colonne.
 Pour chaque pixel, la condition "if correlation[row,col]>0.9:" vérifie si la corrélation
est supérieure à 0,9. Si c'est le cas, cela signifie que le "template" a été trouvé à cet
endroit de l'image "full" avec une forte corrélation.
 Dans ce cas, les coordonnées x et y de ce pixel sont ajoutées aux
listes "xcoords" et "ycoords", respectivement, en utilisant les méthodes ".append()".
Ces listes stockent les coordonnées des pixels où le "template" a été trouvé avec une
corrélation supérieure à 0,9.
 La fonction imshow afficher une image représentée par la variable full.
 Le paramètre cmap est défini sur plt.cm.gray pour afficher l'image en niveaux de gris.
 plt.title() définit le titre du graphique
 Trace un ensemble de points sur l'image. Les variables xcoords et ycoords spécifient
les coordonnées x et y des points à tracer.
 L'argument 'om' spécifie que les points doivent être affichés sous forme de cercles
magenta.
 Le paramètre ms définit la taille des cercles à 8.
 Le paramètre label est défini sur "found matches" pour créer une étiquette pour la
légende.
 Ajoute une légende au graphique.
 Le paramètre loc spécifie l'emplacement de la légende (2 correspond au coin supérieur
gauche).
 Le paramètre numpoints est défini sur 1 pour afficher un seul point dans la légende.
 Affiche la légende sur le graphique.
 Affiche le graphique à l'écran.
 Exemple de code
 Importe la fonction io.imread de la bibliothèque scikit-image en io.
 Lire l'image de chien qui est stockée à l'emplacement spécifié dans le chemin d'accès
 Stocke l'image dans la variable image
 Utilise la fonction io.imshow pour afficher l'image stockée dans image.
 Utilise l'attribut shape de image pour afficher la forme (nombre de lignes, nombre de
colonnes et nombre de canaux de couleur) de l'image.

 Ces deux lignes de code permettent de tracer un histogramme des valeurs de pixels dans
une image en utilisant la bibliothèque matplotlib.pylab.
 Importe le sous-module color de la bibliothèque scikit-image.
 Utilise la fonction rgb2gray() de color pour convertir l'image couleur image en une
image en niveau de gris imageGray. Elle utilise la méthode de conversion standard de
luminance pour convertir les valeurs de couleurs RGB en niveaux de gris.
 Afficher l'image en niveau de gris imageGray. Cette fonction prend l'image en entrée et
l'affiche dans une fenêtre graphique.
 La fonction plt.contour de la bibliothèque Matplotlib permet de tracer un graphique de
contour d'une image ou d'une fonction à deux dimensions.
 Le paramètre origin de cette fonction permet de définir l'origine de l'image pour le tracé
du graphique de contour
 La valeur "image" de origin place l'origine en haut à gauche de l'image, tandis que la
valeur "lower" place l'origine en bas à gauche. Le choix de l'origine dépend de la
convention utilisée pour les données.
 La première ligne importe la fonction "rescale" de la bibliothèque "scikit-image".
 La deuxième ligne utilise la fonction "rescale" pour rééchantillonner
l'image "imageGray" en réduisant sa taille de 75%. Le résultat est stocké dans une
variable appelée "image_rescaled".
 La troisième ligne affiche l'image rééchantillonnée à l'aide de la fonction "imshow" de
la bibliothèque "scikit-image".
 La première ligne importe la fonction "filters" de la bibliothèque Scikit-Image. Cette
fonction contient une variété de filtres d'image, y compris le filtre de Sobel.
 La deuxième ligne applique le filtre de Sobel à une image en niveaux de gris
nommée "imageGray". Le résultat est stocké dans une nouvelle variable
appelée "edges".
 La troisième ligne utilise la fonction "io.imshow" pour afficher l'image filtrée. La
fonction "imshow" affiche une image dans une fenêtre graphique.
 La quatrième ligne utilise la fonction "io.show" pour afficher la fenêtre graphique.
Cette fonction est nécessaire pour afficher l'image dans une fenêtre séparée plutôt que
de l'afficher directement dans la console.

Vous aimerez peut-être aussi