我正在使用opencv,并且有一个接受命令行变量的函数:
int start(int argc, char** argv)
{
cv::CommandLineParser parser(argc, argv, keys);
if(parser.has("help")) {
parser.printMessage();
return 0;
}
....
}
我想要做的是,有另一个函数将变量传递给这个,而不是像现在这样使用命令行。 我传递它以完美运行的命令行是:
-h=6 -w=8 -pf=defaultConfig.xml -t=charuco -v=bmCalib2.mov -sz=0.045 -d=1
所以我有这个功能:
void main()
{
char* passArg[7] = { "-h=6", "-w=8","-pf=defaultConfig.xml", "-t=charuco","-v=bmCalib2.mov", "-sz=0.045", " -d=1" };
start(7,passArg);
}
它编译并运行,但结果不同(它是校准应用程序,命令行校准,功能版本没有)。
这是发送int argc, char** argv
而不是使用命令行的正确方法吗?
谢谢。
答案 0 :(得分:0)
char* passArg[8] = { NULL,"-h=6", "-w=8","-pf=defaultConfig.xml", "-t=charuco","-v=bmCalib2.mov", "-sz=0.045", " -d=3" };
显然.exe
通常是命令行启动时给出的第一个变量。