Está en la página 1de 10

| 

  

i 
    
i   
  

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);
}
Resultado del Proyecto 1

NOTA: Hay que considerar que la imagen '    debe de estar
en el mismo directorio que el archivo 
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);
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

También podría gustarte