Paso 1:
La imagen muestra el resultado de todas las medidas: calibración, a través de la detección, binarizing y ribete, transformación de perspectiva y comparando con una imagen de referencia.
Detección del marcador y mantener el enfoque mientras se mueve, realiza seguimiento de color liso. Es 50 x más rápido que la rutina de interpretación completo. 'caja de openCV' se utiliza para obtener una más precisa centroide (contornos a veces son difíciles cuando las condiciones de luz son un poco sluggy). Un recuadro también produce el ancho del marcador, que se utiliza para mantener el enfoque. En la segunda imagen se muestra la diferencia por una línea roja para los contornos que encuentra y una línea verde que representa el cuadro delimitador.
La rutina de la gama utiliza un valor constante para multiplicar el ancho por. La constante se determina en un rango conocido y dado que todos los marcadores tienen el mismo tamaño, el ancho en píxeles puede ser utilizado para que van a través de la imagen de la cámara. Que van no es necesario ajustar la posición y dirección, pero puede ser utilizado para mantener la distancia. (Así: más diversión).
La rutina de Heads-up display también muestra las coordenadas del centro. También solo por diversión (aunque quién sabe)
La secuencia de comandos utiliza una rutina de tiempo de espera para pitones 'time.sleep ()' es confiable sólo en intervalos muy pequeños y precisos tiempos de espera son necesarios para permitir a vueltas exactas. Imágenes se tomó como variable global (ahorra un montón de escribir y un poco pequeño de memoria)
Se ajustan las lecturas mientras se mueve por tiempos de espera. La rutina produce lecturas de más de un centenar en un par de segundos, creando una sobrecarga del servidor Web y memoria de Pi
Después de comparar la muestra el guión obliga a una espera para la última imagen conseguir el siguiente marcador en la memoria. Por último la rutina de detección completo se utiliza para comparar la muestra con las imágenes de referencia. Esta rutina detecta el rectángulo interior blanco, que se muestra en la tercera imagen, un rectángulo azul.
Los pasos son muy sencillos: encontrar el menor contorno rectangular, inclínela, ajustar perspectiva por deformación, lo binarize y comparar con las imágenes de referencia en el disco.
La secuencia de comandos puede ampliarse fácilmente con todo tipo de rutinas, como una rutina de la siguiente línea. La rutina de evasión (rotura cuando se encuentra un obstáculo mientras se mueve hacia un marcador de la emergencia) aún tiene que ser rellenado.
Un buen ejemplo de uso de seguimiento de objetos por el color en código puede encontrarse en:
http://www.roborealm.com/Tutorial/color_object_tracking_2/slide010.phpVery
buenas instrucciones sobre la detección de objetos y color en Python y openCV pueden encontrarse en el sitio de Adrian Rosebrock en: