Foros Python

Versión completa: extraccion de datos RGB de imagen
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola a todos
nesecito extraer los valores de RGB de una imagen y la posicion del pixel para guardarlo en un txt y luego trabajarlos
por ahora solo he conseguido extraer el rgb y meterlo en un .txt pero no tienen informacion de la posicion y aparece tooooodos los rgb en una linea, igual seria mucho mejor si apareciera como una matriz
obviamente soy nuevo en esto y me gustaria aprender. Les dejo lo que hice hasta ahora:



from PIL import Image
foto = Image.open('C:/Users/daq/Desktop/python/pruebas/cr_3.jpg')
datos = list(foto.getdata())
foto.close()
# print (datos)                         #en caso que quieras ver los datos en pantalla pero deja la cagada porque  son miles de datos
import simplejson                     #pones los datos en una lista .txt en el lugar donde llamaste la imagen
f = open('rgb_data.txt', 'w')       # cambiale el nombre de rgb data.txt !!
simplejson.dump(datos, f)
f.close()
Hola, bienvenido o bienvenida.

Vos estás usando la función getdata(), que retorna todos los píxeles en una misma secuencia, por lo que no podés saber la posición de cada pixel. Capaz lo que podés usar es getpixel(xy) para obtener cada pixel manualmente (vía un bucle, sabiendo ancho y alto de la imagen) y armar vos tu propia matriz.

Una alternativa más fácil es usar Numpy. Podés abrir una imagen como una matriz así:

Código:
import numpy as np
m = np.asarray(PIL.Image.open("archivo.jpg"))

Saludos!