关于“int main(int argc, char **argv)”型控制台程序的调试
方法1:
打开控制台然后输入命令调试;
方法2:
其中vs中代码如下:
CommandParser cp(argc,argv); // object to parse command line
int lowThreshold = 10; //deafult value
int highThreashold = 100; //deafult value
double minScore=0.7; //deafult value
double greediness=0.8; //deafult value
double total_time =0;
double score= 0;
cv::Point result;
//Load Template image
char *param;
param = cp.GetParameter("-t");
if(param==NULL)
{
cout<<"ERROR: Template image argument missing";
WrongUsage();
return -1;
}
cv::Mat templateImage = cv::imread(param,0);
if( templateImage.empty())
{
cout<<"\nERROR: Could not load Template Image.\n"<<param;
return 0;
}
param = cp.GetParameter("-s");
if(param==NULL)
{
cout<<"ERROR: source image argument missing";
WrongUsage();
return -1;
}
//Load Search Image
cv::Mat searchImage = cv::imread(param, 0);
if( searchImage.empty() )
{
cout<<"\nERROR: Could not load Search Image." <<param;
return 0;
}
param = cp.GetParameter("-l"); //get Low threshold
if(param != NULL )
lowThreshold = atoi(param);
param = cp.GetParameter("-h");
if(param != NULL )
highThreashold = atoi(param);//get high threshold
param = cp.GetParameter("-m"); // get minimum score
if(param != NULL )
minScore = atof(param);
param = cp.GetParameter("-g");//get greediness
if(param != NULL )
greediness = atof(param);
可以直接调试"接收命令输入"的程序,操作也非常简单,流程如下:
项目->属性->调试->命令参数
然后在右边输入具体的命令即可,如下图所示:
需要注意的是,这里的命令不需要再输入exe这一项,VS直接帮你填了。另外就是“工作目录”这一项也需要注意要跟命令中的相对路径进行配合。