int main(int argc, char *argv[])中argc和argv的解释

来源:互联网 发布:大数据工资一般多少 编辑:程序博客网 时间:2024/05/22 13:50
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <cv.h>
#include <highgui.h>

#pragma comment(lib, "cv.lib")    
#pragma comment(lib, "cxcore.lib")    
#pragma comment(lib, "highgui.lib")

int main(int argc, char *argv[])
{
  IplImage* img = 0; 
  int height,width,step,channels;
  uchar *data;
  int i,j,k;
  if(argc<3)
{
    printf("Usage: main <image-file-name>\n\7");
    exit(0);
  }
  // 载入图像  
  img=cvLoadImage(argv[1],-1);
  if(!img)
{
    printf("Could not load image file: %s\n",argv[2]);
    exit(0);
  }
  // 获取图像信息
  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); 
  // 创建窗口
  cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE); 
  cvMoveWindow("mainWin", 100, 100);

  // 反转图像
  for(i=0;i<height;i++) for(j=0;j<width;j++) for(k=0;k<channels;k++)
    data[i*step+j*channels+k]=255-data[i*step+j*channels+k];
  // 显示图像
  cvShowImage("mainWin", img );
cvWaitKey(0);
  cvReleaseImage(&img );
  return 0;
}

在opencv的编程中经常使用上述main函数的使用方式
其中argc代表:输入的参数个数    
其中argv代表:此可执行文件的存储路径、程序变量
例如:你在D盘下建立了一个工程,并命名为cvshow,同时在此工程下建立了一个名为cvshow的cpp源文件,
当执行程序是将在Debug文件夹下生成show.exe可执行文件,
当然Debug文件位于工程cvshow下,所以可执行文件show.exe的存储路径为D:\cvshow\Debug\show.exe,即argv[0]的值
  argv[1]、argv[2]、argv[3]一次代表输入变量,变量以空格相隔开
 实例:加入输入变量为:baboon.jpg lena.jpg那么,argc==2  argv[0]==D:\cvshow\Debug\show.exe argv[1]=baboon.jpg argv[2]==lena.jpg
变量的添加方法:Project-Setting-Debug-Pragram argument
变量之间用空格分开
0 0
原创粉丝点击