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

C++ 使用;argv";传递图像文件C++;,c++,image,main,C++,Image,Main,我目前正在测试一个图像分割程序,需要通过主程序中的测试图像文件,如下所示。我已经找了一段时间了。我希望能举一个例子,说明如何使用测试图像文件来使用或替换“argv”,从而生成一个输出文件。非常感谢您的指导 ^] int main(int argc,char**argv){ 如果(argc!=6){ fprintf(标准指令,“用法:%s西格玛k最小输入(ppm)输出(ppm)\n”,argv[0]); 返回1; } 浮点西格玛=atof(argv[1]); 浮动k=atof(argv[2]);

我目前正在测试一个图像分割程序,需要通过主程序中的测试图像文件,如下所示。我已经找了一段时间了。我希望能举一个例子,说明如何使用测试图像文件来使用或替换“argv”,从而生成一个输出文件。非常感谢您的指导

^]

int main(int argc,char**argv){
如果(argc!=6){
fprintf(标准指令,“用法:%s西格玛k最小输入(ppm)输出(ppm)\n”,argv[0]);
返回1;
}
浮点西格玛=atof(argv[1]);
浮动k=atof(argv[2]);
int min_size=atoi(argv[3]);
printf(“正在加载输入图像。\n”);
图像*输入=loadPPM(argv[4]);
printf(“处理”);
国际货币基金组织;
image*seg=段图像(输入、sigma、k、最小大小和数量);
savePPM(seg,argv[5]);
printf(“获取了%d个组件”,num_ccs);
printf(“完成!uff…这是一项艰苦的工作。\n”);
返回0;
}

只需将图像文件的名称作为参数提供给程序即可

a.out 1.0 1.0 100输入输出

Input
Output
分别是指向输入图像和输出图像的路径

更多信息:

只需将图像文件的名称作为参数提供给程序即可

a.out 1.0 1.0 100输入输出

Input
Output
分别是指向输入图像和输出图像的路径

更多信息:

只需将图像文件的名称作为参数提供给程序即可

a.out 1.0 1.0 100输入输出

Input
Output
分别是指向输入图像和输出图像的路径

更多信息:

只需将图像文件的名称作为参数提供给程序即可

a.out 1.0 1.0 100输入输出

Input
Output
分别是指向输入图像和输出图像的路径

更多信息:

我很好奇您尝试了什么,以及它是如何失败的。如果文件路径中有空格,您应该使用引号。例如:
“path\to\file name.ext”
Rob Kennedy,我尝试用图像文件路径替换argv[4],用输出图像的名称替换argv[5]。我还用示例中给出的值替换了sigma、k和minu大小。但在运行程序时,这并没有生成任何输出图像文件。它从来没有得到这个阶段:printf(“得到%d个组件”,num_ccs);printf(“完成!uff…这是一项艰苦的工作。\n”);我很好奇你尝试了什么,以及它是如何失败的。如果文件路径中有空格,你应该使用引号。例如:
“path\to\file name.ext”
Rob Kennedy,我尝试用图像文件路径替换argv[4],用输出图像的名称替换argv[5]。我还用示例中给出的值替换了sigma、k和minu大小。但在运行程序时,这并没有生成任何输出图像文件。它从来没有得到这个阶段:printf(“得到%d个组件”,num_ccs);printf(“完成!uff…这是一项艰苦的工作。\n”);我很好奇你尝试了什么,以及它是如何失败的。如果文件路径中有空格,你应该使用引号。例如:
“path\to\file name.ext”
Rob Kennedy,我尝试用图像文件路径替换argv[4],用输出图像的名称替换argv[5]。我还用示例中给出的值替换了sigma、k和minu大小。但在运行程序时,这并没有生成任何输出图像文件。它从来没有得到这个阶段:printf(“得到%d个组件”,num_ccs);printf(“完成!uff…这是一项艰苦的工作。\n”);我很好奇你尝试了什么,以及它是如何失败的。如果文件路径中有空格,你应该使用引号。例如:
“path\to\file name.ext”
Rob Kennedy,我尝试用图像文件路径替换argv[4],用输出图像的名称替换argv[5]。我还用示例中给出的值替换了sigma、k和minu大小。但在运行程序时,这并没有生成任何输出图像文件。它从来没有得到这个阶段:printf(“得到%d个组件”,num_ccs);printf(“完成!uff…这是一项艰苦的工作。\n”);我在“解决方案资源管理器”>“配置属性”>“调试”中右键单击了我的项目。在命令参数中,我键入了:“C:\Projects\segment\Debug>segment.exe”0.5 500 20“C:\Projects\segment\segment\image.ppm”“C:\Projects\segment\segment\output.ppm”,试图确保没有留下任何不必要的空格。然而,输出时argc=7,尽管它应该是6。如果您能提供有关如何解决此问题的任何指导,我将不胜感激。@DavidPears没有将该程序作为参数包含在内。我在“解决方案资源管理器”>“配置属性”>“调试”中右键单击了我的项目。在命令参数中,我键入了:“C:\Projects\segment\Debug>segment.exe”0.5 500 20“C:\Projects\segment\segment\image.ppm”“C:\Projects\segment\segment\output.ppm”,试图确保没有留下任何不必要的空格。然而,输出时argc=7,尽管它应该是6。如果您能提供有关如何解决此问题的任何指导,我将不胜感激。@DavidPears没有将该程序作为参数包含在内。我在“解决方案资源管理器”>“配置属性”>“调试”中右键单击了我的项目。在命令参数中,我键入了:“C:\Projects\segment\Debug>segment.exe”0.5 500 20“C:\Projects\segment\segment\image.ppm”“C:\Projects\segment\segment\output.ppm”,试图确保没有留下任何不必要的空格。然而,输出时argc=7,尽管它应该是6。如果您能提供有关如何解决此问题的任何指导,我将不胜感激。@DavidPears没有将该程序作为参数包含在内。我在“解决方案资源管理器”>“配置属性”>“调试”中右键单击了我的项目。在命令参数中,我键入了:“C:\Projects\segment\Debug>segment.exe”0.5 500 20“C:\Projects\segment\segment\image.ppm”“C:\Projects\segment\segment\output.ppm”,试图确保没有留下任何不必要的空格。然而,输出时argc=7,尽管它应该是6。如果你能给我一个机会,我将不胜感激
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;
}