miércoles, 13 de febrero de 2013

Laboratorio 2


Para esta entrega se nos pidió generar Ruido sal y pimienta en una imagen y después eliminarla.
Al generar el ruido sal y pimienta, hay que tener en cuenta la intensidad (que tanto se pone en la imagen) y la polarización (que tan negros y blancos son los puntos).
Y eliminar ruido sal y pimienta, esto con alguna combinación de filtrado/umbrales.

La imagen que utilice fue la siguiente:




Generar ruido sal y pimienta.
Esto lo realice con 2 variables random que serán las 2 coordenadas de la imagen (píxel) x,y. Y otra variable para generar un número aleatorio entre 0 y 255 para tener diferentes tonos de blancos/negros (polarización).


Código:

#Ruido sal y pimienta
polarizacion = 30 # Que tan Negros/Blancos seran los puntos / Entre mayor sea el numero seran mas negros
intensidad = 10 # % de pixeles
total=((900*603)/100)*intensidad
im = Image.open("carro.jpg")
pix = im.load()
for i in range(0,total):
x = random.randint(0, 900-1)
y = random.randint(0, 603-1)
syp=random.randint(0, 255-polarizacion)
pix[x,y] =(syp,syp,syp)
im.save('salypimienta.jpg')
imagen=pygame.image.load("salypimienta.jpg")
ventana.blit(imagen,(0,0))
pygame.display.update()
view raw ruido.py hosted with ❤ by GitHub


Támbien se puede modificar la intensidad y polarización del ruido sal y pimienta, aquí muestro otros ejemplos de la imagen.

Intensidad 15% Polarización 0-245


Intensidad 30% Polarización 80-255


Intensidad 60% Polarización 155-255


Una vez generado el ruido, se realiza la eliminación/disminución de esté.
Esto lo realice sacando un promedio de los vecinos del píxel que se le haya aplicado ruido sal y pimienta.




#Eliminacion de ruido sal y pimienta
im = Image.open("salypimienta.jpg")
pix = im.load()
for x in range(2,900-2): #Ancho
for y in range(2,603-2): #Largo
r=0
(r,g,b) = pix[x,y]
if (pix[x,y]==(syp,syp,syp)):
r+=pix[x+1,y][0]
r+=pix[x-1,y][0]
r+=pix[x,y+1][0]
r+=pix[x,y-1][0]
var=r/4
pix[x,y]=(var,var,var)
im.save('eliminacion.jpg')
imagen=pygame.image.load("eliminacion.jpg")
ventana.blit(imagen,(0,0))
pygame.display.update()
view raw eliminacion.py hosted with ❤ by GitHub

Después se realiza un filtro para disminuir un poco más el ruido sal y pimienta en la imagen.






Aquí otro ejemplo de la generación/eliminación del ruido sal y pimienta.







1 comentario:

Elisa dijo...

Quedó bastante decente en lab 2 de la parte obligatoria. 8 pts.

Publicar un comentario