2017-01-09 122 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