Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
extraccion de datos RGB de imagen
#1
Sad 
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()
Responder
#2
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!
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)