使用OpenGL读取深度图

时间:2012-10-18 18:51:56

标签: opengl glsl depth-buffer depth-testing

我已经提取了2张图像的深度图并将它们存储为.tif文件

现在我想使用openGL根据它们的深度加入这两个图像

所以我想从.tif文件中读取每个图像的深度,然后使用该深度绘制具有更高深度的像素

使深度图更加清晰是这样的两个图像 link

所以说我有前面的图像,我想加入这个图像

link

我的问题是如何从.tif文件中读取这个深度

1 个答案:

答案 0 :(得分:2)

好的,我会去; - )

我看到图像只是灰度,所以如果“深度”信息只是像素的强度,“加入”它们可能只是添加像素的问题。这通常被称为“混合”,但我不知道你还有什么意思。

所以,你需要;

  1. 将2张图像读入内存
  2. 对于每个像素(假设两个图像大小相同):
    • 从图像A [row,col]
    • 读取强度
    • 从图像B [row,col]
    • 读取强度
    • 将最大值(A [row,col],B [row,col])写入C [row,col]
  3. 保存图片C - 这是您新的“加入”图片。
  4. 现在OpenGL没有任何内置支持加载/保存图像,因此您需要找到第三方库,如FreeImage或类似的。

    所以,这是很多工作。我想知道你是否真的想要一个OpenGL解决方案,或者只是假设OpenGL对图形工作有好处。如果上面的算法真的是你想要的,你可以在几分钟内用C#这样的东西。它内置支持加载(某些格式)图像文件,并使用Bitmap类访问像素。由于您自己创建了这些图像,因此可能不受TIFF格式的约束。