3

所以我正在做一些与高动态范围成像(HDRI)相关的研究。我已经在 OpenCV 中完成了一些与对齐和重影消除相关的工作(还没有实际的 HDR 操作或创建),现在我希望能够开始使用 HDR 图像。

任何人都可以推荐一个好的开源 HDR 库,理想情况下可以让我执行以下操作:

  • 读/写 HDR 格式(我还没有致力于特定的格式,所以我愿意在这里接受建议)

  • 组合曝光包围的图像以获得 HDR 图像,但以一种允许我访问创建的相机功能的方式,以便我以后可以使用它来做一些事情,例如使用不同数量的 EB 图像来为 HDR 的不同部分做出贡献图片。

  • 与 OpenCV 的接口相对容易(详见下文)。

如果它是一个允许与 OpenCV 轻松交互的库,那将是理想的。我认为 OpenCV 中目前没有任何 HDR 功能,但是谁能告诉我是否有办法将 HDR 图像转换为 OpenCV 算法(如修复)可以使用的格式?例如,我知道 OpenCV 可以处理 64 位浮点图像;我可以将 HDR 图像转换为其中一种格式并使用它运行吗?

谢谢。

4

3 回答 3

3

嘿,我很久以前问过这个问题,只是通过谷歌再次偶然发现了我的问题,所以我想我会提供一个快速更新。

我用 Magick++ 尝试了 Image Magick。经过相当多的工作,我设法让它与 OpenEXR 格式一起工作,但始终无法让 Radiance (.hdr) 工作,这很遗憾,因为我在 MATLAB 中做了很多工作,它只读取/写入 HDR 的 Radiance .

接下来,我尝试了 FreeImage。我可以用它来读/写 hdr 和 PFM 格式,但我发现 Fibitmap 格式真的很封闭,即很难将数据从 fibitmap 获取到 OpenCV Mat 中,并且几乎不可能将其返回到 Fibitmap 中。

最后,我刚刚开始使用便携式浮动地图 (PFM),并用我自己的代码读写它们,因为格式非常简单。同样,这是在研究环境中,所以虽然 PFM 对于长期存储或商业用途来说是一种非常笨拙的格式,但它对于研究目的来说非常好。

于 2011-03-06T22:50:31.233 回答
1

我正在使用 FreeImage 库加载 HDR 图像(该库支持大多数原始相机格式、浮点图像类型和 48bpp、64bpp 图像)。

然后我在 C++ 中做了一个转换器类,它能够将 FreeImage 类型的图像转换为 OpenCV,反之亦然。FreeImage 还具有色调映射转换功能,可将 HDR 图像更改为 32bpp 图像。

于 2010-07-30T15:31:45.553 回答
0

我会说转换可能只是最简单的。我会查看 imagemagick ( http://www.imagemagick.org ) 库进行转换。

于 2010-07-23T02:29:13.303 回答