opencv---图像反色(1)

建立C++项目,再 将OpenCV的与VS2008的参数配置好后,输入程序:

 

////////////////////////////////////////////////////////////////////////
//
// hello-world.cpp
//
// 该程序从文件中读入一幅图像,将之反色,然后显示出来. (图像反色)
//
////////////////////////////////////////////////////////////////////////
#include"stdafx.h"
#include
#include
#include
#include
#include
 
int main(int argc, char *argv[])
{
  IplImage* img = 0;
  int height,width,step,channels;
  uchar *data;
  int i,j,k;
  const char* imagename = argc > 1 ? argv[1] : "lena.jpg";
 

/*下面这小段可不要的*/

 /* if(argc<2){
    printf("Usage: main \n\7");
    exit(0);
  } */

   // load an image 
  img=cvLoadImage(imagename);
  if(!img){
    printf("Could not load image file: %s\n",argv[1]);
    exit(0);
  }
 
  // get the image data
  height    = img->height;
  width     = img->width;
  step      = img->widthStep;
  channels  = img->nChannels;
  data      = (uchar *)img->imageData;
  printf("Processing a %dx%d image with %d channels\n",height,width,channels);
 
  // create a window
  cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE);
  cvMoveWindow("mainWin", 100, 100);
 
  // invert the image
  // 相当于 cvNot(img);
  for(i=0;i     data[i*step+j*channels+k]=255-data[i*step+j*channels+k];
 
  // show the image
  cvShowImage("mainWin", img );
 
  // wait for a key
  cvWaitKey(0);
 
  // release the image
  cvReleaseImage(&img );
  return 0;
}

将Lena.jpg放在这个大的helloopencv文件夹下的小的helloopencv里面,调试运行即可,结果如下:

 

 

你可能感兴趣的:(OpenCV)