【问题标题】:How to create a disparity map?如何创建视差图?
【发布时间】:2012-01-04 00:01:57
【问题描述】:

好的,所以我已经实现了一个立体对应算法,它采用立体图像对,将左侧图像上的一个点与右侧图像上的一个点进行匹配,并找到这些点之间的差异。我需要将其写入视差图。

我发现的视差图是灰度图像,浅灰色表示深度较浅,深灰色表示深度较深。如何将我的一组视差转换为这样的灰度图像?我的视差很小,即像素之间只有两个距离,这如何转化为灰度像素值?

必须有一种标准的视差图编译方法,但到目前为止我的所有搜索都没有产生任何结果。

【问题讨论】:

    标签: java image pixel disparity-mapping


    【解决方案1】:

    创建视差图时的一个简单解决方案是,最大距离变为黑色,即 rgb(0,0,0),而最小距离(即 0)变为白色,即 rgb(255,255,255)。如果您将 255 除以最大距离,则您会找到增量值。最后,只需遍历所有视差并将每个 rgb 值设置为 255 减去视差乘以增量值。 Viola,你有你的视差图。

    因此,在您的示例中,您的最大距离听起来只有 2 个像素(不幸的是,这意味着您的地图不会有很多细节)。无论如何 255 / 2 = 127.5。这意味着 127.5 是增量值。因此,视差为 0 的任何地方,rgb 值为 255 - (0 * 127.5) 或 rgb(255,255,255),视差为 1 的任何地方 rgb 值为 255 - (1 * 127.5),我们将四舍五入为 128,因此 rgb (128,128,128) 并且视差为 2 的任何地方的 rgb 值为 255 - (2 * 127.5) 或 rgb(0,0,0)。

    这里还有一些资源:
    How MathWorks does it
    Jay Rambhia has a good blog explaining how to program one
    希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 2011-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      • 1970-01-01
      • 2015-06-11
      相关资源
      最近更新 更多