numpy + PIL

How to create image from a list of pixel values in Python3? – StackOverflow

この手の処理の場合(というより画像処理の出入り口はPILが),
「PIL.Image.fromarray(numpy.uint8(numpy.ndarray()))」がリーズナブル.
保存したい場合はそのままPILでイメージ化できるし,
配列の並びが変わらないので,そのままmatplotlibに渡す事もできる.

%matplotlib inline
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np

pixels = [
   [(54, 54, 54), (232, 23, 93), (71, 71, 71), (168, 167, 167)],
   [(204, 82, 122), (54, 54, 54), (168, 167, 167), (232, 23, 93)],
   [(71, 71, 71), (168, 167, 167), (54, 54, 54), (204, 82, 122)],
   [(168, 167, 167), (204, 82, 122), (232, 23, 93), (54, 54, 54)]
]

array = np.array(pixels, dtype=np.uint8)
plt.imshow(array)
plt.axis('off')

FireShot Capture 678 - JupyterLab Alpha Preview - http___localhost_8888_lab

img = Image.fromarray(array)
plt.imshow(img)
plt.axis('off')

FireShot Capture 679 - JupyterLab Alpha Preview - http___localhost_8888_lab

img.save('sample.png')

sample

4 x 4ピクセルのイメージ.

numpy.ndarrayからイメージを作成したい時,「scipy.misc.imsave」という手もある.

from scipy.misc import imsave

imsave('sample2.png', array)

sample2

 
 
関連:
Pythonで画像内の任意のオブジェクトをカウントしたい

ノイズ画像の暗い部分の割合を計算する方法

matplotlib.basemapで地図を描画

フラクタル・ツリー

Pythonでカオス・フラクタル

広告
カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中