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:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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() | |
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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() | |
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.
Repositorio: https://github.com/Sergiohdz/VisionComputacional
1 comentario:
Quedó bastante decente en lab 2 de la parte obligatoria. 8 pts.
Publicar un comentario