martes, 23 de abril de 2013

Detección de agujeros


Para esta tarea se nos pidió detectar agujeros en una imagen.
Los agujeros que se detecten se deben marcar con un borde morado oscuro y un relleno morado claro.

• Un tono ligeramente diferente en cada agujero.
• Se marca el centro de cada agujero con un punto amarillo.
• Al centro de cada agujero se agrega una etiqueta del ID del agujero.
• El programa imprime un listado que indica para cada ID el tamaño del
agujero (como porcentajes del tamaño de la imágen).
• Publicación en el blog siguiendo las instrucciones de siempre.




Código:

def ag_hist():
linx = []
liny = []
sumx = []
sumy = []
width, height = imagen.size
total = width * height
pixels1 = imagen.load()
addsx = 0
for i in range(height):
addsx = 0
for j in range(width):
addsx = addsx + pixels1[j, i][0]
sumx.append(addsx)
maximox = max(sumx)
minimox = min(sumx)
addsy = 0
for i in range(width):
addsy = 0
for j in range(height):
draw = ImageDraw.Draw(imagen)
addsy = addsy + pixels1[i, j][0]
sumy.append(addsy)
def obtenerMayor(histograma):
votos = dict()
for pos, val in histograma.iteritems():
if val in votos:
votos[val] += 1
else:
votos[val] = 1
e = sorted(votos.items(), key=itemgetter(1))
mayor = e[len(e)-1]
return mayor
def generaHistogramas(imagen):
pixeles = imagen.load()
x,y = imagen.size
imagen_nueva = Image.new("RGB", (x, y))
hx = dict()
hy = dict()
for j in range(y):
sumax = 0
for i in range(x):
p = pixeles[i,j]
prom = math.ceil(( p[0] +p[1] + p[2] ) / 3.0)
imagen_nueva.putpixel((i,j),(int(prom),int(prom),int(prom)))
if i in hy:
hy[i] += prom
else:
hy[i] = prom
sumax += prom
if j in hx:
hx[j] += sumax
else:
hx[j] = sumax
return hx, hy, imagen_nueva
view raw agujeros.py hosted with ❤ by GitHub










1 comentario:

Elisa dijo...

Avance parcial 1 pt.

Publicar un comentario