使用" argv"传递图像文件C ++

时间:2015-10-26 21:10:08

标签: c++ image main

我目前正在测试图像分割程序,需要以某种方式在主程序中传递测试图像文件,如下所示。一直在寻找。我将很感激如何使用或替换" argv"使用测试图像文件,从而生成输出文件。非常感谢您的指导!

http://cs.brown.edu/~pff/segment/[ ^]

int main(int argc, char **argv) {
  if (argc != 6) {
    fprintf(stderr, "usage: %s sigma k min input(ppm) output(ppm)\n", argv[0]);
    return 1;
  }

  float sigma = atof(argv[1]);
  float k = atof(argv[2]);
  int min_size = atoi(argv[3]);

  printf("loading input image.\n");
  image<rgb> *input = loadPPM(argv[4]);

  printf("processing\n");
  int num_ccs; 
  image<rgb> *seg = segment_image(input, sigma, k, min_size, &num_ccs); 
  savePPM(seg, argv[5]);

  printf("got %d components\n", num_ccs);
  printf("done! uff...thats hard work.\n");

  return 0;
}

1 个答案:

答案 0 :(得分:3)

只需提供图像文件的名称作为程序的参数。

a.out 1.0 1.0 100 Input Output

InputOutput分别是输入图像和输出图像的路径。

更多信息: What does int argc, char *argv[] mean?