0

我通过 g++ 编译器获得了“stereo_match”。

我的环境是:

  • Ubuntu 15.1 的 VirtualBox
  • OpenCV 3.1.0

我不知道运行命令。我试过了 :

./stereo_match --left left12.jpg --right right12.jpg --method BM --ndisp 32.

但它失败并出现错误:

OpenCV 错误:getByIndex 文件 /home/usera/opencv-3.1.0/modules/core/src/command_line_parser.cpp 第 169 行中的错误参数(请求的未声明位置 0)

抛出'cv :: Exception'实例后调用终止
what():/home/usera/opencv-3.1.0/modules/core/src/command_line_parser.cpp:169:错误:(-5)请求未声明的位置0在函数 getByIndex

中止(核心转储)

4

1 回答 1

2

这是由错误的解析器密钥字符串引起的。它缺少两个文件名的位置参数(最重要的参数!)

在“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||}");

微不足道的错误,可能是以前版本的遗留物。

于 2016-09-15T13:31:42.273 回答