2017-12-25 19 views
1

Ich kann nicht herausfinden, wie man eine DNG-Datei in opencv öffnet. Die Datei wurde erstellt, wenn die Pro-Optionen des Samsung Galaxy S7 verwendet werden. Die Bilder, die bei der Verwendung dieser Optionen erstellt werden, sind eine dng-Datei sowie ein jpg der Größe 3024 x 4032 (ich glaube, das ist auch die Abmessungen der dng-Datei).Opencv Python öffnen dng Format

Ich habe versucht, die Antwort von here (außer mit 3 Farben statt Graustufen) mit etwa so:

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() 

jedoch bekam ich folgende Fehlermeldung:

cannot reshape array of size 24411648 into shape (4032,3024,3) 

Jede mögliche Hilfe würde geschätzt

Antwort

0

Soweit ich weiß, ist es möglich, dass DNG-Dateien komprimiert werden können (auch wenn es verlustfreies Format ist), so dass Sie Ihr dng i dekodieren müssen Magier zuerst. https://www.libraw.org/ ist dazu in der Lage.

Es gibt Python-Wrapper für die Bibliothek (https://pypi.python.org/pypi/rawpy)

import rawpy 
import imageio 

path = 'image.dng' 
with rawpy.imread(path) as raw: 
    rgb = raw.postprocess()