我通过 g++ 编译器获得了“stereo_match”。
我的环境是:
- VirtualBox 的 Ubuntu 15.1
- OpenCV 3.1.0
不知道运行命令。我试过了:
./stereo_match --left left12.jpg --right right12.jpg --method BM --ndisp 32.
但它失败并出现错误:
OpenCV Error: Bad argument (undeclared position 0 requested) in getByIndex, file /home/usera/opencv-3.1.0/modules/core/src/command_line_parser.cpp line 169
terminate called after throwing an instance of 'cv::Exception'
what(): /home/usera/opencv-3.1.0/modules/core/src/command_line_parser.cpp:169: error: (-5) undeclared position 0 requested in function getByIndexAborted (core dumped)
最佳答案
这是由错误的解析器键字符串引起的。它缺少两个文件名的位置参数(最重要的参数!)
在“stereomatch.cpp”中,而不是:
cv::CommandLineParser parser(argc, argv,
"{help h||}{algorithm||}{max-disparity|0|}{blocksize|0|}{no-display||}{scale|1|}{i||}{e||}{o||}{p||}");
它应该是:
cv::CommandLineParser parser(argc, argv,
"{@image1||} {@image2||} {help h||}{algorithm||}{max-disparity|0|}{blocksize|0|}{no-display||}{scale|1|}{i||}{e||}{o||}{p||}");
小错误,可能是以前版本的遗留问题。
关于c++ - 运行 OpenCV_Sample 的 stereo_match.cpp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36547594/