2016-08-11 5 views
0

64x64セル配列を64x64ピクセル画像に変換したい。 matplotlibとpylabを使用すると、約900x900の画像が完成し、余分なピクセルが一緒にブレンドされてしまいます。配列を画像に直接変換する(各セルは1ピクセルになる)

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

1:1比率でセルからピクセルに変換するにはどうすればよいですか? (あなたがまだ話すことができないなら、私はこれにかなり新しいです)。

+0

あなたはすでに試したことのより良い例を挙げることができますか? –

+0

セル配列の内容は何ですか? – Karin

答えて

0

これは、画像2x2を作成するためにPILを使用する例です。 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配列をラップしているだけなので、より高速です。

関連する問題