0

我正在尝试提取图像中前景对象的视差图。使用颜色提取前景对象,最终目的是确定提取对象的坐标。下面是视图的蒙版左侧图像,其中提取了带红色的对象

在此处输入图像描述

然后是正确的图像

在此处输入图像描述

背景基本上是一个我想被忽略的巨大窗口,我只关心找到带红色(或我以后选择的任何颜色)对象的位置。

玩转OpenCV例子中SGBM算法的参数后,主要是

int SADWindowSize
int minDisparity
int numberOfDisparities

我无法得到令人满意的结果,更确切地说,该算法无法很好地处理蒙面部分的均匀纹理。我将发布两个示例来说明。是这些SADWindowSize示例中唯一变化的参数,因为它给出了最独特的结果。

示例 1:较小的窗口大小 = 9 和差异数 = 64

在此处输入图像描述

示例 2:较小的窗口大小 = 23,视差数 = 64

在此处输入图像描述

较大的窗口尺寸会产生更多不希望的模糊结果。

问题:在计算视差图时掩盖背景是错误的方法吗?另一种可能的方法是计算视差图然后应用蒙版,但我不确定在这种情况下结果的合理性。

请注意,经过校准的相机和图像(和蒙版)已被校正。

4

1 回答 1

2

在计算深度图之前掩蔽没有意义,因为算法需要比较指定的空间来找到对应的像素。由于大量黑色像素,使用蒙版会导致信息缺失。因此,您尝试的内容对我们来说很直观,但应用程序无法轻松确定哪些像素代表同一个点。

我不确定,但如果你在视差上使用面具左视图,你应该得到你所期望的。或者屏蔽来自reprojectImageTo3D().

于 2017-01-25T13:38:58.267 回答