open cv campus party 2010

33
OpenCV Ing. Francisco Carlos Calderón Campus Party 2010 http://opencvjaveriana.wikispaces.com/

Upload: jeremiah-martinez

Post on 25-Nov-2015

19 views

Category:

Documents


2 download

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.