Updated CLI for GPU samples

This commit is contained in:
Alexey Spizhevoy
2011-10-24 08:34:15 +00:00
parent 5656a9dd6b
commit a2090a44db
10 changed files with 247 additions and 131 deletions

View File

@@ -9,6 +9,7 @@
using namespace cv;
using namespace std;
bool help_showed = false;
struct Params
{
@@ -71,6 +72,14 @@ private:
double work_fps;
};
void printHelp()
{
cout << "Usage: stereo_match_gpu\n"
<< "\t--left <left_view> --right <right_view> # must be rectified\n"
<< "\t--method <stereo_match_method> # BM | BP | CSBP\n"
<< "\t--ndisp <number> # number of disparity levels\n";
help_showed = true;
}
int main(int argc, char** argv)
{
@@ -78,12 +87,13 @@ int main(int argc, char** argv)
{
if (argc < 2)
{
cout << "Usage: stereo_match_gpu\n"
<< "\t-l <left_view> -r <right_view> # must be rectified\n"
<< "\t-m <stereo_match_method> # BM | BP | CSBP\n";
printHelp();
return 1;
}
App app(Params::read(argc, argv));
Params args = Params::read(argc, argv);
if (help_showed)
return -1;
App app(args);
app.run();
}
catch (const exception& e)
@@ -105,21 +115,21 @@ Params Params::read(int argc, char** argv)
{
Params p;
for (int i = 1; i < argc - 1; i += 2)
for (int i = 1; i < argc; i++)
{
string key = argv[i];
string val = argv[i + 1];
if (key == "-l") p.left = val;
else if (key == "-r") p.right = val;
else if (key == "-m")
if (string(argv[i]) == "--left") p.left = argv[++i];
else if (string(argv[i]) == "--right") p.right = argv[++i];
else if (string(argv[i]) == "--method")
{
if (val == "BM") p.method = BM;
else if (val == "BP") p.method = BP;
else if (val == "CSBP") p.method = CSBP;
else throw runtime_error("unknown stereo match method: " + val);
if (string(argv[i + 1]) == "BM") p.method = BM;
else if (string(argv[i + 1]) == "BP") p.method = BP;
else if (string(argv[i + 1]) == "CSBP") p.method = CSBP;
else throw runtime_error("unknown stereo match method: " + string(argv[i + 1]));
i++;
}
else if (key == "-ndisp") p.ndisp = atoi(val.c_str());
else throw runtime_error("unknown key: " + key);
else if (string(argv[i]) == "--ndisp") p.ndisp = atoi(argv[++i]);
else if (string(argv[i]) == "--help") printHelp();
else throw runtime_error("unknown key: " + string(argv[i]));
}
return p;