jueves, 2 de mayo de 2013

Lab. Poligonos

La tarea consiste en poder detectar polígonos en una imagen, los polígonos son figuras que consiste en una cantidad finita de segmentos rectos que se unen y crean una figura.

Para lograr esto se realizan varios procesos en la imagen como es aplicar "bfs" para detectar las diferentes formas lo cual se a utilizado en varias ocasiones

después de realizar estos procesos se verifican los píxeles que conforman la figura para checar que sigan con  la misma pendiente para sacar con esto las rectas de la misma para comprobar si es un polígono o no.

Código:





Aunque tuve algunos problemas no funciono bien mi programa... :(


Mi repositorio:

jueves, 25 de abril de 2013

Lab. Detección de agujeros

Para esta entrada de laboratorio trabajaremos con la detección de agujeros mediante histogramas.

Para lograr esto, utilizando los histogramas se busca la intensidad de los colores del píxel en cada fila o columna de la imagen para buscar agujeros.

Es posible obtener el histograma de la mayoría de las imágenes y podemos realizar un histograma de cada uno de los colores, para calcular los niveles de iluminación, por lo que un agujero o un objeto causa una variación en la iluminación de la imagen.

Código:  


Imágenes:  

Con un solo agujero:





Con varios agujeros:






Código completo:






jueves, 18 de abril de 2013

Lab. Relleno de elipses

Con base a la entrada anterior de detección de elipses, con lo cual para esta entrada intentaremos rellenar los elipses detectados de algún color.

Las actividades con las que consta es entrada son:
  • Identificar cada círculo o elipse 
  • Rellenar con un color cualquiera 
  • Listado de áreas de las figuras y el porcentaje de la imagen 

En la entrada anterior se explica todo acerca de la detección de elipses.

Código:  


Este es el código que utilice para detectar las formas.
Código para mostrar los porcentajes de los elipses.

Ejemplos:











lunes, 15 de abril de 2013

Tarea 5: Detección de elipses

Para esta tarea realizaremos la detección de elipses en una imagen.

Para realizar esto nos basamos en el método que utiliza líneas tangentes que se encuentran en las líneas de contorno del elipse con esto se puede calcular la línea que pasa por el centro de la elipse. Para implementar esto es necesario realizar ciertos pasos antes de poder detectar los elipses en la imagen.



Lo primero es detectar los bordes de la imagen que se ha realizado en actividades anteriores

Así se detectan los bordes de la figura más fácil



Después se le aplica un filtro en los bordes para eliminar el ruido.

Al obtener este filtro se realizan las iteraciones para sacar el centro del elipse, para realizar esto es necesario saber en qué área trabajaremos por lo cual empieza a tomar pares de puntos aleatorios para sacar su punto medio y tomarlo como voto. Y sacar un promedio de los votos para determinar si es un elipse o no.

Para sacar la pendiente utilizamos los gradientes Gy y Gque son la variación de los píxeles y la inclinación de dicha pendiente. 

m=GyGx

Después se calcula el punto medio en donde se cruzan las rectas

Después se calcula el punto medio donde entre los píxeles

Y por último se calculan los tamaños de los elipses utilizando los píxeles bordes y buscando píxeles horizontales y verticales para encontrar las magnitudes del rectángulo que rodea dicho elipse

Código: 

jueves, 7 de marzo de 2013

Laboratorio 5

Detección de círculos de diferente radio 

Para esta semana se trabajara con la detección de círculos de radios diferentes, ya que en el post anterior se publico la detección de círculos con radios iguales.

Las ecuaciones para las cuales se pueden representar un círculo las cuales se mostraron el post anterior son las siguientes:



Donde "a" y "b" son son el centro y "x" y "y" son cualquier punto en la circunferencia.



Esto funciona aplicando un filtro de borde que ya teníamos y se dibuja un círculo con el radio elegido como entrada esto genera diferentes imágenes con diferentes radios dejando las áreas en blanco.


Imagen de prueba:


Código:



Imágenes obtenidas: 


Aunque el resultado no fue el que se esperaba al 100% 

lunes, 4 de marzo de 2013

Tarea 4

Detección de círculos 



Para esta ocasión implementaremos un programa que pueda detectar los centros de un círculo, esto es similar al reconocimiento de las líneas de la entrega anterior, pero con fórmulas diferentes.

Las ecuaciones para las cuales se pueden representar un círculo son las siguientes:



Donde "a" y "b" son son el centro y "x" y "y" son cualquier punto en la circunferencia.

Para poder calcular los ángulos se vuelve a utilizar los gradientes que ya habíamos calculado con anterioridad.
  • Para el coseno de ángulo se realiza gx / g
  • Para el seno del ángulo se realiza gy / g

Teniendo como resultado si es un círculo o no, obteniendo el centro de la imagen.

Para esto utilizamos círculos con el mismo radio ya conocido

Imagen de prueba:



Código:

Imágenes de salida:



Aunque los resultados no fueron los esperados se sigue trabajando en ello. 

Mi repositorio