open cv campus party 2010
DESCRIPTION
Son un conjunto de bibliotecas de C y C++ de código libre “Open Source BSD”, orientadas a visión por computador.TRANSCRIPT
-
OpenCV
Ing. Francisco Carlos Caldern
Campus Party 2010
http://opencvjaveriana.wikispaces.com/
-
1. Introduccin Uso e instalacin.
1.1 Introduccin.
1.1.1 Descripcin de la organizacin de las
bibliotecas.
1.1.2 Documentacin "Wikis, Links tiles etc".
1.2 Instalacin de OpenCV 1.0 bajo Windows.
1.3 Configuracin de OpenCV
1.4 Diferencias operativas y de instalacin con
OpenCV 1.0, 1.1, 2.0, 2,1 y repositorio SVN
-
1.1 Introduccin.
Que es OpenCV?
Son un conjunto de bibliotecas de C y C++
de cdigo libre Open Source BSD, orientadas a visin por computador.
Puede ser usado en Windows Linux y
MacOS X, existen interfaces para
Python, Octave y Matlab bajo desarrollo.
-
Licencia
Intel fue pionera en el desarrollo de
OpenCV, sin embargo su licencia
permite el desarrollo con las bibliotecas
e inclusive la modificacin y distribucin
de las mismas, tambin la explotacin
investigativa y comercial.
Completamente Open Source
-
Estructura de OpenCV
Estas bibliotecas se dividen en cinco grandes grupos :
1. CXCORE: donde se encuentran las estructuras y algoritmos bsicos que usan las dems funciones. Ej: suma, media, operaciones-binarias
2. CV: donde estn implementadas las funciones principales de procesamiento de imgenes. Ej: Erosin, Canny..
-
Estructura de OpenCV
3. HighGUI: todo lo relacionado a la interfaz
grafica de OpenCV y las funciones que
permiten importar imgenes y video
(actualmente ffmpeg, Cvcam,etc)
4. ML: que cuenta con algoritmos de
aprendizaje, clasificadores y dems. Ej SVM,
Adaboost.
5. CvAux: con funciones experimentales Ej
BG/FG, estereo.
-
Distribucin de OpenCV
CV
Procesamiento de
Imgenes y
algoritmos de visin
CXCORE
Estructuras y Algoritmos Bsicos
Soporte a XML
Miscelneos
HighGUI
Interfaz Grfica e
interaccin con
archivos de
imgenes y video
ML
Clasificadores
Estadsticos y
herramientas de
agrupacin
CVAux
Algoritmos
Experimentales
BG/FG
-
1.1.2 Documentacin
Oficial :
http://opencv.willowgarage.com/wiki/
Documentacin:
http://opencv.willowgarage.com/documentation/index.html
Soporte:
http://tech.groups.yahoo.com/group/OpenCV/
-
1.1.2 Documentacin
OpenCV 1.0 API:
http://www.cs.indiana.edu/cgi-pub/oleykin/website/OpenCVHelp/
Descarga de OpenCV:
http://sourceforge.net/project/showfiles.php?group_id=22870&package_id=16937
OpenCV Wiki Javeriana:
http://opencvjaveriana.wikispaces.com/
-
Instalacin de OpenCV
1.2 Instalacin de OpenCV 1.0 bajo
Windows.
1.3 Configuracin de OpenCV en
Microsoft Visual C++ 2008 Express
Edition.
1.4 Diferencias operativas y de
instalacin con OpenCV 1.0, 1.1, 2.0 y
repositorio SVN
-
Tpicos comunes de OpenCV
2.1 Primitivas OpenCV.
2.2 CvMat y CvArr.
2.3 IplImage.
2.4 Accesar a elementos en "CvArr,
Cvmat, IplImage".
2.5 Uso de ROI y COI.
2.6 Cdigos de ejemplo.
-
2.1 Primitivas OpenCV.
NOTA: Todas estas se encuentran
en:
...OpenCV\...\include\..cxtypes.h
-
2.1 Primitivas OpenCV.
-
2.1 Primitivas OpenCV.
-
2.1 Primitivas OpenCV.
-
2.1 Primitivas OpenCV.
Note los 3 constructores de CvScalar
-
2.2-3 Imgenes en OpenCV.
Cuando se usa OpenCV, repetidamente se ve el uso de IplImage o iplimage en minsculas.
Esta es la estructura bsica para codificar imgenes.
Una imagen puede ser representada de varia maneras, canales, profundidad
IplImage, se deriva de CvMat y esta a su vez se deriva de CvArr.
-
Jerarquia CvArr -> CvMat -> IplImage
Opencv provee varias funciones para procesar estas imgenes, usando una representacin de ellas en CvArr, CvMat o IplImage Ej:
-
2.2 CvMat y CvArr.
-
2.2 CvMat y CvArr.
Constructor de CvMat:
-
2.3 IplImage.
-
2.4 Accesar a elementos en "CvArr, Cvmat,
IplImage".
Existen varias formas de accesar una
IplImage, bsicamente se dividen en
dos:Usando los macros existentes
en la biblioteca
Ventajas:
Mas fcil para el usuario
Desventajas:
Mas lento para el procesador
Cuando usarlos:
Cuando solo se requiere
cambiar unos cuantos puntos
sobre la imagen
Recorriendo la IplImage usado
apuntadores directamente en memoria
Ventajas:
Mas rpido para el procesador
Desventajas:
Cuestin de costumbre
Cuando usarlos:
Cuando se requiere cambiar muchos
puntos sobre la imagen
-
2.5 Uso de ROI y COI.
ROI: Region Of Interest es la regin de inters en la
imagen est dada por
un rectngulo que
encierra lo que me
interesa procesar
COI: Channel Of Interest es el nmero del canal que me
interesa trabajar
-
2.6 Cdigos de ejemplo.
-
3 Entrada - Salida
3.1 HighGUI.
3.2 Manejo de ventanas, teclado y ratn.
3.3 Dibujar figuras bsicas y caracteres.
3.4 Trabajo con video.
3.5 Guardar video e imgenes.
3.6 Cdigos de ejemplo.
-
3.1 HighGUI.
HighGUI es una sencilla interfaz grfica,
que se encuentra en OpenCV.
Brinda herramientas para trabajar con
imgenes y video de archivos y
cmaras.
Por su sencillez algunos no la usan en
productos finales.
-
3.2 Manejo de ventanas, teclado y
ratn.
HighGUI permite capturar entradas de ratn y teclado siempre y cuando estas se realicen sobre alguna ventana de trabajo de OpenCV
-
Teclado
Tambin se usa para agregar periodos de espera a la hora de mostrar
videos
-
Ratn
-
3.3 Dibujar figuras bsicas y
caracteres.
Se pueden dibujar lneas crculos elipses
rectngulos y escribir con varios tipos de
fuente en OpenCV
Ver ejemplo Drawing.c en la carpeta
opencv\samples\c
-
3.4 Trabajo con video.
El trabajo con video se resume a importar ya sea de una cmara o un archivo de video una secuencia de imgenes.
El tiempo se estima de las propiedades del archivo de video o de la cmara.
Para mostrar el video se debe tener en cuenta el tiempo de refresco de la pantalla y el tiempo entre cuadros de video Ej: cvWaitKey.
Se debe tener cuidado con los IplImage y manejarlos con cuidado para no tener problemas de memoria.
-
3.5 Guardar video e imgenes.
Opencv soporta varios formatos de compresin de imgenes.
Opencv es capaz de trabajar con la mayora de codecs instalables en el SO Windows, sin embargo solo guarda archivos en el contenedor .avi.
Para usar un codec Ej Xvid h.264 etc basta instalarlo en windows y usar su FOURCC.