0

.tiff を配列に変換しようとしているので、画像をピクセルごとに追加し、それらに対して他のいくつかの操作を実行できます。numpy.fromstring() と im.tostring を使用して変換しています。

def image2array(im):
  newArr = numpy.fromstring(im.tostring(),numpy.uint16)
  newArr2 = numpy.reshape(newArr,im.size)
  return newArr2

ドキュメントによると、 tostring は、標準の「生の」エンコーダーを使用して、ピクセルデータを含む文字列を返します。また、fromstring は、標準の「生の」デコーダを使用して、文字列内のピクセル データからイメージ メモリを作成します。

コードは機能しますが、未加工の画像エンコーダーがどのように機能するかはよくわかりません。配列は、画像にデコードできるビットからのデータのような文字列データを生成しますか? それとも実際のピクセル値ですか?実際のピクセル値を取得しようとしていますが、im.getdata() を使用する必要がありますか?

4

2 に答える 2

1

おそらく、numpy.array(pilIm) と PIL.Image.fromarray(numpyArray) を介して、あなたが考えていることを実現する簡単な方法があります: NumPy、PIL 画像の追加

圧縮された tiff ファイルもロードしたい場合は、tifffile.py をチェックしてください: http://code.google.com/p/pylibtiff/

編集:numpyの代わりにnumpy.array。配列として

于 2013-01-23T15:16:29.343 に答える
0

はい。を使用する必要がありますgetdata()。配列を使用して直接作成できます。

この投稿では、numpy と PIL を一緒に使用する方法の良い例を示します。

于 2013-01-22T08:11:25.507 に答える