0

我正在使用调整参数进行块匹配。

我对 numDisparities 使用了以下条件。

if (bmTuneVar::numDisparities_slider < 16 )  bmTuneVar::numDisparities_slider = 16;

    if (bmTuneVar::numDisparities_slider % 16 == 0) bmTuneVar::numDisparities_slider+ 16;

当我从轨迹栏滑块获得价值时。我得到了超出范围的错误。并且 numDisparities 应大于 0 并除以 16。

这就是我正在检查我的上述声明的内容。那么我不明白为什么它会产生错误。任何人都可以请指出原因。谢谢。

4

2 回答 2

0
if (bmTuneVar::numDisparities_slider % 16 == 0) bmTuneVar::numDisparities_slider+ 16;

您的想法是将 numDisparities_slider 增加 16?那么应该是

if (bmTuneVar::numDisparities_slider % 16 == 0) bmTuneVar::numDisparities_slider+=16;
于 2017-08-23T12:24:27.127 回答
0

好吧,我像这样修复了它。

首先初始化 numDisparities_slider

numDisparities_maxValue 

并将此值设置为 bm 并使用任何值对其进行缩放。

如下所示。

bm->setNumDisparities(numDisparities_slider * 16);

希望这对其他人也有帮助。干杯

于 2017-08-25T12:47:51.223 回答