Capítulo 5. Percepciónbibing.us.es/proyectos/abreproy/70314/fichero... · Modelado, Control y...
Transcript of Capítulo 5. Percepciónbibing.us.es/proyectos/abreproy/70314/fichero... · Modelado, Control y...
Capítulo 5. Percepción
Pág. 79
5.1 Introducción
Actualmente, la principal misión de los UAVs es la monitorización, es decir, la observación en
sentido amplio de un evento. Esta observación puede realizarse de múltiples formas,
empleado diferentes sensores en función de la entidad a medir, pero la más extendida es el
empleo de cámaras digitales, tanto de espectro visible como infrarrojo.
Las cámaras disponen de diferentes prestaciones tales como resolución, número de canales,
espectro… Y pueden ir montadas fijas al fuselaje o, en el caso más avanzado, sobre un sistema
estabilizador conocido como gimbal.
5.2 Cámaras digitales
Son dispositivos capaces de capturar la radiación electromagnética emitida o reflejada por los
cuerpos en cierto rango del espectro.
En principio de funcionamiento de una cámara se basa en emplear una lente que recoja la
radiación incidente de forma que los rayos se desvíen convergiendo en un punto denominado
foco y posteriormente incidiendo en un sensor. El sensor recoge una información
bidimensional discreta que se almacena en una estructura matricial donde cada elemento
posee en valor numérico del nivel de la medida, que puede ser de un solo canal (escala de
grises) o de tres canales (RGB o HSV).
Recientemente ha aparecido en el mercado cámaras capaces de captar no sólo proyección
bidimensional de la realidad, sino el campo lumínico asociado a una escena (Lytro s.f.). Este
nuevo tipo de sensores permite captar más información permitiendo, por ejemplo, realizar
enfoques selectivos a posteriori.
En función de la cobertura del espectro, podemos distinguir entre cámaras de espectro visible
(0.37-067 )e infrarrojas (0.75-1000 ). A su vez, dentro de estas últimas existen varias
divisiones en función de la frecuencia.
Se considera radiación infrarroja a la radiación electromagnética comprendida entre las
longitudes de onda de. Dentro de este rango se distingue entre infrarrojo:
- Cercano 0.75-3
- Medio 3-6
- Lejano 6-15
- Extremo 15-1000
Capítulo 5. Percepción
Modelado, Control y Percepción en Sistemas Aéreos Autónomos
Pág. 80
Fig. 5-1. Ventanas de emisión electromagnética en la atmósfera
En función de la aplicación particular y de otras consideraciones como coste, se elegirá una u
otra atendiendo a la idiosincrasia de cada uno (Fig. 5-2)
Fig. 5-2. Características de los diferentes rangos del espectro
La clasificación mostrada no debe llevar a pensar en opciones excluyentes. Si bien es cierto que
actualmente las cámaras existentes son de un tipo u otro, existen diferentes líneas que
estudian la fusión sensorial como forma de obtener la sinergia de los diferentes métodos
(Martínez de Dios 2005).
Capítulo 5. Percepción
Pág. 81
5.3 Rectificación de imágenes aéreas
5.3.1 Distorsiones en la imagen Las imágenes captadas por una cámara están sujetas a una serie de efectos que hacen que la
realidad no esté fielmente representada (Gonzáles Jiménez 1999). Estos efectos tienen,
principalmente, tres contribuciones:
- Distorsión de la lente: Debido a que los centros de las lentes no están perfectamente
alineados y a que existen pequeñas aberraciones en cada una de ellas, la imagen
captada distorsiona la realidad. Típicamente esta distorsión se descomponer en radial
y tangencial, siendo la primera la más importante y la que tienda a curvar las líneas
rectas.
Fig. 5-3. Distorsión radial
- Efecto de la perspectiva: debido a la conicidad de la perspectiva, líneas paralelas en la
realidad convergen a un punto de fuga en la imagen
- Efectos del relieve del terreno: la existencia de ondulaciones en la escena a plasmar,
produce que existan unos aparentes desplazamientos en la imagen de forma que los
puntos con mayor elevación aparecen más próximos a centro
Fig. 5-4. Desplazamiento del terreno
Modelado, Control y Percepción en Sistemas Aéreos Autónomos
Pág. 82
5.3.2 Ortorrectificación La ortorrectificación de una imagen es transforma la proyección de una fotografía en una vista
ortogonal del terreno eliminando la distorsión e inclinación de la lente y los efectos del relieve
del terreno. Una ortoimagen permite medir ángulos, distancias y superficies, siendo equialente
a un plano
Para eliminar los efectos anteriormente descritos, existen diferentes técnicas.
5.3.3 Algoritmos de ortorrectificación En general, existen dos aproximaciones al problema de la ortorrectificación: la paramétrica y la
no paramétrica.
La primera se basa en el conocimiento de unos parámetros internos de la cámara y su posición
y orientación. Por tanto, es independiente de la imagen y no requiere de ningún
procedimiento de identificación de puntos. Un modelo de la cámara es requerido.
La segunda busca sólo requiere de unos puntos de control sobre la imagen. De esta forma se
evita tener que modelar la cámara y sólo se depende de la imagen. Este método plantea el
problema de la elección de los puntos, que requiere ser capaz de identificar unos puntos en la
imagen tomada y su posición en la rectificada. En general, este proceso es no automatizable y,
para largos set de datos puede resultar muy tedioso.
A continuación (Review of Digital Image Orthorectification Techniques s.f.) se definen los
principales algoritmos de rectificación y se detallan sus expresiones. La nomenclatura seguida
es:
- (r,c) coordenadas de la imagen original
- (x,y) coordenadas de la imagen procesada
5.3.3.1 Rectificación polinómica
Es el método más simple. Consiste en definir una transformación en que cada pixel de la
imagen original se traslade, mediante una relación polinómica, a una imagen destino. Los
coeficientes de los polinomios se ajustan mediante una serie de puntos de control
Capítulo 5. Percepción
Pág. 83
denominados GCPs. Los GCPs son puntos cuya posición en la imagen rectificada es conocida y
que pueden identificarse fácilmente en la imagen original.
Este procedimiento sólo elimina el efecto de la perspectiva, no el de la distorsión de la lente.
∑∑
∑∑
Un elemento crítico en la rectificación polinómica es el orden del polinomio. Si son demasiado
bajos la rectificación no será suficientemente precisa, si es demasiado alto, la presencia de
oscilaciones ficticias desvirtúala solución.
5.3.3.2 Rectificación proyectiva
Otro planteamiento es mediante una transformación geométrica. Esta transformación
requiere de ocho parámetros para llevarse a cabo. Este método es muy útil para imágenes
aéreas de terrenos plano y para fachadas de edificios.
5.3.3.3 Rectificación basada en modelo del sensor
Modelos de los sensores son necesarios para establecer una relación funcional entre los
espacios imagen y objeto. Existen dos tipos de modelos, físicos y generalizados.
Los primeros representan el proceso físico de captura de imágenes. Son modelos rigurosos
que suelen proporcionar una alta precisión (subpíxel). El ejemplo más sencillo de modelo
físico lo constituye la ecuación de colinearidad.
El empleo de modelos presenta algunas limitaciones. La primera de ellas es el aumento del
número de sensores disponibles, que requeriría diferentes modelos. Además, el empleo de
modelos complejos requiere un gasto computacional elevado, que puede ser prohibitivo en
aplicaciones en tiempo real.
Los segundos buscan responder a estos problemas empleando modelos estándar, no basados
en parámetros físicos. De esta forma se puede controlar tanto la complejidad del modelo
como la sencillez de modelado, que se reduce a una calibración.
5.3.3.4 Homografía
Una homografía es una aplicación entre planos en la que:
- A cada punto le corresponde otro punto
- A cada recta le corresponde otra recta
Modelado, Control y Percepción en Sistemas Aéreos Autónomos
Pág. 84
- Si un punto pertenece a una recta, su homólogo pertenece también a su recta
homóloga.
La homografía puede emplearse para rectificar imágenes bajo dos supuestos:
- El terreno es plano
- El plano al que se proyecta es paralelo a la superficie
Las homografías vienen dadas por una matriz H que transforma los puntos de un plano a otro.
Para su cálculo se dividen el proceso en una serie de efectos concatenados. Suponiendo una
rotación y una traslación, la expresión sería (Benítez Caballero 2007):
( )
Donde
- A es la matriz de calibración de la cámara,
- es la posición de la segunda vista de la escena tomada en el sistema de referencia de
la primera y
- n es un vector normal al plano de la escena en el sistema de referencia de la primera
vista
- es la inversa de la distancia de la primera vista hasta el punto de la escena
- R es la matriz de rotación
Con la homografía lo que se consigue es asignar el nivel de gris de un punto concreto de la
imagen original a el punto adecuado en la imagen rectificada.
5.3.4 Procedimiento escogido Dado el elevado número de imágenes a rectificar, el empleo de un sistema automatizable era
imprescindible. Además, puesto que los parámetros de orientación necesarios se obtienen
directamente de la aviónica habitual en una aeronave, esto no supone incremento alguno de
costo o carga. Por tanto, la elección fue el procedimiento de homografía.
Se escogió un modelo sencillo en que no se incluía la calibración de la cámara ni el efecto del
cambio del punto de referencia, es decir, la imagen se rectifica en cada imagen respecto a la
posición de la aeronave en ese instante, que es cambiante.
Así, la homografía se reduce a una simple rotación.
Empleando coordenadas homogéneas para trabajar con expresiones lineales se obtiene:
Donde es el ángulo de guiñada (yaw), el de cabeceo (pitch) y el de alabeo (roll)
El procedimiento a seguir es:
1- Cargar la imagen como una matriz
Capítulo 5. Percepción
Pág. 85
2- Para cada pixel (fila y columna) calcular
[
] [
]
Donde f y c son respectivamente la fila y la columna. Los subíndices rec y ori
hacen referencia a la imagen: original o rectificada. Nótese que se ha tomado
z=0 para los puntos de la imagen original y que la tercera componente de la
imagen rectificada carece de sentido físico, por lo que se ha representado
mediante un asterisco.
3- Para tener en cuenta el factor de escala, los índices de la imagen rectificada
serán (
).Puesto que los elementos de la matriz H están compuestos
de productos de funciones trigonométricas, estos índices serán en general
irracionales, lo cual, evidentemente, no es posible (la posición de un elemento
en una matriz viene dada por un número natural. Para solucionarlo se realizan
dos pasos:
Redondear a la parte entera los índices. Esto introduce errores del
orden del píxel
Trasladar todos los índices de forma que sean positivos
Fig. 5-5. Rotación y Traslación de los píxeles en la imagen rotada
5.3.5 Experimentos Para demostrar las capacidades de tratamiento de imágenes, se realizaron una serie de vuelos
para recoger imágenes. Estos experimentos fueron realizados por personal del departamento
de Aviónica de CATEC4.
4 El autor agradece a Antidio Viguria, Francisco Pérez y Carlos Albo el acceso a estos datos, así como las numerosas recomendaciones y comentarios sobre los experimentos.
Modelado, Control y Percepción en Sistemas Aéreos Autónomos
Pág. 86
5.3.5.1 Equipamiento
La plataforma empelada fue una réplica de radio control de la Pilatus Portus realizada por
Jamara
Fig. 5-6. Avioneta RC Pilatus empleado en los experimentos
En esta aeronave se montaron los equipos necesarios. Los más relevantes para la aplicación
son:
- IMU Xsens MTiG. La precisión de las medidas es de un grado para los ángulos de
alabeo y cabeceo y de dos grados para la guiñada (errores RMS).
- GPS
- Cámara de alta resolución Canon Power Shot G10. Proporciona imágenes en color de
hasta 8 Megapíxeles.
- Cámara IDS UI 2230-C. Imágenes en escala de grises a 640x480.
- PC104
Los vuelos se llevaron a cabo en la pista del club de aeromodelismo RC Saeta, en la Isla de
Cartuja, Sevilla.
De forma continua, se tomaron imágenes con la cámara de baja resolución. La frecuencia fue
de aproximadamente 9 Hz, dependiendo de la carga computacional del PC104.
Capítulo 5. Percepción
Pág. 87
Fig. 5-7. Electrónica embarcada en la aeronave
5.3.5.2 Características del vuelo
El vuelo se realizó en las proximidades de la pista, con una envolvente de vuelo
suficientemente amplia para poder proporcionar un amplio set de fotos con diferentes
condiciones. La altura máxima del vuelo fue de 300 m. Los ángulos de alabeo y cabeceo
máximo fueron de más de 60 y 30 grados respectivamente.
La orografía del terreno oscila entre 1 y 14 metros. Respecto a la altura de crucero, próxima a
los 300 m, la variación es pequeña, por lo que se puede realizar la hipótesis de escenas planas.
Fig. 5-8. IMU MTi-G de Xsens
Modelado, Control y Percepción en Sistemas Aéreos Autónomos
Pág. 88
5.3.5.3 Primer procesado de los datos
En vuelo, se generó online un fichero de texto que indicaba, para cada foto de baja resolución,
el instante de la toma, la posición (que también se incluyó en los metadatos) y la orientación.
Las fotos no eran transmitidas, sino que se almacenaban en una tarjeta de memoria.
Este primer pre-procesado permite, offline, conocer los ángulos que determinan la
homografía.
5.3.6 Resultados La Fig. 5-9 muestra una imagen frente a su correspondiente rectificada.
Fig. 5-9. Comparación entre imagen original y rectificada
Para testar la bondad de los resultados, se emplea como referencia imágenes ya rectificadas.
En concreto, por la gran disponibilidad y facilidad de acceso se emplea Google Earth. Sin
embargo, este sistema plantea un inconveniente: las imágenes no están actualizadas
(imágenes tomadas el 16 de agosto de 2007) y, debido a que la construcción de la pista es
reciente, esta no aparece en los planos. Además, otros elementos de referencia, como cultivos
o el río han podido cambiar significativamente.
Para solventar este problema se recurrió a integrar en Google Earth imágenes aéreas
rectificadas proporcionadas por la Junta de Andalucía (Consejo Superior Geográfico s.f.).
Capítulo 5. Percepción
Pág. 89
Fig. 5-10. Imagen del aeródromo con Google Earth
Fig. 5-11. Imagen del aeródromo con el mapa de Andalucía
Teniendo como referencia la pista, claramente identificable e invariante en el tiempo, se
analizan los resultados obtenidos.
El primer efecto de la homografía es la rotación las imágenes respecto a un sistema de
referencia común. En este, este sistema de referencia muestra el rumbo (es decir, al
orientación respecto al norte) y la altitud.
En la Fig. 5-11 puede verse como la pista tiene dirección noreste. Comparando con las
imágenes de la Fig. 5-12, que han sigo girada 90º por compacidad del documento, puede
comprobarse como, pese a que la orientación de la pista en las imágenes captadas varía, las
imágenes rectificadas si la conservan y coincide con la real.
Modelado, Control y Percepción en Sistemas Aéreos Autónomos
Pág. 90
Fig. 5-12. Cambio de orientación de las imágenes rectificadas
El segundo efecto es la deformación por perspectiva. Puede comprobarse en la Fig. 5-13 cómo
las áreas de las distintas parcelas, así como las longitudes de los aminos cambian. Así, por
ejemplo, mientras en la imagen original se observa que ambos caminos poseen una longitud
similar, en la imagen rectificada uno es del orden del doble que el otro. También puede
comprobarse como la contribución relativa de cada parcela cambia.
Capítulo 5. Percepción
Pág. 91
Fig. 5-13. Deformación de imágenes rectificadas
5.3.7 Implementación El tratamiento de las imágenes se implementó usan do el software Matlab. Si bien es cierto
que dicho programa consta de un Toolbox de procesamiento de imágenes, esto no fue
empleado por constar sólo de funciones generales.
Matlab proporciona un conjunto de herramientas que permiten centrarse en los algoritmos y
no tanto en la programación., facilitando las tareas de desarrollo.
Aunque en este caso el tiempo no es un elemento crítico puesto que la aplicación se ejecuta
offline, por cuestiones de manipulación práctica, para largos set de imágenes (en este caso
más de 2700), ha de intentar minimizar el tiempo.
En este trabajo se han intentado varias estrategias.
En primer elemento fue mostrar en pantalla el número de imágenes restantes y una predicción
del tiempo para la finalización del programa. Este método permite al usuario comprobar que el
script se está ejecutando correctamente a la vez que le permite dedicarse a otras tareas
mientras se realizan los cálculos.
La segunda consistió en emplear el compilador de Matlab mediante la función mcc. Sin
embargo, el ejecutable resultante requería de más tiempo que la ejecución desde Matlab, por
lo que se desecó esta alternativa.
El siguiente paso fue intentar reducir bucles y declarar las dimensiones de las matrices que
contienen las imágenes. Este último proceso consiguió una reducción muy significativa del
costo computacional, dividiéndolo por una facto de en torno a tres.
5.3.8 Generación de vídeos Una vez generado el conjunto de imágenes rectificadas, es necesario realizar un conjunto de
pruebas para comprobar la bondad de los resultados. Este procedimiento se simplifica mucho
Modelado, Control y Percepción en Sistemas Aéreos Autónomos
Pág. 92
con la generación de un vídeo, ay que permite visualizar dinámicamente cómo las fotos rotan y
se deforman para corregir los ángulos del avión.
En esta aplicación, aunque la frecuencia de capturas era pequeña (de unos 9 Hz), el vídeo es
bastante representativo e intuitivo del movimiento de la aeronave.
Asimismo, es interesante generar el vídeo de las imágenes originales tomadas durante el vuelo
para comparar las diferencias.
5.3.9 Segunda aproximación Tras estos primeros resultados se analizaron e identificaron las limitaciones:
- Pese a la eliminación de ciertos efectos deformantes, seguían existiendo otros, como
la deformación de la lente, que obligan a la calibración de la cámara.
- La implementación en Matlab presenta ciertas limitaciones requiere trabajar en un
sistema propietario y con herramientas poco depuradas para aplicaciones reales.
Teniendo esto en cuenta, se intentó profundizar más en los conceptos de la geometría
proyectiva desarrollando una aplicación más potente y más orientada a la aplicación práctica al
emplear lenguaje C/C++, librerías libres y abiertas e incluyendo la calibración de la cámara.
5.3.10 Open CV OpenCV es una biblioteca de visión por computador de código abierto escrita en C y C++. Está
disponible para Windows, Linux y Mac OS X y, actualmente se están desarrollando interfaces
para Python, Ruby, Matlab y otros lenguajes (Bradski 2008).
Open CV está diseñada dando gran importancia a la eficiencia computacional y enfocada a
aplicaciones en tiempo real.
Uno de los objetivos de OpenCV es proveer de una infraestructura básica sencilla que permita
a desarrolladores crear una gran variedad de sofisticadas aplicaciones de visión de forma
rápida.
La biblioteca contiene más de 500 funciones que cubre múltiples áreas del mundo de la Visión,
tales como inspección de piezas en procesos de fabricación, sanidad, seguridad, visión estéreo,
robótica…
5.3.11 Calibración de cámara El proceso de calibración consiste en transformar los puntos capturados por la cámara con
distorsión ( ) a otros sin distorsión, asociados a una lente perfecta ( ( ) .
Matemáticamente,
[ ] (
) [ ] [
(
)
(
) ]
Donde y son los parámetros de distorsión radial y tangencial respectivamente.
Capítulo 5. Percepción
Pág. 93
Para la calibración se empleó el Toolbox de Calibración para Matlab desarrollado por Jean-Yves
Bouguet del Instituto Tecnológico de California (CALTEC) (Bouguet 2004). Esta potente
herramienta permite realizar de forma sencilla el proceso de calibración a partir de un set de
imágenes de un patrón definido (típicamente, del tipo “tablero de ajedrez”).
El emplear Este Toolbox para la calibración y OpenCV para el programa principal no supone
ninguna inconsistencia. Si bien es cierto que OpenCV dispone de sus propias herramientas de
calibración, ha de tenerse en cuenta que la calibración es un proceso previo e independiente a
la aplicación que sólo ha de realizarse una vez (si no se modifican las lentes). Por tanto es
perfectamente posible realizar la calibración en Matlab, obtener los parámetros intrínsecos de
la cámara, introducirlos en el código del programa OpenCV y ejecutar la aplicación.
5.3.12 Algoritmo 0. Realizar ensayos en vuelo en que se toma un set de imágenes y asociarle a cada una
los valores de los ángulos de Euler del avión (orientación de de la aeronave respecto a
un sistema de referencia tierra plana).
1. Calibrar la cámara: paso previo a la ejecución del programa. A partir de un set de
fotografías de un patrón determinado, calcular los parámetros internos de la cámara
empleada en el punto uno.
2. Empleando los datos de la calibración corregir las distorsiones de las imágenes aéreas
3. Empleando los datos de orientación, rectificar las imágenes aéreas
5.3.13 Resultados
5.3.13.1 Calibración de la cámara
Para el proceso de calibración se tomaron una serie de fotografías del patrón desde diferentes
posiciones.
Fig. 5-14. Set de imágenes para calibrar
Modelado, Control y Percepción en Sistemas Aéreos Autónomos
Pág. 94
Una vez realizadas las fotos se ejecutó en Toolbox de calibración de Matlab y se cargaron las
imágenes creadas, descartando aquellas que se considerasen no válidas (imágenes
desenfocadas, movidas…). A continuación se definieron las características del patrón
(dimensiones de los cuadrados, número de ellos…) y, para cada imagen, se inició el
procedimiento semiautomático de detección de esquinas, en el cual el usuario ha de definir las
cuatro esquinas externas del patrón y las dimensiones de la ventana de búsqueda, de modo
que el programa es capaz de encontrar las esquinas internas del patrón.
Fig. 5-15. Esquinas externas y primera estimación de esquinas internas
Fig. 5-16. Tamaño de las ventanas para ajustar la posición de las esquinas internas
Una vez finalizado este proceso de reconocimiento se realiza la calibración de la cámara.
Múltiples resultados pueden obtenerse:
- Obtención de los valores numéricos de los parámetros intrínsecos de la cámara
Capítulo 5. Percepción
Pág. 95
o Longitud focal:
fc = [ 791.78362 791.34184 ] ± [ 4.76610 4.86652 ]
o Principal point:
cc = [ 513.54554 384.69314 ] ± [ 6.45186 5.15158 ]
o Distorsión:
kc = [ -0.35232 0.15191 -0.00027 0.00026 0.00000 ] ±
± [ 0.01542 0.04103 0.00136 0.00099 0.00000 ]
o Pixel error:
error = [ 0.56200 0.49747 ]
- Orientación de la cámara respecto al patrón en cada imagen introducida (o viceversa,
es decir, orientación del patrón respecto a la cámara suponiendo cámara fija)
Fig. 5-17. Posición y orientación calculada de cada imagen
- Modelos de distorsión radial, tangencial y total: los campos de distorsión obtenidos
pueden descomponerse en dos elementos: la tangencial (Fig. 5-18) y la radial (Fig.
5-19). Puesto que la primera es de orden 0.1 y la segunda es de orden 10, el campo de
distorsión total (Fig. 5-20), suma de ambos, es muy similar al de la distorsión radial.
Modelado, Control y Percepción en Sistemas Aéreos Autónomos
Pág. 96
Fig. 5-18. Distorsión Tangencial
Fig. 5-19. Distorsión radial
Capítulo 5. Percepción
Pág. 97
Fig. 5-20. Distorsión total
- Aplicación de la calibración obtenida para corregir las distorsiones de las imágenes de
muestra. Como puede apreciarse en la Fig. 5-21, existen claras distorsiones radiales,
por ejemplo en el borde de la mesa o en la borde inferior de la mesa. Gracias a la
calibración estas distorsiones, además de otras menos evidentes, son compensadas de
forma que la imagen represente más fielmente la realidad.
Fig. 5-21. Corrección de la distorsión de una imagen patrón
Modelado, Control y Percepción en Sistemas Aéreos Autónomos
Pág. 98
5.3.13.2 Rectificación de imágenes de vuelo
Fig. 5-22. Imágenes rectificadas obtenidas
Capítulo 5. Percepción
Pág. 99
5.3.14 Comparación con resultados obtenidos en Matlab Como ya se indicó en el inicio de esta memoria, este trabajo es una continuación del estudio
del campo del tratamiento de imágenes aéreas comenzado en la asignatura de Visión por
computador. Por tanto, es evidente el interés de comparar los resultados aquí expuestos con
los anteriormente obtenidos.
- Tamaño de la imagen a tratar
Gracias a la gestión eficiente de memoria de la librería OpenCV, es posible trabajar con
imágenes de mayores dimensiones que con Matlab. Así, por ejemplo, mientras que
para imágenes de 4416x3312 píxeles y tres canales, el código Matlab arrojar un error
de “out of memory”, mientras que el basado en OpenCV es capaz de ejecutarlo sin
problemas
- Resampling
En el código de Matlab realizado, aparecen errores del orden del píxel en varias
imágenes. Estos errores consisten en la aparición de zonas donde la aplicación no está
definida y, por tanto se toman como píxeles en negro (nivel de gris 0). La fuente de
este error se basa en el redondeo llevado a cabo al multiplicar por la matriz de
homografía. Para solventarlo es necesario un proceso de resampling. La función de
Open CV cvWarpPerspective la incluye en su rutina.
Fig. 5-23. Resampling: OpenCV vs Matlab
Modelado, Control y Percepción en Sistemas Aéreos Autónomos
Pág. 100
Fig. 5-24. Resampling: OpenCV vs Matlab. Detalle
- Integración y acceso
Al ser OpenCV una librería abierta y escrita en C permite fácilmente la integración
tanto en equipos embarcados como la inclusión del código en otros proyectos. Al ser
una biblioteca libre es una solución barata, eficiente y universal para su uso.