开源 HDR 库推荐

3
所以我正在做与高动态范围成像(HDRI)相关的研究。我已经在OpenCV中做了一些有关对齐和去除幽灵影像的工作,现在我想开始使用HDR图像进行操作。
有人可以推荐一个好的开源HDR库,最好能够让我做到以下几点:
1. 读/写HDR格式(我还没有确定特定的格式,所以我对此很开放) 2. 组合曝光分离图像以获取HDR图像,但可以通过某种方式访问创建的摄像机功能,以便稍后可以使用它来执行如使用不同数量的EB图像来为HDR图像的不同部分做贡献等操作。 3. 与OpenCV相对容易地接口(有关详细信息,请参见下文)。
如果这是一个允许与OpenCV轻松接口的库,那将是理想的。我认为目前OpenCV中没有HDR功能,但是有人能告诉我是否有将HDR图像转换为OpenCV算法(例如inpainting)可以使用的格式的方法吗?例如,我知道OpenCV可以使用64位浮点图像;我只需将HDR图像转换为其中之一的格式,并运行即可吗?
谢谢。
3个回答

3

嘿,我很久以前就问过这个问题,现在通过谷歌又找到了我的问题,所以我想提供一个快速更新。

我尝试使用Magick++和Image Magick。经过相当长的时间,我设法让它与OpenEXR格式配合使用,但从未能够使Radiance (.hdr)正常工作,这很遗憾,因为我在MATLAB中做了很多只读/写Radiance用于HDR的工作。

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

最后,我只是开始使用Portable Float Maps (PFMs),并使用自己的代码读写它们,因为该格式非常简单。再次说明,这是在研究环境中,因此虽然PFM对于长期存储或商业用途来说是一个相当笨重的格式,但对于研究目的来说还是很好的。


1
合并多个曝光不同的图像,你有找到相关库吗? - Vishal

1

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

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


嘿,这很有帮助。你有恢复相机功能的建议吗?我相信可以用Pfstools来实现,但我还没有试过。谢谢。 - SSilk

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接