PDF de programación - Procesamiento Audiovisual - Sesión 2 Instalación y uso de OpenCV en Qt Creator

Imágen de pdf Procesamiento Audiovisual - Sesión 2 Instalación y uso de OpenCV en Qt Creator

Procesamiento Audiovisual - Sesión 2 Instalación y uso de OpenCV en Qt Creatorgráfica de visualizaciones

Publicado el 28 de Agosto del 2017
866 visualizaciones desde el 28 de Agosto del 2017
461,1 KB
9 paginas
Creado hace 10a (21/10/2013)
Procesamiento de Imágenes
Sesión 2. Instalación y uso de OpenCV en Qt Creator



Guión de Prácticas

Procesamiento de Imágenes



Máster NTI



Guión de prácticas

OpenCV



Sesión 2. Uso de OpenCV en Qt Creator

Descripción

Instalación

Uso de la librería

El tipo imagen

Crear imágenes

E/S básica

Resumen



DESCRIPCIÓN



 OpenCV (Open Source Computer Vision Library) es una librería de funciones en
C y C++ que contiene un conjunto de utilidades de procesamiento de imágenes,
visión artificial, reconocimiento de patrones, captura de vídeo y visualización de
imágenes. Es de código abierto, gratuita, multiplataforma (disponible para entornos
MS Windows, Mac OS y Linux), rápida, de fácil uso y en continuo desarrollo.
Páginas web de OpenCV:



http://opencv.org


 OpenCV fue desarrollada originalmente por Intel. Actualmente es un proyecto libre
publicado bajo licencia BSD, lo que permite su uso tanto para aplicaciones
comerciales como no comerciales.


 Usaremos OpenCV 2.4.6.0, que fue publicada en julio de 2013.



1

Procesamiento de Imágenes
Sesión 2. Instalación y uso de OpenCV en Qt Creator



Guión de Prácticas



5. Los archivos de la librería OpenCV 2.4.6.0 se pueden descargar en:

INSTALACIÓN DE OpenCV 2.4.6



http://sourceforge.net/projects/opencvlibrary


(Igual que dijimos con Qt, es posible que en este momento exista alguna versión
más reciente de OpenCV. Por compatibilidad, recomendamos usar para nuestras
prácticas la versión 2.4.6.)

6. El problema es que la distribución oficial debe ser recompilada completamente para
poder ser usada con Qt Creator. Hay que configurarla con CMake 2.8.11 y compilarla
con MinGW 4.8.0. Por lo tanto, para evitarnos todos estos pasos, usaremos una
distribución propia preparada para Qt Creator 2.7.2; la llamaremos OpenCV 2.4.6.g.

7. Descargar el fichero:



http://dis.um.es/~ginesgm/files/doc/pav/opencv2.4.6.g.zip



8. Descomprimir el ZIP en C:\OpenCV2.4.6 conservando todos los directorios del

archivo. Todos los documentos se deben instalar bajo este directorio.


9. Para completar la instalación, debemos incluir en el PATH del sistema el directorio
donde se encuentran las DLL de OpenCV. Para ello, debemos ir a: Panel de Control |
Sistema | Configuración avanzada del sistema | Opciones avanzadas | Variables
de entorno… | Variables del sistema. Seleccionamos la variable llamada Path y le
damos al botón Editar… Se abre una ventana para editar su valor. Dentro de Valor de
la variable: al final de lo que haya escrito añadimos lo siguiente (observar que el punto
y coma sirve para separar entradas del path):



;C:\OpenCV2.4.6\bin;C:\Qt\Qt5.1.0\5.1.0\mingw48_32\bin

Luego le damos a Aceptar a todas las ventanas que tenemos abiertas.


10. Vamos a analizar ahora la estructura de directorios creada en la librería:

 C:\OpenCV2.4.6



bin → Archivos DLL (Dynamic Link Library), y algunos ejecutables de
prueba, test e información de las librerías.





 modules → Código fuente del núcleo de la librería (core), y de los
distintos módulos de procesamiento de imágenes (imgproc), detección de
objetos (objdetect), entrada/salida (highgui), etc.
include\opencv2 → Contiene los ficheros de cabecera necesarios para
incluir en los programas C/C++. El importante es: opencv2\opencv.hpp.
docs → Documentación de las librerías. La parte principal de la
documentación (el manual de referencia de OpenCV) está en el fichero
opencv2refman.pdf.
lib → Ficheros de descripción de las librerías. Necesarios para usar las
DLL en nuestros programas de Qt Creator.
samples\c y samples\cpp → Programas sencillos en C y C++ que
muestran diversas funciones de OpenCV.
3rdparty, apps, cmake, data, platforms → Otros directorios que en
principio no nos interesan. Contienen código fuente de los ejemplos y de
otras partes del proyecto. Recordar que OpenCV es de código abierto.









2

Procesamiento de Imágenes
Sesión 2. Instalación y uso de OpenCV en Qt Creator



Guión de Prácticas


11. Ejecutar los ejemplos de samples\c y samples\cpp y observar el código de alguno de
ellos. Ojo, puede que algunos no funcionen, porque necesitan una cámara o parámetros
adicionales.


12. Echar un vistazo a la documentación (opencv2refman.pdf y opencv_cheatsheet.pdf).



USO DE LA LIBRERÍA OPENCV CON QT CREATOR

13. La utilización de OpenCV en Qt Creator permite aprovechar la potencia de la primera
para el procesamiento eficiente de imágenes y vídeo, y la facilidad de la segunda para
el desarrollo rápido de aplicaciones interactivas en entornos de ventanas. Además,
ambas son multiplataforma.


14. El código de las librerías se encuentra en ficheros DLL (Dynamic Link Library), como
libopencv_core246.dll, libopencv_imgproc246.dll y libopencv_highgui246.dll. Los
ficheros DLL contienen código objeto (código ejecutable) que se enlaza de forma
dinámica con la aplicación. Por lo tanto, nuestros programas usan estas librerías, pero
no las incluyen en su código. Los ficheros DLL deben estar accesibles, o bien en el
mismo directorio del programa o en el PATH del sistema. Por lo tanto, para
distribuir nuestros programas a otras personas, debemos copiar esos archivos DLL
en el mismo directorio del ejecutable.


15. Para poder usar OpenCV en nuestros proyectos necesitamos, básicamente, dos cosas:
(a) dentro del código, poner los #includes de los ficheros de cabecera adecuados; y (b)
dentro del proyecto de Qt Creator, añadir los ficheros de descripción de las DLL, con
extensión .dll.a.



16. Vamos a ponernos manos a la obra. Abrir Qt Creator. Crear un nuevo proyecto de
tipo QMainWindow (ver los pasos del 7 al 14 de la sesión 1). Vamos a ver ahora todo lo
necesario para poder usar OpenCV en este proyecto.


17. Dentro del modo Edit, abrir el fichero principal del proyecto (el fichero con extensión

.pro).


18. Añadir las siguientes líneas al final de dicho fichero:



INCLUDEPATH += "C:\OpenCV2.4.6\include"
LIBS += -L"C:\OpenCV2.4.6\lib"\
-llibopencv_core246\
-llibopencv_imgproc246\
-llibopencv_highgui246

La primera de estas líneas añade el directorio de OpenCV al path de búsqueda de
los ficheros de cabecera. Las siguientes sirven para añadir los ficheros de
descripción de las librerías DLL (se refieren a los ficheros .dll.a).


19. Finalmente, en todos los módulos del programa que usen OpenCV debemos añadir las

dos siguientes líneas:


#include <opencv2/opencv.hpp>

using namespace cv;



3

Procesamiento de Imágenes
Sesión 2. Instalación y uso de OpenCV en Qt Creator



Guión de Prácticas

20. Vamos ahora a añadir algo de código al proyecto, para comprobar que todo ha ido
bien. Añadimos al principio del código: #include <QFileDialog> Después añadimos
un botón al formulario. En el slot clicked() asociado a su pulsación escribimos el
siguiente código:


void MainWindow::on_pushButton_clicked()
{
QString nombre= QFileDialog::getOpenFileName();
Mat img= imread(nombre.toStdString());
namedWindow("Imagen", WINDOW_NORMAL);
imshow("Imagen", img);
}

21. Guardar el proyecto y ejecutarlo. ¿Se ha compilado bien? ¿Se ve la imagen al pulsar el
botón? Si la respuesta es sí, todo ha ido perfecto. En otro caso, volver a repasar los
pasos anteriores. Si sigue sin funcionar, preguntar al profesor.

Mat: el tipo de datos para las imágenes.
imread: función para leer una imagen
(debemos seleccionar un fichero existente)
namedWindow: crear una ventana
imshow: mostrar la imagen en la ventana

EL TIPO DE DATOS IMAGEN: Mat



22. Una vez que sabemos utilizar la librería OpenCV en Qt Creator, vamos a empezar a

manejar imágenes y las operaciones básicas de entrada/salida.


23. El tipo fundamental de OpenCV, el que nos permite representar imágenes, es el tipo
Mat. Las imágenes pueden tener 1, 2, 3 ó 4 canales, y distintos tipos de profundidad.
Las variables para imágenes serán siempre de tipo: Mat. La reserva y liberación de las
imágenes las realiza OpenCV de forma automática.


24. Los propiedades fundamentales del tipo Mat son:


img.cols
img.rows

img.depth()

ancho de la imagen (en píxeles)
alto de la imagen (en píxeles)
profundidad de los píxeles (CV_8U, CV_8S, CV_16U, CV_16S,
CV_32S, CV_32F y CV_64F).

img.channels() número de canales de la imagen (normalmente 1 ó 3)


25. En el anterior código, añadir al final las siguientes líneas:

qDebug("Anchura=%d, altura=%d", img.cols, img.rows);
qDebug("Profundidad=%d, canales=%d", img.depth(), img.channels());


26. En memoria las imágenes siempre están descomprimidas. El puntero img.data
apunta a la matriz de píxeles de la imagen (los datos en crudo). Normalmente no
accederemos a los píxeles directamente, sino que usaremos funciones de la librería.



27. Existen diferentes formas posibles de crear una nueva imagen:

27.1. Creando una nueva imagen vacía: create.
27.2. Leyendo una imagen desde un fichero: imread.
27.3. Clonando una imagen existente: clone.


28. Además, cuando una función de OpenCV devuelve una imagen, la propia función se

encarga de crear la imagen con el tamaño adecuado.



4

Procesamiento de Imágenes
Sesión 2. Instalación y uso de OpenCV en Qt Creator



Guión de Prácticas

CREAR IMÁGENES NUEVAS


29. Para crear una imagen vacía podemos hacerlo de dos formas diferentes:

29.1.

29.2.

Crear la imag
  • Links de descarga
http://lwp-l.com/pdf6651

Comentarios de: Procesamiento Audiovisual - Sesión 2 Instalación y uso de OpenCV en Qt Creator (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad