web-dev-qa-db-fra.com

Convertir l'image en une matrice en python

Je veux faire un traitement d'image en utilisant Python.

Existe-t-il un moyen simple d'importer .png l'image comme matrice de valeurs de niveaux de gris/RVB (éventuellement en utilisant PIL)?

27
hatmatrix

scipy.misc.imread() renverra un tableau Numpy, ce qui est pratique pour beaucoup de choses.

32
ptomato

Jusqu'à présent, personne ne parlait de matplotlib.image :

import matplotlib.image as img
image = img.imread(file_name)

Maintenant, l'image serait un tableau numpy 3D

print image.shape

Serait quelque chose comme: (317, 504, 3)

9
Salvador Dali

im.load in PIL renvoie un objet matriciel.

4
Katriel

vous pouvez utiliser image PyGame et utiliser PixelArray pour accéder aux pixeldata

2
Nikolaus Gradwohl

Essayez certainement

from matplotlib.image import imread

image  = imread(filename)  

Le nom de fichier doit de préférence être une image . Jpg . Et puis, essayez

image.shape

Cela reviendrait:

  • pour une image en noir et blanc ou en niveaux de gris Une matrice (n, n) où n représente la dimension des images (pixels) et les valeurs à l'intérieur de la matrice vont de 0 à 255 En général, 0 est considéré comme noir et 255 est considéré comme blanc. 128 a tendance à être gris!

  • Pour une image couleur ou RVB Il rendra un tenseur de 3 canaux. Chaque canal est une matrice (n, n) où chaque entrée représente respectivement le niveau de rouge, vert ou bleu à l'emplacement réel à l'intérieur de l'image.

1
FellerRock

scipy.misc.imread() est désormais obsolète. On peut utiliser imageio.imread au lieu de cela pour le lire comme un tableau Numpy

1
anon