2

Python で生の DNG 画像を処理しようとrawpyすると、奇妙な結果で終了します。

import rawpy
import imageio
from matplotlib import pyplot as plt

path = '/home/stefan/AIJ/RAW.DNG'
with rawpy.imread(path) as raw:
    rgb = raw.postprocess()
plt.imshow(rgb)
plt.show()

結果は 8 ビット値の RGB 画像配列で、私のカメラは 14 ビットの raw 画像を生成します。

rgb配列を視覚化すると、期待される結果が得られます。

ここに画像の説明を入力

いくつかのグーグル検索から、同じファイルをインポートできますが、出力は16ビットであることがわかりました。

後処理関数で次のパラメーターを使用しました。

rgb = raw.postprocess(output_bps=16,demosaic_algorithm=None,output_color = rawpy.ColorSpace.Adobe)

現在、rgb配列には 16 ビット値が含まれていますが、視覚化すると次のようになります。

ここに画像の説明を入力

最初の結果に似ているが、16 ビット値を処理する視覚化を取得する方法を誰か教えてもらえますか?

最初は、カメラが 16 ビットではなく 14 ビット イメージを生成しているという事実に関連していると思っていましたが、パラメーターoutput_bpsを 14 に変更すると、さらに悪い視覚化結果が得られます。

前もって感謝します!

要望があれば、ここに PENTAX K-5 の生の画像を追加しますが、サイズは 18MB で、フォーラムには 2MB の制限があります (ファイルを渡す別の方法があるかもしれません)。

4

1 に答える 1