【问题标题】:How to choose BlockSize and DisparityRange parameters for disparity function of matlab to compute depthmapmatlab视差函数如何选择BlockSize和DisparityRange参数来计算深度图
【发布时间】:2014-08-01 12:22:03
【问题描述】:

我有 2 张立体图像,深度图的质量取决于 disparity 函数的 BlockSizeDisparityRange 参数。目前我通过尝试几个不同的值来修复它们。

是否有更好的方法(代码或 matlab 函数)来修复这些参数,也可能是自动的?

Reference

【问题讨论】:

  • @Abhishek 你的问题很好。确实,这些参数很难获得。一般来说,blockSize 是更多的用户选择。不能太小以免引起噪音,也不能太大而不能保留细节。但是对于 disparityRange,这实际上取决于您的场景。大部分时间都是立体的,除了相机之间的小移动。所以你的 disparityRange 不应该是一个很大的区间。
  • @AlexandreBizeau 感谢您的回复。我知道这些事实。只是想确认一些用于自动计算最佳值的代码/功能。再次感谢您的回复:)
  • @Abhishek 我不知道。也许,您可以尝试使用交叉验证。但为此,您需要一个自动功能来比较图像和这些图像上的得分功能。而且我认为,这不存在。
  • @AlexandreBizeau 我明白了。谢谢:)

标签: matlab matlab-cvst 3d-reconstruction disparity-mapping


【解决方案1】:

第一个问题:您使用的是哪个版本的 MATLAB?旧版本一直使用简单的块匹配算法,这种算法不是很健壮。最新版本(R2014a)默认使用半全局块匹配算法,效果更好。

'DisparityRange' 取决于相机到感兴趣对象的距离。视差与相机的距离成反比,因此如果要重建靠近相机的物体,则需要增加视差范围。

如果您的场景纹理很少,增加 'BlockSize' 会有所帮助。

您可以尝试的其他方法是对输入立体图像进行低通滤波和/或将中值滤波应用于输出视差图。

【讨论】:

  • 是的,我使用的是旧版本,R2011b。我一定会尝试您建议的两种过滤器。非常感谢您的简洁明了的回复。
猜你喜欢
  • 2020-01-26
  • 2014-02-21
  • 1970-01-01
  • 2022-11-21
  • 2018-10-22
  • 2013-10-13
  • 2017-03-19
  • 2021-01-14
  • 2016-08-18
相关资源
最近更新 更多