python imaging libraryの紹介

15
2009/09/13, Moneto

Upload: kousuke-nemoto

Post on 03-Jul-2015

541 views

Category:

Documents


4 download

DESCRIPTION

Python用の画像処理ライブラリである「Python Imaging Library」の紹介と、簡単な使用例の紹介です。

TRANSCRIPT

Page 1: Python Imaging Libraryの紹介

2009/09/13, Moneto

Page 2: Python Imaging Libraryの紹介

HN:Moneto (Twitter:@Moneto)

所属:KCLC(開成学園コンピュータ部)

プログラミング歴:2年3か月

使用言語:Object Pascal, C++, C#(, BASIC)など

開発環境:Visual C++/C# Express Edition SP1 Delphi5(, Delphi6), Python2.6.2など

製作物:STGが中心(1作品を除き、全てSTG)

Page 3: Python Imaging Libraryの紹介

手作業での画像の加工処理(合成、色変換…etc)を面倒だと感じている人

スクリプトを用いた画像処理に興味がある人

Pythonユーザー

Page 4: Python Imaging Libraryの紹介

突然のグラフィックの仕様変更により、既存の画像を全て拡大・縮小処理しなければならなくなった。

⇒だが、1つずつ手作業で拡大・縮小していくのはとても面倒…

Page 5: Python Imaging Libraryの紹介

アニメーション用に、いくつもの元画像を連結して大きな画像を作りたい。

⇒だが、何枚にもわたる動きの画像を1枚ずつ手作業

で貼り付けていくのは面倒だし、場合によっては貼り付け位置などのミスも起こってしまう…

⇒かといって1枚ずつを読み込み、プログラム上で結合

して使用する方法だと、元となる画像の数が膨れ上がってしまう。

Page 6: Python Imaging Libraryの紹介
Page 7: Python Imaging Libraryの紹介

Pythonの画像処理ライブラリ。

bmp, jpg, gif, png形式の入出力に対応。(その他の形式は未確認)

画像のトリミング・拡大縮小・貼り付け・合成処理などが可能である。

Windows上だけでなく、Linux環境でも使用が可能。ただしインストール方法はWindowsと異なる。

Page 8: Python Imaging Libraryの紹介

Win版ではインストーラがあるので、それを実行するだけでインストールが可能。

PILはPythonのライブラリなので、Pythonのコードの最初に「import Image」を付加するだけで使用可能。

フィルタ機能など(後述)を使う際も、対応するライブラリをimportするだけで問題なし。

Page 9: Python Imaging Libraryの紹介

幅広い画像加工が行えるので、手作業で大変な部分をスクリプトに記述するだけで行うことができる。

コードさえ書けば、フォルダ内一括変換、などの処理も簡単にできる。

日本語の資料が割と多いので、機能などを調べやすい。(後述)

インストールが非常に簡単。

Page 10: Python Imaging Libraryの紹介

現状(2009年9月13日現在)では、PIL(Winインストーラ版)はPython2.6.2までのバージョンにしか対応していない。

よって、Python3.0/3.1のユーザーの場合、新たにPython2.6.2もしくはそれ以前のものをインストールする必要がある。

上記の理由により、Python3.0で新たに追加されたPythonの機能などは使用できない。その影響で、Python3.0以降に慣れているユーザーは若干不便を強いられるかも知れない。

Page 11: Python Imaging Libraryの紹介

①画像の形式を変えて保存する。面倒な処理は一切不要で、保存先ファイル名に拡張子を指定するだけで形式変換が可能。

②画像を拡大・縮小する。関数resize()の引数に、変更後の縦横の長さを指定するだけで拡大・縮小が可能。

③画像の色を変更する。

画像の色バンドを抽出し、それぞれの色バンドの強さを変更、再合成すると画像の色味を変更できる。

Page 12: Python Imaging Libraryの紹介

④画像の上に画像を貼り付ける。

関数paste()の第一引数に貼り付ける画像を、第二引

数に貼り付ける位置を指定すると、元画像の上にもう1つの画像を重ねることができる。

⑤2つの画像を合成する。

関数blend()の第一・第二引数に合成する画像を、第

三引数に混合の比率を指定すると、2つの画像を合成することができる。

Page 13: Python Imaging Libraryの紹介

画像全体をぼかす、大きな画像の一部をトリミングする…など、さまざまなことが可能。

画像をレリーフ調にしたり、エッジを強調したりといったこともできる。(要「import ImageFilter」追加)

Page 14: Python Imaging Libraryの紹介

日本語の資料が充実しているので、Googleで「Python Imaging Library」と検索すれば、日本語の様々な情報が得られる。

Pythonに関するいくつかの書籍の中には、PILについても解説されているものがある。

Page 15: Python Imaging Libraryの紹介

ご清聴、ありがとうございました。