Ejemplos Básicos Con OpenCv _ Sebest

Embed Size (px)

Citation preview

  • 7/26/2019 Ejemplos Bsicos Con OpenCv _ Sebest

    1/8

    24/2/2016 Ejemplos Bsicos con OpenCv | Sebest

    http://www.sebest.com.ar/?q=node/79

    Ejemplos Bsicos con OpenCv

    Turkos Jue, 07/29/2010 - 18:02

    Hace tiempo quera hacer un post con ejemplos bsicos con OpenCv, para que el principiante que recin toma contacto

    con esta librera pueda tener un trampoln que le permita realizar las primeras practicas en el mundo del procesamiento

    de imgenes

    Me llegan E-mails a mi correo diciendo, Ernesto, tengo muchas ganas de comenzar con OpenCv, ya que es una herramienta

    potente y el Procesamiento Digital de Imgenes es un campo prometedor y con mucho futuro, pero no se por dondeempezar.

    Yo les respondo enviando algunos ejemplos, a lo cual me responden, Ernesto vos haces estos programas porque sabes

    mucho de esta libreara. Entonces yo nuevamente les respondo!!!!! ya voy a hacer un post con ejemplos fciles y no me

    llamo Ernesto!!!!! dejen de llamarme Ernesto!!! porque me dicen Ernesto????!!!!

    Ejemplo 1:

    Abrir una foto con la libre ra Ope nCv:

    #include < opencv/highgui.h >

    int main( int argc, char** argv )

    {

    IplImage* img = cvLoadImage(argv[1],CV_LOAD_IMAGE_UNCHANGED ) //Cargamos la imagen que le pasamos

    //al programa como argumento

    //CV_LOAD_IMAGE_UNCHANGED nos

    //permite cargar la imagen tal cual es

    cvNamedWindow( "Ejemplo1", CV_WINDOW_AUTOSIZE ) //creamos una ventana con el nombre Ejemplo 1

    //El parametro CV_WINDOW_AUTOSIZE nos permite que tenga

    //el tamao de la imagen automaticamente

    cvShowImage("Ejemplo1", img )

    //mostramos la imagen en la ventana

    //anteriormente creada

    cvWaitKey(0)

    //se queda esperando a que se presione

    //una tecla

    cvReleaseImage( &img )

    //se libera el recurso de memoria donde est la imagen

    http://picasaweb.google.com/lh/photo/kiPHyS-_Z1qRFyR45ZO2ClpNtULY5a-KkHuPCd6ht1c?feat=embedwebsitehttp://picasaweb.google.com/lh/photo/kiPHyS-_Z1qRFyR45ZO2ClpNtULY5a-KkHuPCd6ht1c?feat=embedwebsitehttp://picasaweb.google.com/lh/photo/kiPHyS-_Z1qRFyR45ZO2ClpNtULY5a-KkHuPCd6ht1c?feat=embedwebsite
  • 7/26/2019 Ejemplos Bsicos Con OpenCv _ Sebest

    2/8

    24/2/2016 Ejemplos Bsicos con OpenCv | Sebest

    http://www.sebest.com.ar/?q=node/79

    cvDestroyWindow("Ejemplo1" )

    //destruimos la ventana

    }

    Ejemplo 2:

    Dibujar un rectngulo en una imagen:

    #include < opencv/highgui.h >

    int main( int argc, char** argv )

    {

    CvPoint pt1, pt2

    //Tipo de datos que guardan puntos IplImage* img = cvLoadImage(argv[1],CV_LOAD_IMAGE_UNCHANGED )

    //Cargamos la imagen que le pasamos

    //al programa por argumento

    //CV_LOAD_IMAGE_UNCHANGED nos permite

    //cargar la imagen tal cual es

    cvNamedWindow( "Ejemplo2", CV_WINDOW_AUTOSIZE ) //creamos una ventana con el nombre Ejemplo 1

    //El parametro CV_WINDOW_AUTOSIZE nos permite que tenga

    //el tamao de la imagen

    http://picasaweb.google.com/lh/photo/kiPHyS-_Z1qRFyR45ZO2ClpNtULY5a-KkHuPCd6ht1c?feat=embedwebsite
  • 7/26/2019 Ejemplos Bsicos Con OpenCv _ Sebest

    3/8

    24/2/2016 Ejemplos Bsicos con OpenCv | Sebest

    http://www.sebest.com.ar/?q=node/79

    pt1.x = 100 //coordenada x

    pt1.y = 10 //coordenada y

    pt2.x = 220

    pt2.y = 150

    cvRectangle( img, pt1 , pt2 , CV_RGB(0,0,255), 3, 8, 0 ) //Dibujamos el rectangulo

    cvShowImage("Ejemplo2", img )

    //mostramos la imagen en la ventana

    //anteriormente creada

    cvWaitKey(0) //se queda esperando a que se presione

    //una tecla

    cvReleaseImage( &img ) //se libera el recurso de memoria donde est la imagen

    cvDestroyWindow("Ejemplo2" ) //destruimos la ventana

    }

    Ejemplo 3:

    Crear una regin de inters y mostrarla en otra ventana:

    http://picasaweb.google.com/lh/photo/q7nlCQt3K7nkdsYebnDdRVpNtULY5a-KkHuPCd6ht1c?feat=embedwebsite
  • 7/26/2019 Ejemplos Bsicos Con OpenCv _ Sebest

    4/8

    24/2/2016 Ejemplos Bsicos con OpenCv | Sebest

    http://www.sebest.com.ar/?q=node/79

    #include < opencv/highgui.h >

    int main( int argc, char** argv )

    {

    CvPoint pt1, pt2

    int width

    int height

    IplImage* img = cvLoadImage(argv[1],CV_LOAD_IMAGE_UNCHANGED )

    //Cargamos la imagen que le pasamos

    cvNamedWindow( "Ejemplo3", CV_WINDOW_AUTOSIZE )

    //creamos una ventana con el nombre Ejemplo 1

    cvNamedWindow( "ROI", CV_WINDOW_AUTOSIZE)

    //creamos una ventana con el nombre ROI

    //donde estar la regin de interes

    pt1.x = 100

    pt1.y = 10

    pt2.x = 220

    pt2.y = 150

    width = pt2.x - pt1.x

    height = pt2.y - pt1.y

    cvShowImage("Ejemplo3", img ) //mostramos la imagen en la ventana

    //anteriormente creada

    cvSetImageROI( img, cvRect( pt1.x, pt1.y, width, height ))

    cvShowImage("ROI", img ) //mostramos la imagen en la ventana

    //anteriormente creada

    cvWaitKey(0) //se queda esperando a que se presione

    //una tecla

    cvReleaseImage( &img ) //se libera el recurso de memoria donde est la imagen

    cvDestroyWindow("Ejemplo3" ) //destruimos la ventana

    cvDestroyWindow("ROI" ) //destruimos la ventana

    }

  • 7/26/2019 Ejemplos Bsicos Con OpenCv _ Sebest

    5/8

    24/2/2016 Ejemplos Bsicos con OpenCv | Sebest

    http://www.sebest.com.ar/?q=node/79

    Ejemplo 4:

    Cambiar el tamao de una imagen:

    #include < opencv/highgui.h >

    #include < opencv/cv.h >

    int main( int argc, char** argv )

    {

    IplImage* img = cvLoadImage(argv[1],CV_LOAD_IMAGE_UNCHANGED ) //Cargamos la imagen que le pasamos

    IplImage *ampl = cvCreateImage( cvSize(500,500),IPL_DEPTH_8U, 3) //reservamos memoria para la imagen amplificada

    cvNamedWindow( "Ejemplo4", CV_WINDOW_AUTOSIZE ) //creamos una ventana con el nombre Ejemplo 1

    cvNamedWindow( "AMP", CV_WINDOW_AUTOSIZE) //creamos una ventana con el nombre AMP

    //donde estar la imagen ampliada

    cvResize(img,ampl,CV_INTER_CUBIC) // escalado de la imagen

    //del tamao de la imagen creada

    cvShowImage("Ejemplo4", img ) //mostramos la imagen en la ventana

    //anteriormente creada

    http://picasaweb.google.com/lh/photo/86BXjY0LH2qASI9SrRhtaVpNtULY5a-KkHuPCd6ht1c?feat=embedwebsite
  • 7/26/2019 Ejemplos Bsicos Con OpenCv _ Sebest

    6/8

    24/2/2016 Ejemplos Bsicos con OpenCv | Sebest

    http://www.sebest.com.ar/?q=node/79

    cvShowImage("AMP", ampl ) //mostramos la imagen en la ventana

    //anteriormente creada

    cvWaitKey(0) //se queda esperando a que se presione

    //una tecla

    cvReleaseImage( &img ) //se libera el recurso de memoria donde est la imagen

    cvDestroyWindow("Ejemplo4" ) //destruimos la ventana

    cvDestroyWindow("AMP" ) //destruimos la ventana

    }

    Ejemplo 5:

    Imprimir texto dentro del dibujo:

    #include < opencv/highgui.h >

    int main( int argc, char** argv )

    {

    http://picasaweb.google.com/lh/photo/FUcDfdcpnoyIF_Lq1inD81pNtULY5a-KkHuPCd6ht1c?feat=embedwebsite
  • 7/26/2019 Ejemplos Bsicos Con OpenCv _ Sebest

    7/8

    24/2/2016 Ejemplos Bsicos con OpenCv | Sebest

    http://www.sebest.com.ar/?q=node/79

    CvFont font

    CvPoint pt1

    cvInitFont( &font, CV_FONT_VECTOR0, 0.5, 0.5, 0, 2.0, CV_AA) //Inicializamos el cdigo fuente

    IplImage* img = cvLoadImage(argv[1],CV_LOAD_IMAGE_UNCHANGED ) //Cargamos la imagen que le pasamos

    cvNamedWindow( "Ejemplo5", CV_WINDOW_AUTOSIZE ) //creamos una ventana con el nombre Ejemplo 1

    pt1.x = 220

    pt1.y = 30

    cvPutText(img, "Hola Tux", pt1, &font,CV_RGB(255,190,44) )

    cvShowImage("Ejemplo5", img ) //mostramos la imagen en la ventana

    //anteriormente creada

    cvWaitKey(0)

    //se queda esperando a que se presione

    //una tecla

    cvReleaseImage( &img ) //se libera el recurso de memoria donde est la imagen

    cvDestroyWindow("Ejemplo5" ) //destruimos la ventana

    }

  • 7/26/2019 Ejemplos Bsicos Con OpenCv _ Sebest

    8/8

    24/2/2016 Ejemplos Bsicos con OpenCv | Sebest

    http://www.sebest.com.ar/?q=node/79

    Bien, con esto y Facedetec pude realizar el proyecto GNU FALCO as que compilen estos ejemplos bsicos en sus casas y

    realicen las pruebas que quieran. Espero que esto inspire a muchos para empezar con el uso de esta maravillosa librera.

    http://www.sebest.com.ar/?q=node/78http://picasaweb.google.com/lh/photo/eto7vzuhFlNqtpeMvhkAzFpNtULY5a-KkHuPCd6ht1c?feat=embedwebsite