taller de opencv

10
Taller de OpenCV (Proyectos) Dr. Jesús Carlos Pedraza Ortega Dra. Sandra Luz Canchola Magdaleno

Upload: scribidcaryoko

Post on 04-Jul-2015

1.588 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Taller de OpenCV

Taller de OpenCV(Proyectos)

Dr. Jesús Carlos Pedraza OrtegaDra. Sandra Luz Canchola Magdaleno

Page 2: Taller de OpenCV

Proyecto 1 en OpenCV (Cargar y desplegar una Imagen)#include <cv.h>

#include <highgui.h>

int main(int argc, char** argv)

{

// Declaración de la estructura donde se almacenara la imagen

IplImage* ImgOrg;

// Inicializar la estructura, cargando la imagen que se va a visualizar

ImgOrg = cvLoadImage("EraHielo3.jpg");

// Inicializa la ventana con el nombre “Origen” con el tamaño automático de la imagen

cvNamedWindow("Origen",CV_WINDOW_AUTOSIZE);

// Muestra la Imagen

cvShowImage("Origen",ImgOrg);

// Espera a que el usuario presione alguna tecla

cvWaitKey(0);

// Libera el espacio de memoria utilizado en la estructura

cvReleaseImage(&ImgOrg);

// Destruye la ventana “Origen”.

cvDestroyWindow("Origen");

return(0);

}

Page 3: Taller de OpenCV

Resultado del Proyecto 1

NOTA: Hay que considerar que la imagen "EraHielo3.jpg“ debe de estaren el mismo directorio que el archivo *.cpp

Page 4: Taller de OpenCV

Proyecto 2 en OpenCV (Cargar una Imagen y convertirla en escala de grises) 1/2#include <cv.h>

#include <highgui.h>

int main(int argc, char** argv)

{

// Se necesitan 2 imágenes, y se efectúa la declaración de las estructuras correspondientes

IplImage* ImgOrg;

IplImage* ImgDst;

// Inicializar la primera estructura (ImgOrg), cargando la imagen

ImgOrg = cvLoadImage("EraHielo3.jpg");

// Inicializar la segunda estructura (ImgDst), creando una copia de la imagen original

ImgDst = cvCloneImage( ImgOrg );

ImgDst = cvCreateImage( cvSize(ImgOrg->width, ImgOrg->height), IPL_DEPTH_8U, 1 );

// De una imagen en color se convierte en escala de grises

cvCvtColor( ImgOrg, ImgDst, CV_BGR2GRAY );

// Inicializa la ventana con el nombre “Origen” y muestra la imagen

cvNamedWindow("Origen",CV_WINDOW_AUTOSIZE);

cvShowImage("Origen",ImgOrg);

Page 5: Taller de OpenCV

Proyecto 2 en OpenCV (Cargar una Imagen y convertirla en escala de grises) 2/2

// Inicializa la ventana con el nombre “Destino” y muestra la imagen

cvNamedWindow(“Destino",CV_WINDOW_AUTOSIZE);

cvShowImage(“Destino",ImgDst);

// Espera a que el usuario presione alguna tecla

cvWaitKey(0);

// Libera el espacio de memoria utilizado en las estructuras

cvReleaseImage(&ImgOrg);

cvReleaseImage(&ImgDst);

// Destruye las ventanas “Origen” y “Destino”.

cvDestroyWindow("Origen");

cvDestroyWindow(“Destino");

return(0);

}

Page 6: Taller de OpenCV

Resultado del Proyecto 2

Page 7: Taller de OpenCV

Proyecto 3 en OpenCV (Cargar una Imagen a color, separar sus componentes R G B y mostrarlas) 1/2

#include "cv.h"

#include "cxcore.h"

#include "highgui.h"

int main(int argc, char** argv)

{

// Cargar la imagen

IplImage* img = cvLoadImage( "EraHielo3.jpg",1 );

//Crear apuntadores a estructuras para los canales de RGB

IplImage* r = cvCreateImage( cvGetSize(img), IPL_DEPTH_8U, 1 );

IplImage* g = cvCreateImage( cvGetSize(img), IPL_DEPTH_8U, 1 );

IplImage* b = cvCreateImage( cvGetSize(img), IPL_DEPTH_8U, 1 );

// Crear apuntadores a estructuras para la imagen en HSV

IplImage* hsv = cvCreateImage( cvGetSize(img), 8, 3 );

// Cambio de espacio de color RGB -> HSV

cvCvtColor(img, hsv, CV_BGR2HSV);

Page 8: Taller de OpenCV

Proyecto 3 en OpenCV (Cargar una Imagen a color, separar sus componentes R G B y mostrarlas) 2/2

// Obtener los canales R G B

cvSplit( img, r, g, b, NULL );

// Crear todas las ventanas

cvNamedWindow("Imagen HSV", CV_WINDOW_AUTOSIZE);

cvNamedWindow( "Imagen RGB", CV_WINDOW_AUTOSIZE );

// Para los canales R G B

cvNamedWindow( "Canal R", CV_WINDOW_AUTOSIZE );

cvNamedWindow( "Canal G", CV_WINDOW_AUTOSIZE );

cvNamedWindow( "Canal B", CV_WINDOW_AUTOSIZE );

// Mostrar las imagenes

cvShowImage( "Imagen RGB", img );

cvShowImage( "Imagen HSV", hsv);

// Mostrar cada canal R G B de forma independiente

cvShowImage( "Canal R", r);

cvShowImage( "Canal G", g);

cvShowImage( "Canal B", b);

Page 9: Taller de OpenCV

Proyecto 3 en OpenCV (Cargar una Imagen a color, separar sus componentes R G B y mostrarlas) 2/2

// Para salir del programa presione la tecla ESC

cvWaitKey(0);

// Destruir las ventanas que se crearon

cvDestroyWindow("Imagen HSV");

cvDestroyWindow("Imagen RGB");

cvDestroyWindow("Canal R");

cvDestroyWindow("Canal G");

cvDestroyWindow("Canal B");

// Liberar espacio de memoria utilizado por las estructuras

cvReleaseImage( &img );

cvReleaseImage( &r );

cvReleaseImage( &g );

cvReleaseImage( &b );

cvReleaseImage( &hsv );

return 0;

}

Page 10: Taller de OpenCV

Resultado del Proyecto 3