martes, 28 de septiembre de 2010

OpenCv

Como parte de las herramientas que se cuentan en el manejo de imágenes se encuentra OpenCv. Su manejo es relativamente fácil si sólo se requiere abrir, manipular y guardar el resultado, lo cual mostraremos a continuación.






#include <cstdlib>
#include <iostream>
#include <cv.h>
#include <highgui.h>
#include <math.h>


using namespace std;


int main(int argc, char** argv) {
//Abrir


IplImage* img=cvLoadImage("entrada.bmp");






if(!img){
     printf("Could not load image file: %s\n",img);
     exit(0);
}


int height    = img->height;                                  //Alto
int width     = img->width;                                  //Ancho
int step      = img->widthStep/sizeof(uchar);        //Tam paso
int channels  = img->nChannels;                         //Numero de canales p.e. 3=RGB
uchar *data      = (uchar *)img->imageData;            //Valores de la imagen


//Manipulando  -Invirtiendo colores
int i,j,k;
for(i=0;i<height;i++){
     for(j=0;j<width;j++){
          for(k=0;k<channels;k++){
               data[i*step+j*channels+k]=256-data[i*step+j*channels+k];
           }
      }
}




//Guardando


img->imageData=(char *) data;
cvSaveImage("salida.bmp",img);


}

La libreria se puede descargar desde: http://sourceforge.net/projects/opencvlibrary/


No hay comentarios:

Publicar un comentario