我不知道如何在 opencv 中打开 dng 文件。
该文件是在使用三星 Galaxy S7 的专业选项时创建的。
使用这些选项时创建的图像是 dng 文件以及尺寸为 3024 x 4032 的 jpg(我相信这也是 dng 文件的尺寸)。
我尝试使用来自的答案here https://stackoverflow.com/questions/18682830/opencv-python-display-raw-image(除了使用 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)
任何帮助,将不胜感激
据我所知,DNG 文件可能可以被压缩(即使它是无损格式),因此您需要首先解码您的 dng 图像。https://www.libraw.org/ https://www.libraw.org/有能力做到这一点。
该库有 python 包装器(https://pypi.python.org/pypi/rawpy https://pypi.python.org/pypi/rawpy)
import rawpy
import imageio
path = 'image.dng'
with rawpy.imread(path) as raw:
rgb = raw.postprocess()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)