Filtros de Imagenes con Python usando PIL
from sys import argv
from PIL import Image
op = argv[1]
def c_i():
im = Image.open("h.jpg")
rgb = im.convert('RGB')
i_p = im.load()
gris(im, i_p, im.size)
binar(None, im, rgb)
tono()
#########Escala de Grises######################
def gris(im, pixeles, size):
x, y = size
for i in range(x):
for j in range(y):
(r, g, b) = pixeles[i, j]
npix = (r + g + b)/3
pixeles[i, j]= (npix, npix, npix)
#im.show()
im.save('escaladegrises.png', 'PNG')
################################################
#########Binarizacion###########################
def binar(umbral, im, rgb):
if(umbral == None): umbral = 122
for i in range(im.size[0]):
for j in range(im.size[1]):
r = rgb.getpixel((i, j))[0]
g = rgb.getpixel((i, j))[1]
b = rgb.getpixel((i, j))[2]
media = (r+g+b)/3
pixel = tuple([media, media, media])
im.putpixel((i, j), pixel)
if media > umbral: media = 255
else: media = 0
pixel = tuple([media, media, media])
im.putpixel((i, j), pixel)
#im.show()
im.save('binario.png', 'PNG')
#################################################
###########Tonos#################################
def tono():
im = Image.open("h.jpg")
rgb = im.convert('RGB')
i_p = im.load()
#op = "r"
for i in range(im.size[0]):
for j in range(im.size[1]):
(r, g, b) = i_p[i, j]
if (op=="r"):
i_p[i,j] = (r, 0, 0)
#im.save('rojo.png', 'PNG')
if (op=="g"):
i_p[i,j] = (0, g, 0)
if (op=="b"):
i_p[i,j] = (0, 0, b)
if (op=="r"):
im.save('rojo.png', 'PNG')
if (op=="g"):
im.save('verde.png', 'PNG')
if (op=="b"):
im.save('azul.png', 'PNG')
#im.save('tono.png', 'PNG')
##################################################
c_i()
|
Normal |
|
Escala de Grises |
|
Binarizacion |
|
Tono Azul |
|
Tono Rojo |
|
Tono Verde |
No hay comentarios:
Publicar un comentario