NumDisparity 超出范围。

NumDisparity is out of range.

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

我对 numDisparities 使用了以下条件。

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

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

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

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

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

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

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

好吧,我是这样修复的。

首先初始化numDisparities_slider

numDisparities_maxValue 

并将此值设置为 bm 并用任何值缩放它。

如下所示。

bm->setNumDisparities(numDisparities_slider * 16);

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