画像データを表示する
Pillow を使って表示する方法と、Matplotlib を使って表示する方法を示します。
Pillow をインストールする場合はコンソールで下記のコマンドを入力してください
# pip が最新である自信があったらやらなくてもいい.
pip install --upgrade pip
# pillow をインストールする.
pip install pillow
Matplotlib をインストールする場合はコンソールで下記のコマンドを入力してください。
# pip が最新である自信があったらやらなくてもいい.
pip install --upgrade pip
# pillow をインストールする.
pip install matplotlib
pip コマンドがうまく通らなかったら、下記のように pip3 にします。
# pip が最新である自信があったらやらなくてもいい.
pip3 install --upgrade pip
# pillow をインストールする.
pip3 install pillow
# matplotlib をインストールする.
pip3 install matplotlib
Pillow を使って画像データを表示する
画像は、Windows、Linux、MacOS、それぞれの適当な画像ビューワをもって表示されます。
import numpy as np
from PIL import Image
w = 512
h = 1024
numpix = w * h
# ubyte な1次元配列を確保する.
data0 = np.zeros( numpix, dtype=np.uint8)
# ななめウロコデータを格納する.
for j in range( h ):
adrs = w * j
for i in range( w ):
level = i + j
data0[ adrs ] = level
adrs += 1
# 2次元配列に変換する、w と h の順に注目せよ.
data1 = data0.reshape( h, w )
# 2次元配列を画像データとして解釈する.
im = Image.fromarray( data1 )
# 画像を適当なソフトで表示する.
im.show()
# 2次元配列を1次元配列に戻す.
data2 = data1.reshape( -1 )
# それぞれの配列の形を表示する.
print( "w is {0}".format( w ))
print( "h is {0}".format( h ))
print( data0.shape )
print( data1.shape )
print( data2.shape )
print( "finish." )
PS C:\tmp> python test00.py
w is 512
h is 1024
(524288,)
(1024, 512)
(524288,)
finish.
Matplotlibを使って画像データを表示する
画像は Matplotlib 固有のウインドウを使って表示されます。
import numpy as np
import matplotlib.pyplot as plt
w = 512
h = 1024
numpix = w * h
# ubyte な1次元配列を確保する.
data0 = np.zeros( numpix, dtype=np.uint8)
# ななめウロコデータを格納する.
for j in range( h ):
adrs = w * j
for i in range( w ):
level = i + j
data0[ adrs ] = level
adrs += 1
# 2次元配列に変換する、w と h の順に注目せよ.
data1 = data0.reshape( h, w )
# Matplotlib で画像を表示する.
plt.imshow( data1, cmap='gray')
plt.xlabel("width")
plt.ylabel("height")
plt.xticks( np.arange( 0, w, 128 ))
plt.yticks( np.arange( 0, h, 128 ))
plt.show()
# 2次元配列を1次元配列に戻す.
data2 = data1.reshape( -1 )
# それぞれの配列の形を表示する.
print( "w is {0}".format( w ))
print( "h is {0}".format( h ))
print( data0.shape )
print( data1.shape )
print( data2.shape )
print( "finish." )
PS C:\tmp> python test01.py
w is 512
h is 1024
(524288,)
(1024, 512)
(524288,)
finish.
このコードは py ファイルをコンソールなどから実行することを想定したものです。もし jupyter ノートブックの中で画像をインライン表示したい場合は、コード冒頭で
%matplotlib inline
と宣言してください。
jupyter ノートブックの中で画像を表示して、それと同時に、移動、拡大or縮小、保存などのアイコンを表示したい場合は、コード冒頭で
%matplotlib notebook
と宣言してください。