Taller 1 - Departamento de Ingeniería de Sistemas

Transcripción

Taller 1 - Departamento de Ingeniería de Sistemas
Pontificia Universidad Javeriana
Departamento de Ingeniería de Sistemas
Visión Artificial
Taller 1: Introducción a OpenCV e ITK, 2016-10
Objetivo
Introducir las librerías especializadas OpenCV e ITK, para el manejo y procesamiento de
información visual. En particular, se busca que el estudiante se familiarice inicialmente con el
proceso de instalación de las librerías, así como con la creación y ejecución de programas
sencillos, para identificar las posibilidades que brinda cada librería.
Desarrollo del taller
Parte 1: Instalación y prueba básica de OpenCV
Para la instalación de OpenCV, siga los siguientes pasos:
• Verificar los paquetes requeridos. Para su instalación y funcionamiento, esta librería
requiere los siguientes paquetes:
◦ GCC 4.4.x o superior
◦ CMake 2.6 o superior
◦ Git
◦ GTK+2.x o superior, incluyendo librerías (libgtk2.0-dev)
◦ pkg-config
◦ Paquetes de desarrollo de ffmpeg o libav:
libavcodec-dev, libavformat-dev, libswscale-dev
Para verificar la existencia y/o realizar la instalación de estos paquetes, en la distribución
Ubuntu de Linux se puede utilizar el gestor de paquetes, ejecutando el siguiente
comando en una terminal:
sudo apt­get install build­essential cmake git libgtk2.0­dev pkg­
config libavcodec­dev libavformat­dev libswscale­dev
•
Descargar el código fuente de la página:
http://sourceforge.net/projects/opencvlibrary
•
Ejecutar los siguientes comandos:
unzip opencv­3.0.0.zip
cd opencv­3.0.0
mkdir build
cd build
cmake ..
make ­j16
sudo make install
•
Probar la instalación con un programa básico. Para esto, seguir las instrucciones de la
página:
http://docs.opencv.org/2.4/doc/tutorials/introduction/linux_gcc_c
make/linux_gcc_cmake.html •
Si el programa es capaz de mostrar la imagen que se la pasa como parámetro, entonces
la instalación fue exitosa.
Parte 2: Ejemplos en OpenCV e ITK
Para probar la instalación de la librería OpenCV, se utilizarán algunos ejemplos de operaciones
básicas.
• Descargar el archivo con los ejemplos:
http://sophia.javeriana.edu.co/~rueda­
andrea/visArtif/docs/intro_opencv.zip
•
Ejecutar los siguientes comandos:
unzip intro_opencv.zip
cd intro_opencv
mkdir build
cd build
cmake ..
make
•
Este proceso compilará y generará los ejecutables de los 3 ejemplos incluídos en el
archivo comprimido. Utilizar las mismas imágenes y los mismos parámetros ya utilizados
para probar los programas de ITK, para ejecutar estos programas, e identificar si generan
los mismos resultados.
•
Luego de las pruebas, analizar los archivos fuente de los ejemplos en ITK y los ejemplos
en OpenCV, para identificar las diferencias en las operaciones realizadas. ¿Se facilitan o
se dificultan las operaciones? Este análisis facilitará la posterior selección de ITK u
OpenCV como la librería preferencial de trabajo.
Parte 3: Creación de un programa en ITK y OpenCV
Ya que se conocen los elementos básicos de ambas librerías, y se tienen los conocimientos
técnicos básicos para ponerlas a funcionar dentro de programas sencillos pero útiles, es hora de
aplicarlos en el desarrollo de un programa.
•
Se requiere un programa que, a partir de una imagen a color, realice las siguientes
operaciones:
◦ Redimensione la imagen para que su tamaño sea 1200x1200 píxeles.
◦ De la imagen redimensionada, separe los canales de color RGB, y en cada canal
aplique un reescalamiento en las intensidades utilizadas, así: el canal Rojo debe
utilizar sólo 4 intensidades, el canal Verde debe utilizar 16 intensidades y el canal Azul
debe utilizar 64 intensidades.
◦ Genere una nueva imagen compuesta a partir de la información de los canales
reescalados en intensidad.
◦ Finalmente, genere una nueva imagen que resalte las diferencias entre la imagen
original y la imagen reconstruida a partir de los canales de color reescalados.
A continuación se muestra un ejemplo del proceso completo que debe realizar el
programa:
•
Utilice inicialmente la librería ITK para implementar una versión del programa. Utilice
como nombre de archivo 04_image_process_ITK.cxx. Tenga el cuenta el manejo de
los tipos de datos para las imágenes (color o escala de grises), así como la coherencia
entre las entradas y salidas de los diferentes filtros. Adicionalmente, genere imágenes
intermedias en cada paso para verificar que todo funciona correctamente, así:
◦ <nombre_imagen>_scaled.png: luego de redimensionar.
◦ <nombre_imagen>_R.png: canal Rojo de la imagen redimensionada.
◦ <nombre_imagen>_G.png: canal Verde de la imagen redimensionada.
◦ <nombre_imagen>_B.png: canal Azul de la imagen redimensionada.
◦ <nombre_imagen>_qR.png: canal Rojo reescalado en intensidad.
◦ <nombre_imagen>_qG.png: canal Verde reescalado en intensidad.
◦ <nombre_imagen>_qB.png: canal Azul reescalado en intensidad.
◦ <nombre_imagen>_qRGB.png: reconstrucción con los nuevos canales de color.
◦ <nombre_imagen>_diff.png: diferencia entre imagen original (redimensionada)
e imagen reconstruida a partir de los canales de color reescalados.
•
Luego, implemente una nueva versión del programa, ahora utilizando la librería OpenCV.
Utilice como nombre de archivo 04_image_process_OpenCV.cxx, y genere las
mismas imágenes intermedias indicadas anteriormente. Verifique con imágenes de
prueba que ambos programas generan los mismos resultados.
Evaluación
La entrega del taller consistirá en un único archivo comprimido (únicos formatos aceptados: .zip,
.tar, .tar.gz, .tar.bz2, .tgz) que contendrá:
• Una carpeta con los archivos fuente de los ejemplos de ITK, con las imágenes usadas para
probar los programas y los resultados obtenidos.
• Una carpeta con los archivos fuente de los ejemplos de OpenCV, con las imágenes usadas
para probar los programas y los resultados obtenidos.
• Una carpeta con el ejercicio de programación propuesto, debe incluir el fuente en ITK, el
fuente en OpenCV y el archivo CMakeLists.txt que permite compilar ambos
programas.
El código fuente debe compilar con gcc (g++) v. 4.7.2 y con las librerías de Insight Toolkit (ITK) v.
4.8.2 y OpenCV v. 3.1.0.
Este archivo deberá enviarse a través de la correspondiente actividad en UVirtual antes de
finalizar la sesión de clase del viernes 12 de febrero (5:00p.m.). El envío del archivo comprimido
en otro formato diferente a los especificados resultará en una calificación de (0.0/5.0) para el
taller.
La escala de evaluación es la siguiente:
• Excelente (5.0/5.0): El estudiante compila y ejecuta los programas de ejemplo, y propone
un código que realiza todos los pasos del procesamiento en ambas librerías (ITK y
OpenCV).
• Bueno (4.0/5.0): El estudiante compila y ejecuta los programas de ejemplo, y propone un
código que realiza todos los pasos del procesamiento en una de las dos librerías (ITK u
OpenCV).
• Aceptable (3.0/5.0): El estudiante compila y ejecuta los programas de ejemplo, y
propone un código que realiza sólo algunos de los pasos del procesamiento en ambas
librerías (ITK y OpenCV).
• Malo (1.0/5.0): El estudiante no puede compilar y ejecutar los programas de ejemplo, o
el código propuesto no compila en alguna de las librerías.
• No entregó (0.0/5.0): El estudiante no entrega los archivos solicitados.

Documentos relacionados