画像の編集

Pythonの画像処理用ライブラリである PIL (Python Imaging Library) を用いて、各種画像データの読み込み・操作・保存を行うことができる。PIL をインストールするには、こちらからデータをダウンロードし、以下のコマンドを実行する。

sudo python setup.py install

基本的には、Image モジュールをimportして種々の操作を行う。

import Image

d1 = Image.open('RIMG0828.JPG') # 画像の読み込み
print d1.format, d1.size, d1.mode # メタ情報の表示
d1.show() # 画像の表示
d1.save('d1.jpg') # 画像の保存

d2 = d1.rotate(-90) # 画像の回転
print d2.size # sizeは(幅、高さ)
d2.show()
d2.save('d2.jpg')

d3 = d1.crop((824, 368, 2824, 2368)) # 画像の切り出し、切り出し範囲の指定は(左、上、右、下)
print d3.size
d3.show()
d3.save('d3.jpg')

d4 = d3.resize((500, 500)) # 画像のサイズ変更、サイズ指定は(幅、高さ)
print d4.size
d4.save('d4.jpg') # 画像の保存
JPEG (3648, 2736) RGB
(2736, 3648)
(2000, 2000)
(500, 500)
  • d1
    d1
  • d2
    d2
  • d3
    d3
  • d4
    d4

配列データとしての画像の取り扱い

Pythonのグラフ描画用ライブラリである Matplotlib では、前述した PIL を利用して〜〜〜。

import matplotlib.pyplot as plt
d4.save('d4.png')
img = plt.imread('d4.png') # 画像の読み込み(PNGにしか対応していないようなので事前にファイル形式を変更する)
print img.shape # shapeは(高さ、幅、色次元)
plt.imshow(img) # 画像の描画
plt.show() # 描画結果の表示

img_r = img[:,:,0] # 赤(R)成分の抽出
img_g = img[:,:,1] # 緑(G)成分の抽出
img_b = img[:,:,2] # 青(B)成分の抽出
print img_r.shape, img_g.shape, img_b.shape
plt.subplot(131) # 複数の描画(1行3列の1番目に描画) 
plt.imshow(img_r)
plt.subplot(132) # 複数の描画(1行3列の2番目に描画) 
plt.imshow(img_g)
plt.subplot(133) # 複数の描画(1行3列の3番目に描画) 
plt.imshow(img_b)
plt.show()

img_part = img[190:240, 230:280, :] # 特定領域の切り出し(行方向:画像のy軸、列方向:画像のx軸)
plt.imshow(img_part)
plt.show()
(500, 500, 3)
(500, 500) (500, 500) (500, 500)