64x64 セル配列を 64x64 ピクセル イメージに変換したいと考えています。matplotlib と pylab を使用すると、余分なピクセルがブレンドされた約 900x900 の画像になります。
py.figure(1)
py.clf()
py.imshow( final_image , cmap='Greys_r' )
セルからピクセルに 1:1 の比率で変換するにはどうすればよいですか? (まだわからない場合は、私はこれにかなり慣れていません)。
64x64 セル配列を 64x64 ピクセル イメージに変換したいと考えています。matplotlib と pylab を使用すると、余分なピクセルがブレンドされた約 900x900 の画像になります。
py.figure(1)
py.clf()
py.imshow( final_image , cmap='Greys_r' )
セルからピクセルに 1:1 の比率で変換するにはどうすればよいですか? (まだわからない場合は、私はこれにかなり慣れていません)。
これは、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 配列であり、非常に高速であるためです。