Oreiller Python - ML avec Numpy
Dans ce chapitre, nous utilisons numpy pour stocker et manipuler des données d'image à l'aide de la bibliothèque d'imagerie python - «oreiller».
Avant de poursuivre ce chapitre, ouvrez l'invite de commande en mode administrateur et exécutez la commande suivante pour installer numpy -
pip install numpy
Note - Cela ne fonctionne que si PIP est installé et mis à jour.
Création d'une image à partir de Numpy Array
Créer une image RVB à l'aide de PIL et l'enregistrer sous forme de fichier jpg. Dans l'exemple suivant, nous allons -
Créez un tableau de 150 par 250 pixels.
Remplissez la moitié gauche du tableau d'orange.
Remplissez la moitié droite du tableau avec du bleu.
from PIL import Image
import numpy as np
arr = np.zeros([150, 250, 3], dtype=np.uint8)
arr[:,:100] = [255, 128, 0]
arr[:,100:] = [0, 0, 255]
img = Image.fromarray(arr)
img.show()
img.save("RGB_image.jpg")
Production
Création d'images en niveaux de gris
La création d'images en niveaux de gris est légèrement différente de la création d'une image RVB. Nous pouvons utiliser le tableau à 2 dimensions pour créer une image en niveaux de gris.
from PIL import Image
import numpy as np
arr = np.zeros([150,300], dtype=np.uint8)
#Set grey value to black or white depending on x position
for x in range(300):
for y in range(150):
if (x % 16) // 8 == (y % 16)//8:
arr[y, x] = 0
else:
arr[y, x] = 255
img = Image.fromarray(arr)
img.show()
img.save('greyscale.jpg')
Production
Créer un tableau numpy à partir d'une image
Vous pouvez convertir l'image PIL en tableau numpy et vice versa. Un petit programme pour démontrer la même chose est indiqué ci-dessous.
Exemple
#Import required libraries
from PIL import Image
from numpy import array
#Open Image & create image object
img = Image.open('beach1.jpg')
#Show actual image
img.show()
#Convert an image to numpy array
img2arr = array(img)
#Print the array
print(img2arr)
#Convert numpy array back to image
arr2im = Image.fromarray(img2arr)
#Display image
arr2im.show()
#Save the image generated from an array
arr2im.save("array2Image.jpg")
Production
Si vous enregistrez le programme ci-dessus sous Example.py et exécutez -
Il affiche l'image d'origine.
Affiche la baie récupérée.
Reconvertit la matrice en image et l'affiche.
Depuis que nous avons utilisé la méthode show (), les images sont affichées à l'aide de l'utilitaire d'affichage PNG par défaut, comme suit.
[[[ 0 101 120]
[ 3 108 127]
[ 1 107 123]
...
...
[[ 38 59 60]
[ 37 58 59]
[ 36 57 58]
...
[ 74 65 60]
[ 59 48 42]
[ 66 53 47]]
[[ 40 61 62]
[ 38 59 60]
[ 37 58 59]
...
[ 75 66 61]
[ 72 61 55]
[ 61 48 42]]
[[ 40 61 62]
[ 34 55 56]
[ 38 59 60]
...
[ 82 73 68]
[ 72 61 55]
[ 63 52 46]]]
Original Image
Image constructed from the array