miércoles, 20 de febrero de 2013

Laboratorio 3


Para esta entrega de laboratorio se nos pidió obtener Convex Hull de una imagen.

Para la realización de esto fue necesario usar el algoritmo utilizado en la Tarea 2:


Además se necesitaban 2 imágenes con fondo negro y con alguna figura con líneas blancas.




Utilice el algoritmo de Jarvis march el cual se inicia en algún punto extremo del contorno, y en cada paso se prueba cada punto de los puntos y se encuentra cual hace la vuelta más larga hacia la derecha.





Código:

TURN_LEFT, TURN_RIGHT, TURN_NONE = (1, -1, 0)
def turn(x, y, z):
return cmp((y[0] - x[0])*(z[1] - x[1]) - (z[0] - x[0])*(y[1] - x[1]), 0)
def convex(cor):
convex_hull = [min(cor)]
ancho, largo = im.size
pix = im.load()
for i in range(len(cor)):
q = cor[0]
for j in range(len(cor)):
t = turn(cor[j], convex[i], q)
if q == convex[i] or t == TURN_LEFT :
q = cor[j]
convex.append(q)
if q == convexl[0]:
break
return convex
def conve(im):
im = Image.open("ejem1.jpg")
pix = im.load()
hulls = []
for i in range(ancho):
for j in range(largo):
if pix[i, j] == (255, 255, 255):
inicio, arr= bfs(im, (i, j), (255, 0, 0))
hulls.append(con(ver))
for hull in hulls:
for cor in hull:
pix[cor] = (0, 255, 0)
im.save("conv.jpg")
return hulls
imagen=pygame.image.load("conv.jpg")
ventana.blit(imagen,(0,0))
pygame.display.update()
view raw convhull.py hosted with ❤ by GitHub


Resultado:






2 comentarios:

Elisa dijo...

4 pts lab 3

idysihnat dijo...

The Casinos of Las Vegas - Mapyro
Best Casino in Las Vegas, NV · The Buffet 포천 출장안마 at 화성 출장샵 Jardin · The Mirage · The Grand Buffet at The Wynn · The Palazzo 성남 출장안마 · The Buffet at Palazzo · 남양주 출장샵 The Buffet at 충청북도 출장안마

Publicar un comentario