Convertir une image en tableau 2D en python
Je veux convertir une image 2D tableau à 5 colonnes où chaque ligne est de la forme [r, g, b, x, y]
. x, y est la position du pixel et de la r,g,b sont les valeurs des pixels. (Je vais être à l'aide de ce tableau en entrée à une machine modèle d'apprentissage). Est-il plus efficace de mise en œuvre de ce en python?
import Image
import numpy as np
im = Image.open("farm.jpg")
col,row = im.size
data = np.zeros((row*col, 5))
pixels = im.load()
for i in range(row):
for j in range(col):
r,g,b = pixels[i,j]
data[i*col + j,:] = r,g,b,i,j
OriginalL'auteur Sanket | 2014-11-19
Vous devez vous connecter pour publier un commentaire.
Je devais écrire ce que récemment et a terminé avec
Où
im
est un tableau numpy. Vous êtes probablement mieux de lecture des images directement dans les matrices avec numpyOu, mieux encore si vous avez Scikit Image est installé
OriginalL'auteur YXD
Je ne sais pas si c'est très efficace. Mais ici, vous allez, dis
arr = np.array(im)
; ensuite, vous pouvez faire quelque chose comme cela.OriginalL'auteur Ashwini Chaudhary
J'ai utilisé "+" pour combiner les deux tuple, et l'utilisation
.append()
pour faire liste de "données".Pas besoin d'utiliser Numpy ici.OriginalL'auteur 羅一中