我不知道如何在opencv中打开dng文件。该文件是在使用三星Galaxy S7的pro选项时创建的。使用这些选项时创建的图像是dng文件以及大小为3024 x 4032的jpg (我相信这也是dng文件的大小)。
我尝试使用here的答案(除了使用3种颜色而不是灰度),如下所示:
import numpy as np
fd = open("image.dng", 'rb')
rows = 4032
cols = 3024
colors = 3
f = np.fromfile(fd, dtype=np.uint8,count=rows*cols*colors)
im = f.reshape((rows, cols,colors)) #notice row, column format
fd.close()
但是,我得到了以下错误:
cannot reshape array of size 24411648 into shape (4032,3024,3)
任何帮助都将不胜感激
发布于 2017-12-25 23:33:26
据我所知,DNG文件是可以压缩的(即使它是无损格式),所以你需要首先解码你的dng图像。https://www.libraw.org/有能力做到这一点。
该库有python包装器(https://pypi.python.org/pypi/rawpy)
import rawpy
import imageio
path = 'image.dng'
with rawpy.imread(path) as raw:
rgb = raw.postprocess()
https://stackoverflow.com/questions/47969587
复制相似问题