来自前景蒙版图像的视差图

时间:2017-01-25 12:31:29

标签: opencv computer-vision disparity-mapping

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

enter image description here

然后有正确的图像

enter image description here

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

在OpenCV示例中使用SGBM算法的参数后,主要是

int SADWindowSize
int minDisparity
int numberOfDisparities

我无法获得令人满意的结果,更确切地说,算法无法很好地处理蒙版部分的均匀纹理。我将发布两个例子来说明。 SADWindowSize是这些示例中唯一不同的参数,因为它提供了最独特的结果。

示例1:窗口大小= 9,差异数= 64

enter image description here

示例2:窗口尺寸较小= 23且视差数= 64

enter image description here

较大的窗口尺寸会产生更多不良的污点。

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

请注意,相机和校准以及图像(和遮罩)已得到纠正。

1 个答案:

答案 0 :(得分:2)

在计算深度图之前屏蔽并没有意义,因为算法需要比较指定的空间来找到相应的像素。由于大量黑色像素,使用掩模会导致信息不足。所以,你所尝试的对我们而言是直观的,但应用程序无法轻易确定哪些像素代表相同的点。

我不确定但是如果你在左视图中使用蒙版来表达差异,那么你应该得到你期待的东西。或屏蔽// Called by using // Changed a bit, because of multiple overloads // @Html.Select2DropdownFor(o => o.InTeamsUID).ToHtml("autocompleteUrl",null, new DropdownOptions {Multiple = true}) private readonly Expression<Func<TModel, TProperty>> _propertyExpression; public MvcHtmlString ToHtml(string url, IDictionary<string, object> htmlAttributes, DropdownOptions options) { var propertyName = _htmlHelper.NameFor(_propertyExpression).ToString(); var propertyId = _htmlHelper.IdFor(_propertyExpression).ToString(); var propertyValueString = _htmlHelper.ValueFor(_propertyExpression); if (propertyValueString != null) propertyValueString = new MvcHtmlString(propertyValueString.ToString()); var container = new TagBuilder("span"); if (!_htmlHelper.ViewData.ModelState.IsValidField(_htmlHelper.NameFor(_propertyExpression).ToString())) container.AddCssClass("has-error"); var input = new TagBuilder("select") .Merge(htmlAttributes, true) .Class(_selectOptions.Multiple ? "enable-remote-multi-select" : "enable-remote-select") .Attribute("data-options-url", url) .Attribute("id", propertyId) .Attribute("name", propertyName) .Attribute("data-val", propertyValueString); 的输出。