Beruflich Dokumente
Kultur Dokumente
El último se considera
uno.
De los mejores métodos para obtener campos de flujo denso. Veamos un ejemplo
de uso
esto para encontrar vectores de movimiento en video (la versión de Lucas-Kanade
es el tema de la próxima
sección).
Intenta ejecutar el siguiente script.
Este ejemplo capturará imágenes de una cámara web y llamará a la estimación del flujo
óptico. en cada par de imágenes consecutivas. Los vectores de flujo de movimiento se
almacenan en el canal de dos canales. flujo de imagen devuelto por
calcOpticalFlowFarneback (). Además de lo anterior cuadro y el cuadro actual, esta
función toma una secuencia de parámetros. Mira Ponlos en la documentación si te
interesa. La función auxiliar draw_flow () traza los vectores de movimiento en puntos de
muestra regularmente en la imagen. Utiliza el OpenCV Las funciones de dibujo de línea ()
y círculo () y el paso variable controlan el espaciado de Las muestras de flujo. El resultado
puede parecerse a las capturas de pantalla en la Figura 10.5. Aquí el Las posiciones de
las muestras de flujo se muestran como una cuadrícula de círculos verdes y los vectores
de flujo. con líneas muestran cómo se mueve cada punto de muestra.
El algoritmo de Lucas-Kanade
El seguimiento es el proceso de seguimiento de objetos a través de una secuencia de
imágenes o video. La forma más básica de seguimiento es seguir los puntos de interés,
como las esquinas. Un famoso El algoritmo para esto es el algoritmo de seguimiento de
Lucas-Kanade, que utiliza una óptica dispersa. algoritmo de flujo. El seguimiento de
Lucas-Kanade se puede aplicar a cualquier tipo de funciones, pero generalmente hace
uso de puntos de esquina similares a los puntos de esquina de Harris en la Sección 2.1.
La función goodFeaturesToTrack () detecta esquinas según un algoritmo de Shi y Tomasi
[33] donde las esquinas son puntos con dos grandes valores propios del tensor de
estructura (Harris matriz) ecuación (2.2) y donde el valor propio más pequeño está por
encima de un umbral. La ecuación de flujo óptico está sub-determinada (lo que significa
que hay demasiados incógnitas por ecuación) si se considera por píxel. Suponiendo que
los píxeles vecinos tienen el mismo movimiento, es posible apilar muchas de estas
ecuaciones
Ahora tenemos un completo sistema de seguimiento autónomo que utiliza funciones OpenCV.
Uso del rastreador
Vamos a unirlo todo usando esta clase de rastreador en un seguimiento real guión. El siguiente
script inicializará un objeto de seguimiento, detectará y rastreará Señala a través de la secuencia y
dibuja el resultado.
El dibujo es un cuadro a la vez y muestra los puntos seguidos actualmente. Prensado cualquier
tecla se moverá a la siguiente imagen en la secuencia. Las ventanas de figuras resultantes. para
las primeras cuatro imágenes de la secuencia del corredor de Oxford (una de las vistas múltiples
de Oxford conjuntos de datos disponibles en http://www.robots.ox.ac.uk/~vgg/data/data-
mview.html) como en la figura 10.6.
Usando generadores
Agregue el siguiente método a la clase LKTracker
Esto crea un generador que facilita el paso a través de una secuencia y obtener pistas y las
imágenes como matrices RGB para que sea fácil trazar el resultado. Para usarlo en la secuencia
clásica del "dinosaurio" de Oxford (de la misma página de dataset de múltiples vistas que la
corredor arriba) y trazar los puntos y sus pistas, el código se ve así:
Este generador hace que sea realmente fácil de usar la clase de rastreador y oculta
completamente la Funciones OpenCV del usuario. El ejemplo genera una trama como la
que se muestra en Figura 10.7 y la parte inferior derecha de la Figura 10.6.
Pintando
La reconstrucción de partes perdidas o deterioradas de las imágenes se llama
pintura. Esta
cubre ambos algoritmos para recuperar partes perdidas o dañadas de datos de
imagen para restauración
fines, así como la eliminación de ojos rojos u objetos en aplicaciones de edición de
fotos. Típicamente
una región de la imagen está marcada como "corrupta" y se debe rellenar con los
datos
Del resto de la imagen.
Pruebe el siguiente comando:
Esto abrirá una ventana interactiva donde puede dibujar regiones para pintar. los los
resultados se muestran en una ventana separada. Un ejemplo se muestra en la Figura 10.8.
Se abrirá una ventana interactiva donde podrá dibujar las regiones de semilla que desee.
El algoritmo para utilizar como entrada. Los resultados se muestran en una segunda
ventana con colores. representando regiones superpuestas en una versión en escala de
grises de la imagen de entrada. Detección de línea con una transformada de Hough. La
transformada de Hough (http://en.wikipedia.org/wiki/Hough_transform) es un método Para
encontrar formas en imágenes. Funciona mediante un procedimiento de votación en el
parámetro. Espacio de las formas. El uso más común es encontrar estructuras de líneas en
imágenes. En eso Los bordes del caso y los segmentos de línea se pueden agrupar por
ellos votando por el mismo Parámetros de línea en el espacio de parámetros 2D de líneas.
El ejemplo de OpenCV detecta líneas utilizando este enfoque2. Pruebe el siguiente
comando:
Esto da dos ventanas como las que se muestran en la Figura 10.10. Una ventana muestra
el imagen de origen en escala de grises, la otra muestra el mapa de borde utilizado junto
con las líneas Detectado como aquellos con más votos en el espacio de parámetros. Tenga
en cuenta que las líneas son siempre infinito, si desea encontrar los puntos finales de los
segmentos de línea en la imagen que puede usar El mapa de borde para tratar de
encontrarlos.