2010-07-20 96 views
3

所以我正在做一些與高動態範圍成像(HDRI)相關的研究。我已經在OpenCV中做了一些與對齊和鬼影移除有關的工作(現在還沒有真正的HDR操作或創建),現在我想能夠開始使用HDR圖像。開源的HDR庫建議

誰能推薦一個很好的開源HDR庫,將理想讓我做到以下幾點:

  • 讀/寫的HDR格式(我不致力於爲特定的格式,所以我在這裏可以找到建議)

  • 將曝光包圍的圖像結合起來以獲得HDR圖像,但是通過這種方式,我可以訪問創建的相機功能,以便以後可以使用它來執行諸如使用不同的數量的EB圖像有助於HDR圖像的不同部分。

  • 接口相對容易與OpenCV(詳見下文)。

如果它是一個允許與OpenCV輕鬆接口的庫,那將是理想的。我不認爲OpenCV目前有任何HDR功能,但任何人都可以告訴我是否有辦法將HDR圖像轉換爲OpenCV算法(如修補)可以使用的格式?例如,我知道OpenCV可以使用64位浮點圖像;我可以將HDR圖像轉換爲其中一種格式並運行它嗎?

謝謝。

回答

3

嘿,我很久以前問過這個問題,並且通過google再次偶然發現了我的問題,所以我想我會提供一個快速更新。

我試過Image Magick with Magick ++。經過一段時間的工作後,我設法使用OpenEXR格式,但從未能夠獲得Radiance(.hdr)的工作,這是一個恥辱,因爲我在MATLAB中做了很多工作,只讀取/寫入Radiance for HDR 。

接下來,我試了FreeImage。我能夠讀寫hdr和PFM格式,但是我發現它的格式非常封閉,即很難將數據從一個fibitmap映射到一個OpenCV Mat中,並且幾乎不可能將它返回到一個Fibitmap中。最後,我剛開始使用Portable Float Maps(PFM),並用自己的代碼讀寫它們,因爲格式非常簡單。再次,這是一個研究環境,所以雖然PFM對於長期存儲或商業用途來說是一個相當不明顯的格式,但對於研究目的來說它是相當不錯的。

+1

如何將不同曝光度的多張圖像組合在一起,您是否找到了這個庫? – vishal 2014-06-02 11:52:34

1

我使用FreeImage庫加載HDR圖像(該庫支持大多數原始相機格式,浮點圖像類型和48bpp,64bpp圖像)。

然後我在C++中做了一個轉換器類,它能夠將FreeImage類型的圖像轉換爲OpenCV,反之亦然。 FreeImage還具有色調映射轉換功能,可將HDR圖像更改爲32bpp圖像。

+0

嘿,這很有幫助。你有任何恢復相機功能的建議嗎?我相信這可以用Pfstools完成,但我還沒有機會嘗試這些。謝謝。 – SSilk 2010-07-31 16:05:31