PILを使って画像の各ピクセルの色を取得する
Macを使ってPython Image Library(PIL)をインストールし,画像の各ピクセルのRGB値を取得する手法を紹介します.
1.まずPILをインストールする
jpeg画像を用いる場合には,jpeg decoderのインストールが必要なので,注意.
http://www.ijg.org/files/jpegsrc.v8c.tar.gzをダウンロードして解凍.
解凍ディレクトリに移動し,下記を実行.
$ ./configure
$ make
$ sudo make install
その後,pilをインストール.
$ sudo pip install pil
以上で,PILのインストールは完了.
2.次に,PILを使ってRGB値を取得してみます.
サンプルコードは下記の通り.
import Image img = Image.open("test.jpeg") img.convert("RGB") pixelSizeTuple = img.size rlist = [] glist = [] blist = [] for i in range(pixelSizeTuple[0]): for j in range(pixelSizeTuple[1]): r,g,b = img.getpixel((i,j)) rlist.append(r) glist.append(g) blist.append(b) f = open('output.csv', 'w') f.write("r,g,b\n") n = len(rlist) for i in range(0,n-1): f.write(str(rlist[i]) +"," + str(glist[i]) +"," + str(blist[i]) +"\n") f.close()
こんなコードを書けば,output.csvファイルの各列にRGB値を出力できます.
ちなみに,最初はPILインストールしただけだったので,
decoder jpeg not available というエラーでつまったんですが,
下記のサイトを参考に,再インストールしたらできました.
http://kwmt27.net/index.php/2013/07/14/python-pil-error-decoder-jpeg-not-available/