Para este laboratorio se encargó detectar las esquinas de una figura utilizando un filtro mediano.
Utilizaré las siguientes imágenes para comprobar:
Lo primero que hice fue obtener la versión de filtro mediano de las imágenes, para eso seleccioné un pixel y sus 8 vecinos y acomodé los valores de los pixeles y tomé el medio. aplicándolo al pixel seleccionado. Después le resté a la imagen en escala de grises la versión con el filtro y obtuve las esquinas algo difuminadas, así que la convertí a blanco y negro para resaltarlas y dilaté los pixeles.
Finalmente saqué las posiciones de las esquinas mediante bfs a cualquier cosa que no fuera de color negro o el color que sería utilizado en bfs.
Como las figuras son polígonos regulares, pude sacar su centro de masa con tan solo las posiciones de sus esquinas y de esa manera verificar el ángulo de cada una. El ángulo me ayuda a saber cual esquina viene primero y de esa manera poder ordenarlos de tal forma que se puedan unir con una línea.
El resultado final es el siguiente:
Como se puede ver, no son resultados muy fieles a la versión original, esto se debe a variaciones que hay en los pixeles que causan esquinas falsas, cosas como pixelización, figuras con bordes gruesos, colores muy oscuros como el borde, etc.
El código es el siguiente:
Ordenando con los ángulos únicamente sirve cuando la figura presenta ciertas regularidades. 9 pts.
ResponderBorrar