2017-12-25 36 views
1

opencvでdngファイルを開く方法を知ることができません。 ファイルは、Samsung Galaxy S7のproオプションを使用して作成されました。 これらのオプションを使用して作成された画像は、dngファイルだけでなく、サイズ3024 x 4032のjpgです(これもdngファイルのサイズと思われます)。OpenCv PythonオープンDNG形式

私はそうのように(代わりにグレースケールの3色を除いて)hereからの回答を使用してみました:

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) 

任意の助けいただければ幸いです

答えて

0

私の知る限り、DNGファイルは(ロスレスフォーマットであっても)圧縮できる可能性があるので、あなたはdng iをデコードする必要があります最初にメイジ。 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() 
があります