Taller de OpenCV

  • View
    1.565

  • Download
    0

Embed Size (px)

Transcript

Taller de OpenCV (Proyectos)Dr. Jess Carlos Pedraza Ortega Dra. Sandra Luz Canchola Magdaleno

Proyecto 1 en OpenCV (Cargar y desplegar una Imagen)#include #include int main(int argc, char** argv) { // Declaracin 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 tamao automtico 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); }

Resultado del Proyecto 1

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

Proyecto 2 en OpenCV (Cargar una Imagen y convertirla en escala de grises) 1/2#include #include int main(int argc, char** argv) { // Se necesitan 2 imgenes, y se efecta la declaracin 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);

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); }

Resultado del Proyecto 2

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);

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);

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; }

Resultado del Proyecto 3