invImage.c
上传用户:banwdc
上传日期:2016-06-25
资源大小:2871k
文件大小:1k
源码类别:

OpenCV

开发平台:

Visual C++

  1. /*  程序名:invImage.c
  2. 功能:读入图像文件,做图像反转,然后显示图像在屏幕上
  3. */
  4. #include <stdlib.h>
  5. #include <stdio.h>
  6. #include <math.h>
  7. #include <cv.h>
  8. #include <highgui.h>
  9. int main(int argc, char *argv[])
  10. {
  11.    IplImage* img = 0; 
  12.    int height,width,step,channels;
  13.    uchar *data;
  14.   int i,j,k;
  15.    if(argc<2)
  16. {
  17.      printf("Usage: main <image-file-name>n7");
  18.      exit(0);
  19.    }
  20.    // 载入图像  
  21.    img=cvLoadImage(argv[1],-1);
  22.    if(!img)
  23. {
  24.     printf("Could not load image file: %sn",argv[1]);
  25.      exit(0);
  26.    }
  27.    // 获取图像信息
  28.    height    = img->height;  
  29.    width     = img->width;
  30.    step      = img->widthStep;
  31.    channels  = img->nChannels;
  32.    data      = (uchar *)img->imageData;
  33.    printf("Processing a %dx%d image with %d channelsn",height,width,channels); 
  34.    // 创建窗口
  35.    cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE); 
  36.    cvMoveWindow("mainWin", 100, 100);
  37.    // 反转图像
  38.    for(i=0;i<height;i++) for(j=0;j<width;j++) for(k=0;k<channels;k++)
  39.      data[i*step+j*channels+k]=255-data[i*step+j*channels+k];
  40.    // 显示图像
  41.    cvShowImage("mainWin", img );
  42. cvWaitKey(0);
  43.    cvReleaseImage(&img );
  44.    return 0;
  45. }