En esta semana tuvimos que realizar la actividad de detectar agujeros, para poder realizar esto reutilice código que tenia anteriormente y el procedimiento fue el siguiente:
1-Primero se convierte la imagen con la que vamos a trabajar a escala de grises:
2- Se realiza una sumatoria de las filas y columnas de la imagen.
El código para obtener la imagen a escala de grises y sacar los histogramas es el siguiente:
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 escala_grises(self): | |
inicio = time() | |
image = Image.open(self.o_imagen) | |
pixels = image.load() | |
ancho,alto = image.size | |
print 'ancho',ancho | |
print 'alto',alto | |
histograma_horizontal=zeros(ancho,float) | |
histograma_vertical=zeros(alto,float) | |
self.matriz = numpy.empty((ancho, alto)) | |
for i in range(ancho): | |
for j in range(alto): | |
(r,g,b) = image.getpixel((i,j)) | |
escala = (r+g+b)/3 | |
histograma_horizontal[i] +=escala | |
histograma_vertical[j] +=escala | |
pixels[i,j] = (escala,escala,escala) | |
self.matriz[i,j] = int(escala) | |
fin = time() | |
tiempo_t = fin - inicio | |
# print "Tiempo que tardo en ejecutarse escala de grises = "+str(tiempo_t)+" segundos" | |
df = image.save('escala.png') | |
return image,histograma_horizontal,histograma_vertical |
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 minimos_locales(self,vector): | |
minimos=list() | |
medio=sum(vector)/len(vector) | |
print 'medio',medio | |
for i in range(1,len(vector)-1): | |
if vector[i-1]>vector[i]<vector[i+1]: | |
if vector[i]<medio: | |
minimos.append(i) |
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 intersecciones(self,corx,cory): | |
inter=[] | |
for i in corx: | |
if i in cory: | |
inter.append(i) | |
return inter |
6-Ponemos el centro del agujero y el numero de id en la imagen.
Pruebas
Imagen utilizada (Imagen tomada de internet):
Imagen de Salida:
Histograma d ela imagen:
Pruueba con imagen tomada por mi:
Ortografía... 5 pts.
ResponderEliminar