2017-01-09 60 views
0

我目前正在研究需要使用Camera2以便自定義HDR設置的HDR應用程序。從Android中的DNG文件中檢索像素

我開發了一個自定義的算法來檢索原始DNG圖像中的某些數據,我想在Android上實現它。

我很遺憾不是Java/Android的專家,所以我教自己如何編寫代碼。使用其他格式,我通常使用位圖來檢索像素數據。 (這與現有方法相比是一項相對簡單的工作)

關於DNG文件,我沒有找到任何文件顯示如何檢索像素數據。我想緩衝圖像,但DNG文件格式包含像素以外的許多信息,恐怕我無法使用bufferstream找到提取策略。 (我只想將像素存儲在數組中)

任何人都有想法?將非常感謝一些提示。

問候

+0

你的問題需要更多的細節 - 你是否從磁盤讀取DNG圖像?圖像來自哪裏?或者你是否從camera2 API讀取RAW圖像?在後一種情況下,根本沒有DNG文件。 –

+0

你好,首先感謝你的回覆。我們正在做的是:我們使用相機2 api來檢索圖像。我們確實爲同一圖像獲得2種類型的文件:DNG和JPEG。我想使用DNG文件。我只想從特定文件中檢索圖像的像素。假設我從外部源獲取我的DNG文件,解決方案是如何加載像素?我目前被迫將DNG文件轉換爲位圖,然後應用灰度。我不要那個。 – Patrick

+0

Camera2不直接生成DNG - 它生成普通RAW緩衝區,然後通過DngCreator將其保存到DNG。你是在最初的RAW緩衝區上操作,還是保存DNG然後加載它們?一般來說,DNG不是完整烘焙的圖像,因此需要相當多的代碼才能完全呈現它們 - 請參閱Adobe的DNG SDK(https://www.adobe.com/support/downloads/dng/dng_sdk.html) –

回答

0

Camera2不直接產生DNGs - 它產生普通RAW緩衝區,然後你就可以保存到通過DngCreator一個DNG。

您是在最初的RAW緩衝區上運行,還是保存DNG然後加載它們?

一般來說,DNG並不是完整烘焙的圖像,因此需要相當多的代碼才能完全呈現它們 - 請參閱Adobe's DNG SDK

+0

非常感謝您的回答。這不是一個直接的答案,但它確實引導我成爲一個答案。爲了澄清,我負責操作hdr算法。我不負責捕獲。我通過我的同事製作的另一個應用程序直接接收DNG文件格式。我可以讓他只是簡單地給我發送原始文件,或者我可以使用你的鏈接瞭解DNG文件如何編碼,並能夠創建我的正確的提取算法。 – Patrick