guardar_imagen

Ejemplo de como guardar una imagen a disco, como recorrer la imagen y uso de canny

code format="c" /*Código de ejemplo: Francisco Carlos Calderón Libre de modificar difundir y aprender 2009       */ int main(int argc, char** argv) {   /* Declaración de *IplImage */ IplImage* Orig_Frame = 0; IplImage* im_color; IplImage* im_1d;
 * 1) include 
 * 2) include 

/* 1. Capturando y mostrando en pantalla */

Orig_Frame = cvLoadImage("lena.jpg", CV_LOAD_IMAGE_COLOR ); if(Orig_Frame == 0)//si no hay nada en la imagen salga. puede contener salida al usuario para mejor debuging :)   return -1;    cvNamedWindow ("Original", CV_WINDOW_AUTOSIZE);    cvShowImage ("Original", Orig_Frame);    im_color = cvCreateImage( cvSize(Orig_Frame->width,Orig_Frame->height), Orig_Frame->depth, Orig_Frame->nChannels );    im_1d    = cvCreateImage( cvSize(Orig_Frame->width,Orig_Frame->height), Orig_Frame->depth, 1 );//tiene la misma profundidad pero un solo canal    for( int y=0; yheight; y++ )//solo para ejemplo de como recorrer dos o mas imagenes al tiempo, para sacar negativo use cvNot    {        uchar* tmp_apun = (uchar*) (im_color->imageData + y * im_color->widthStep);        uchar* tmp_apun2 = (uchar*) (Orig_Frame->imageData + y * Orig_Frame->widthStep);        for( int x=0; xwidth; x++ ) {            tmp_apun[im_color->nChannels*x+0] = 255 - tmp_apun2[Orig_Frame->nChannels*x+0];            tmp_apun[im_color->nChannels*x+1] = 255 - tmp_apun2[Orig_Frame->nChannels*x+1]; tmp_apun[im_color->nChannels*x+2] = 255 - tmp_apun2[Orig_Frame->nChannels*x+2]; }   }

cvSaveImage("lena_negativo.jpg",im_color );

/*soporta: * Windows bitmaps - BMP, DIB; * JPEG files - JPEG, JPG, JPE; * Portable Network Graphics - PNG; * Portable image format - PBM, PGM, PPM; * Sun rasters - SR, RAS; * TIFF files - TIFF, TIF; * OpenEXR HDR images - EXR; * JPEG 2000 images - jp2. */   cvSetImageCOI(Orig_Frame,2);//voy a sacarle bordes nada mas a un canal "el 2 verde", pude también convertir a BW    cvCopy(Orig_Frame,im_1d); cvSetImageCOI(Orig_Frame,0);//reset del COI cvCanny(im_1d,im_1d,110,217,3); cvSaveImage("lena_canny.png",im_1d ); cvSmooth(Orig_Frame, im_color, CV_BLUR, 15); cvSaveImage("lena_blur.bmp",im_color );

cvWaitKey (0); /* Es una buena practica liberar todo antes de salir del programa y no      confiar que windows haga todo el trabajo sucio :) */    cvReleaseImage( &Orig_Frame );    cvReleaseImage( &im_color);    return 0; }

code