0

64x64 セル配列を 64x64 ピクセル イメージに変換したいと考えています。matplotlib と pylab を使用すると、余分なピクセルがブレンドされた約 900x900 の画像になります。

py.figure(1)
py.clf()
py.imshow( final_image , cmap='Greys_r' )

セルからピクセルに 1:1 の比率で変換するにはどうすればよいですか? (まだわからない場合は、私はこれにかなり慣れていません)。

4

1 に答える 1

0

これは、PIL を使用してイメージ 2x2 を作成する例です。a はサイズ 4 の色の配列 (フラット)

from PIL import Image

a = [(0, 0, 0), (255, 0, 0), (0, 255, 0), (0, 0, 255)]

#  Create RGB image with size 2x2
img = Image.new("RGB", (2, 2))
#  Save it to the new function
img.putdata(a)
#  Save to the file
img.save('1.png')

もちろん、フラットでない場合は、データの形式に合わせて調整する必要があります。それは簡単なはずです。たとえば、次のスクリプトは 2 次元リストからデータを平坦化します。

a = [[[1, 2, 3], [2, 3, 4]], [[5, 6, 7], [8, 9, 10]]]
a = [tuple(color) for row in a for color in row]
print a

リストではなくnumpy配列を扱っている場合は、関数fromarrayを使用する必要があります(次の方法で):

#  data is numpy array
img = Image.fromarray(data, 'RGB')
#  Save to the file
img.save('1.png')

numpy 配列を使用することを強くお勧めします。これはラップされた C 配列であり、非常に高速であるためです。

于 2016-08-11T16:25:41.143 に答える