El siguiente es un codigo desarrollado en python el cual recibe como parametro una imagen de cualquier tipo y efectua tres transformaciones sobre el color de sus pixeles, como ven utilizamos librerias de python para cargar las imagenes y tomar la posicion del pixel y su codigo RGB para efectuar las transformaciones.
#! /usr/bin/env python
import Image
import sys
def gris(archivo):
print "Procesando imagen en Gris..."
im=Image.open(sys.argv[-1])
procesado=[]
xsize,ysize=im.size
for x in range(0,xsize):
for y in range(0,ysize):
r,g,b=im.getpixel((x,y))
#Tomamos el promedio de la escala RGB para obtener el tono gris
colour=(r+g+b)/3
im.putpixel((x,y),(colour,colour,colour))
procesado=im.point(lambda i: i)
procesado.save(archivo+"-gris.jpg")
print "Procesamiento terminado."
def negativo(archivo):
print "Procesando imagen en Negativo..."
im=Image.open(sys.argv[-1])
procesado=[]
xsize,ysize=im.size
for x in range(0,xsize):
for y in range(0,ysize):
r,g,b=im.getpixel((x,y))
#Invertimos el codigo de color para cada pixel
im.putpixel((x,y),(255-r,255-g,255-b))
procesado=im.point(lambda i: i)
procesado.save(archivo+"-negativo.jpg")
print "Procesamiento terminado."
def blanconegro(archivo):
print "Procesando imagen en Blanco y Negro..."
im=Image.open(sys.argv[-1])
procesado=[]
xsize,ysize=im.size
for x in range(0,xsize):
for y in range(0,ysize):
r,g,b=im.getpixel((x,y))
#Convertirmos a blanco y negro sumando todos los canales
colour=(r+g+b)
im.putpixel((x,y),(colour,colour,colour))
procesado=im.point(lambda i: i)
procesado.save(archivo+"-blanconegro.jpg")
print "Procesamiento terminado."
#Recibimos el argumento
if __name__=="__main__":
if len(sys.argv) >1:
print "Imagen recibida: " + sys.argv[-1]
gris(sys.argv[-1])
negativo(sys.argv[-1])
blanconegro(sys.argv[-1])
else:
print "Debe ingresar como parametro el nombre de la imagen!!!"
|