AI-MASTER WIKI

Pythonプログラミング―画像を扱う

Pythonで画像を扱う準備

画像の構成要素

画像は、ピクセル(画素)という点の集合でできています。 ピクセルは座標のデータ(x座標、y座標)と、その座標での色情報を持っています。

座標の情報について

x軸が横軸、y軸が縦軸となりますが、それぞれの数字で、画像のどこの場所にあるかを指示しています。 例えば、以下のような画像があった場合
□□□□□□□□□□□□
□□□□□□□□□□□□
□□□■□□□□□□□□
□□□□□□□□□□□□
□□□□□□□□□□□□
□□□□□□□□□□□□

黒い点の部分は、左から4番目、上から3番目のピクセルなので、(4,3)という座標になります。

コンピュータが扱う色の情報 RGBAとは

コンピュータが色の情報を扱うとき、RGBA値というもので表現します。
R・・・RED(赤)
G・・・GREEN(緑)
B・・・BLUE(青)
A・・・ALPHA(透明度)
をつなげて、RGBAと呼んでいます。 色は赤・緑・青の三原色によって表現されますが、それぞれどのくらい混ぜるかという数値によって、色を表現しています。

例えば、以下のようになります。
RGBA値が(255,0,0,255)の場合、純粋な赤色。
RGBA値が(255,255,255,255)の場合、白。
RGBA値が(0,0,0,255)の場合、黒。
RGBA値が(255,255,0,255)の場合、黄色。

画像を扱うモジュール「Pillow」の使い方

Pillowモジュールをインストールする

Pillowのモジュール名は「pillow」です。 例えばWindowsの場合は、コマンドラインから
pip install pillow
と入力してください。 その他のOSの場合やうまくいかない場合は、サードパーティのモジュールを使用する?をご覧ください。

Pillowのモジュールを読み込む

Pillowのモジュールを読み込むには、以下のような分を追記します。
from PIL import モジュール名
例えば、画像を読み込むスタンダードなImageモジュールの場合は、
from PIL import Image
となります。

Pillowモジュールを使ってみる

画像の読み込み・作成・書き出し

画像の読み込み

変数名 = Image.open('ファイル名')
と記述します。この変数にファイルデータが読み込まれます。

画像の作成

変数名 = Image.new('カラーモード',(幅,高さ),RGBA値)
と記述します。 例えば、カラーモードRGBAで、赤色の幅150ピクセル・高さ300ピクセルの長方形を作成して、変数名「red_box」に読み込ませたい場合は、
red_box = Image.new('RGBA',(150,300),(255,0,0,255)) と記述します。

画像の書き出し

画像を読み込んでいる変数名.save('ファイル名')
と記述します。 例えば、red_boxという変数に画像データを読み込ませていて、「red.png」というファイル名で保存したい場合には、
red_box.save('red.png')
と記述します。

画像の情報を取得する

画像のサイズを取得する

画像を読み込んでいる変数名.size
と記述します。 例えば、aimy_imgという変数名に画像を読み込ませている場合、
aimy_img.size
と記述します。 なお、この時、aimy_img.size[0]に幅が、aimy_img.size[1]に高さの情報が保存されています。

画像を加工する

画像をコピーする

新たに画像オブジェクトを読み込ませる変数名 = 画像を読み込んでいる変数名.copy()
のように記述します。 oldという変数に読み込ませていた画像データをnewという変数にコピーしたい場合には、
new = old.copy()
のように記述します。 画像に変更を加えたいものの、変更前の画像も残しておきたいときなどに使います。

画像を貼り付ける
画像のサイズを変更する
画像を切り抜く
画像を回転する・反転する