Comment utiliser Python pour effectuer des opérations au niveau des pixels sur les images

WBOY
Libérer: 2023-08-25 18:12:23
original
1658 Les gens l'ont consulté

Comment utiliser Python pour effectuer des opérations au niveau des pixels sur les images

Comment utiliser Python pour effectuer des opérations au niveau des pixels sur des images

Dans le développement de la technologie moderne, nous devons souvent effectuer diverses opérations et traitements sur des images. Pour certains besoins particuliers en matière de traitement d’image, les opérations au niveau des pixels constituent une méthode courante. Dans cet article, nous présenterons comment utiliser Python pour effectuer des opérations au niveau des pixels sur des images, avec des exemples de code correspondants.

  1. Importez les bibliothèques requises
    Tout d'abord, nous devons importer plusieurs bibliothèques couramment utilisées : PIL (Python Imaging Library), NumPy et Matplotlib. La bibliothèque PIL est une bibliothèque de traitement d'images couramment utilisée en Python, NumPy est une bibliothèque pour les calculs numériques et Matplotlib est une bibliothèque pour dessiner des graphiques et des images.
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
Copier après la connexion
  1. Ouvrir et afficher une image
    Grâce au module Image de la bibliothèque PIL, nous pouvons facilement ouvrir et afficher une image. L'exemple de code suivant ouvrira une image nommée "image.jpg" et l'affichera dans une fenêtre.
img = Image.open("image.jpg")
img.show()
Copier après la connexion
  1. Obtenir la valeur en pixels de l'image
    Pour effectuer des opérations au niveau des pixels sur l'image, nous devons d'abord obtenir la valeur en pixels de l'image. En utilisant le module Image de la bibliothèque PIL, nous pouvons obtenir les valeurs de pixels de l'image en appelant la méthode getdata() et la convertir en un tableau NumPy. getdata()方法来获取图像的像素值,并将其转换为NumPy数组。
pixels = np.array(img.getdata()).reshape(img.size[1], img.size[0], 3)
Copier après la connexion

在上面的代码中,getdata()方法返回一个一维数组,其中包含图像的像素值。我们通过reshape()

gray_img = np.mean(pixels, axis=2).astype(np.uint8)
plt.imshow(gray_img, cmap="gray")
plt.show()
Copier après la connexion
    Dans le code ci-dessus, la méthode getdata() renvoie un tableau unidimensionnel contenant les valeurs de pixels de l'image. Nous le convertissons en un tableau tridimensionnel via la méthode reshape(), où la première dimension représente la hauteur de l'image, la deuxième dimension représente la largeur de l'image et la troisième dimension représente la nombre de canaux de l'image.

  1. Effectuer des opérations au niveau des pixels sur les images
Une fois que nous avons obtenu les valeurs de pixels de l'image, nous pouvons effectuer diverses opérations sur celle-ci. Voici un exemple de code pour quelques opérations courantes au niveau des pixels :

  • Greyscale
Un moyen simple de convertir une image en niveaux de gris consiste à faire la moyenne des valeurs RVB de chaque pixel. Le code suivant fera cela et affichera les résultats dans une nouvelle fenêtre.
  • invert_img = 255 - pixels
    plt.imshow(invert_img)
    plt.show()
    Copier après la connexion

  • Inverser l'image
Un moyen simple d'inverser une image consiste à inverser la valeur RVB de chaque pixel (255 moins la valeur actuelle). Le code suivant fera cela et affichera les résultats dans une nouvelle fenêtre.
  • from scipy.ndimage.filters import convolve
    
    kernel = np.array([[1, 2, 1],
                       [2, 4, 2],
                       [1, 2, 1]])
    
    blurred_img = convolve(pixels, kernel)
    plt.imshow(blurred_img.astype(np.uint8))
    plt.show()
    Copier après la connexion

  • Flou gaussien
Le flou gaussien est une méthode de flou d'image courante qui peut être obtenue en prenant une moyenne pondérée des pixels entourant chaque pixel. Le code suivant fera cela et affichera les résultats dans une nouvelle fenêtre.
  1. result_img = Image.fromarray(blurred_img.astype(np.uint8))
    result_img.save("result.jpg")
    Copier après la connexion

    Enregistrez l'image traitéeUne fois l'image manipulée au niveau du pixel, nous pouvons l'enregistrer en tant que nouveau fichier image en utilisant le module Image de la bibliothèque PIL. Le code suivant montrera comment enregistrer l'image traitée.

    rrreee

    Grâce aux étapes ci-dessus, nous pouvons utiliser Python pour effectuer des opérations au niveau des pixels sur l'image et enregistrer le résultat en tant que nouveau fichier image. De plus, nous pouvons également personnaliser diverses opérations au niveau des pixels en fonction des besoins et les implémenter via du code. J'espère que cet article pourra vous fournir de l'aide et de l'inspiration pour votre travail et vos études en traitement d'image.

    Résumé : 🎜Cet article explique comment utiliser Python pour effectuer des opérations au niveau des pixels sur les images. Nous ouvrons et affichons des images en important la bibliothèque PIL, la bibliothèque NumPy et la bibliothèque Matplotlib. Ensuite, obtenez les valeurs de pixels de l'image et effectuez des opérations au niveau des pixels sur l'image, telles que les niveaux de gris, l'inversion et le flou gaussien. Enfin, enregistrez l'image traitée. Grâce à ces étapes, nous pouvons traiter les images de manière flexible et mettre en œuvre une variété de besoins en matière de traitement d’images. 🎜

    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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal