Pythonで生の画像データをpngに変換しようとしています。私はPython、特に画像処理にかなり慣れていません...
Raw ファイルは 16 ビットのグレースケール画像です。
すでにフォーラムをスキャンしたので、次の解決策を思いつきました。
from PIL import Image, ImageFilter
import numpy as np
from scipy import ndimage, misc
rawfile = np.fromfile('test.raw', dtype=np.int16)
rawfile.shape = (1025,1025)
imgSize = (1025,1025)
img = Image.fromstring('L', imgSize, rawfile, 'raw', 'F;16')
img.save("rawData.png")
しかし、次のエラーが発生し続けます。
Traceback (most recent call last):
File "****\Programs\Python 2.7.6\readraw\readraw.py", line 11, in <module>
img = Image.fromstring('L', imgSize, rawfile, 'raw', 'F;16')
File "****\Programs\Python 2.7.6\lib\site-packages\PIL\Image.py", line 1835, in fromstring
return frombytes(*args, **kw)
File "****\Programs\Python 2.7.6\lib\site-packages\PIL\Image.py", line 1822, in frombytes
im.frombytes(data, decoder_name, args)
File "****\Programs\Python 2.7.6\lib\site-packages\PIL\Image.py", line 608, in frombytes
d = _getdecoder(self.mode, decoder_name, args)
File "****\Programs\Python 2.7.6\lib\site-packages\PIL\Image.py", line 390, in _getdecoder
return decoder(mode, *args + extra)
ValueError: unknown raw mode
raw モードが不明な理由を説明してもらえますか? ドキュメントを確認しましたが、トピックを理解している限り、PILLOW libにはこれが付属しているはずですか?!
よろしくお願いします
助けてくれてありがとう!
コードを変更したところ、動作するようになりました:
from PIL import Image, ImageFilter
import numpy as np
from scipy import ndimage, misc
rawfile = np.fromfile('test.raw', "uint16")
rawfile.shape = (1025,1025)
misc.imsave("test.png", rawfile)