Para realizar esto utilice la siguiente imagen
Este es el código del filtro mediano:
****
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
#----------------------------------------------------# | |
def filtro_esquinas(img,ancho,alto): | |
#pic = Image.open('eg.jpg') | |
pixeles = img.load() | |
for i in range(ancho): | |
for j in range(alto): | |
l = [] | |
(r,g,b) = img.getpixel((i,j)) | |
try: | |
if (pixeles[i+1,j]): #derecha | |
p = pixeles[i+1,j][0] | |
l.append((p)) | |
except: | |
pass | |
try: #Izq | |
if(pixeles[i-1,j]): | |
p = pixeles[i-1,j][0] | |
l.append((p)) | |
except: | |
pass | |
try: #arriba | |
if(pixeles[i,j+1]): | |
p = pixeles[i,j+1][0] | |
l.append((p)) | |
except: | |
pass | |
try:#abajo | |
if(pixeles[i,j-1]): | |
p = pixeles[i,j-1][0] | |
l.append((p)) | |
except: | |
pass | |
try:#arriba der | |
if(pixeles[i+1,j+1]): | |
p =pixeles[i+1,j+1][0] | |
l.append((p)) | |
except: | |
pass | |
try:#arriba izq | |
if(pixeles[i-1,j+1]): | |
p =pixeles[i-1,j+1][0] | |
l.append((p)) | |
except: | |
pass | |
try: #abajo izq | |
if(pixeles[i+1,j-1]): | |
p =pixeles[i+1,j-1][0] | |
l.append((p)) | |
except: | |
pass | |
try: #abajo der | |
if(pixeles[i-1,j-1]): | |
p =pixeles[i-1,j-1][0] | |
l.append((p)) | |
except: | |
pass | |
l.sort() | |
print l | |
med = int(np.median(l)) | |
print med | |
pixeles[i,j] = (med,med,med) | |
#img.save("filtrado.jpg") | |
return img | |
#---------------------------------------------------# |
![]() |
Imagen Filtrada |
****
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
#---------------------------------------------# | |
def dif_esq(img,img2,ancho,alto): | |
pic = Image.open('eg.png') | |
pix = pic.load() | |
pix2 = img2.load() | |
for i in range(ancho): | |
for j in range(alto): | |
(r,g,b)=img.getpixel((i,j)) | |
(r,g,b) = img2.getpixel((i,j)) | |
nw = pix2[i,j][0] | |
origi=pix[i,j][0] | |
dif =(nw-origi) | |
pix[i,j] = (dif,dif,dif) | |
return pic | |
#---------------------------------------------# |
Y esto es lo obtenido de la diferencia, ademas le agregue convolucion a la imagen para poder apreciar mejor las esquinas
Y esta es otra imagen en donde aplique el código
Y eso es todo por el momento, aquí dejo la liga a mi repositorio donde se encuentra el código completo.
La explicación y los ejemplos pudieran haber sido mejorados. 6 pts.
ResponderEliminar