1

我正在尝试通过堆叠它们来处理多个 RAW DNG 图像以生成 1 个堆叠的 RAW DNG 图像。首先,我将 DNG 像素数据转换为字节数组,因为 DNG 是数字负数,然后我使用“~”翻转字节值并将它们转换为无符号整数,现在我计算平均值。对于平均结果,我用“~”将其翻转并保存在“newData”字节数组中。

下面是平均 2 个 DNG 图像的片段。这些图像是从 OnePlus 3 以 RAW (16MP DNG) 格式拍摄的。

byte[] previousData //from previous DNG image

ByteBuffer rawByteBuffer = mImage.getPlanes()[0].getBuffer();
byte[] data = new byte[rawByteBuffer.remaining()];
rawByteBuffer.get(data); // from current DNG image
for(int i=0; i<data.length; i++){
    int currentInt = Byte.toUnsignedInt((byte) ~data[i]); 
    int previousInt = Byte.toUnsignedInt((byte) ~previousData[i]);
    int sumInt = currentInt + previousInt;
    int averageInt = sumInt/2;
    newData[i] = (byte) (~averageInt); // store average into newData
}
// save newData into storage in DNG format

但是,结果图像(下面的链接)总是在白色部分显示绿色。任何想法在这个过程中出了什么问题?

这是堆叠的 DNG 图像的预览

这里是原单DNG的预览,供参考

4

0 回答 0