jueves, 28 de febrero de 2013

Laboratorio de visión computacional diagonales

Buenas compañeros y gente blogera que nos visita.

En esta ocasión mostraremos una variante del programa anterior, ahora en este apartado les enseñaremos distinguir entre horizontales, verticales y diagonales, claro es difícil que salga exactamente como queremos y en estos ejemplos se trata de hacer de la mejor manera que se pueda.


Como sabemos anteriormente se utilizan unas ecuaciones para calcular si son líneas o no, y utilizando frecuencias para ir aceptando los diferentes puntos.


Les ponemos nuevamente las siguientes ecuaciones del anterior post para sacar los ángulos y rho

Ahora aquí si nos importara realmente el valor de theta ya que theta nos dirá si es vertical, horizontal u diagonal.

Posteriormente de calcular theta, con los dos diferentes gradientes existen varias posibilidades si pasa correctamente este puede tener varios valores:

  • theta = 0,  Horizontal= 0 grados.
  • theta = pi/2, Vertical  = 90 grados.
  • theta = pi, Horizontal = 180 grados.
  • theta = pi/4,  Diagonal = 45 grados.
  • theta = otro valor.

Los valores que a nosotros realmente nos importa son los que tienen valor predefinido ya que nos indicaran exactamente si son horizontal, vertical o diagonal.

Con respecto a otro valor este puede ser acomodado utilizando diversos umbrales para categorizarlos como una linea inclinada de cierto ángulo.


Aquí el código que hace parte de esto:
Termina

Posteriormente solo agregamos al final del código que si theta tiene cierto valor se pinte de un color distinto para cada una de las orientaciones.

Aquí el código:
termina


Para finalizar les mostramos unas pequeñas imagenes probando el código

Primero identificamos verticales, aunque en este ejemplo no son verticales a 90 grados si no con variaciones de ángulos.

 Aquí se identifica la diagonal de medio y al parecer también las líneas inclinadas, cabe de descatar que las lineas inclinadas y diagonales no es mas que la combinacion tanto líneas de 'x' e 'y.'





Aquí mostrando todas las lineas pero no funciona tan bien como se espera ya que el color para la horizontal tambien se pone  algunas partes de la diagonal  ya que, como se menciona arriba las diagonales tienen 'x' e 'y'.

Aquí la imagen:


Y para finalizar aquí otra imagen identificando las diferentes diagonales:






 Termina


Nuevamente este programa es parecido al anterior y basado en gran medida del código de la doctora Satu Elisa Scheaffer
Aquí el código completo nuevamente

termina

Espero que les haya gustado hasta la próxima..

1 comentario: