来自前景蒙版图像的视差图
Disparity map from foreground masked images
我正在尝试提取图像中前景对象的视差图。使用颜色提取前景对象,最终目的是确定提取对象的坐标。下面是视图的蒙版左侧图像,其中提取了红色对象
然后是右图
背景基本上是一个巨大的window,我想被忽略,我只关心找到微红色(或我后来选择的任何颜色)对象的位置。
把玩OpenCV例子中SGBM算法的参数,主要是
int SADWindowSize
int minDisparity
int numberOfDisparities
我没能得到满意的结果,更确切地说,算法不能很好地处理蒙版部分的均匀纹理。我将post两个例子来说明。 SADWindowSize
是这些示例中唯一变化的参数,因为它给出了最独特的结果。
示例 1:较小的 window 大小 = 9,差异数 = 64
示例 2:较小的 window 大小 = 23,差异数 = 64
window 尺寸越大,产生的模糊效果越多,这是不受欢迎的。
问题:在计算视差图的时候把背景遮掉是不是错误的做法?另一种可能的方法是计算视差图,然后应用蒙版,但我不确定这种情况下结果的合理性。
请注意,相机和校准以及图像(和蒙版)已校正。
在计算深度图之前进行遮罩是没有意义的,因为算法需要比较指定的space来找到对应的像素。由于大量黑色像素,使用掩码会导致信息不足。所以,你的尝试对我们来说是直观的,但应用程序无法轻易确定哪些像素代表相同的点。
我不确定,但如果您对视差的左视图使用蒙版,您应该会得到您期望的结果。或者屏蔽 reprojectImageTo3D()
.
的输出
我正在尝试提取图像中前景对象的视差图。使用颜色提取前景对象,最终目的是确定提取对象的坐标。下面是视图的蒙版左侧图像,其中提取了红色对象
然后是右图
背景基本上是一个巨大的window,我想被忽略,我只关心找到微红色(或我后来选择的任何颜色)对象的位置。
把玩OpenCV例子中SGBM算法的参数,主要是
int SADWindowSize
int minDisparity
int numberOfDisparities
我没能得到满意的结果,更确切地说,算法不能很好地处理蒙版部分的均匀纹理。我将post两个例子来说明。 SADWindowSize
是这些示例中唯一变化的参数,因为它给出了最独特的结果。
示例 1:较小的 window 大小 = 9,差异数 = 64
示例 2:较小的 window 大小 = 23,差异数 = 64
window 尺寸越大,产生的模糊效果越多,这是不受欢迎的。
问题:在计算视差图的时候把背景遮掉是不是错误的做法?另一种可能的方法是计算视差图,然后应用蒙版,但我不确定这种情况下结果的合理性。
请注意,相机和校准以及图像(和蒙版)已校正。
在计算深度图之前进行遮罩是没有意义的,因为算法需要比较指定的space来找到对应的像素。由于大量黑色像素,使用掩码会导致信息不足。所以,你的尝试对我们来说是直观的,但应用程序无法轻易确定哪些像素代表相同的点。
我不确定,但如果您对视差的左视图使用蒙版,您应该会得到您期望的结果。或者屏蔽 reprojectImageTo3D()
.