午後から→オーバークロック

駆け出しハッカー()によるプログラミング・サービス開発備忘録。

PIL(Python Imaging Library)をOS Xに入れる

授業で画像処理の勉強をしているのですが、pythonでは画像ファイルを扱うのにPILというパッケージを使うらしいのでインストールしました。

PILのインストール

pipでインストール。

sudo pip install PIL --upgrade

libjpegについて

自分の環境(Yosemite、pip1.4、py2.7)では、最初--upgradeをつけないでインストールすると

IOError: decoder jpeg not available

というエラーが出てしまった。どうやらこれはlibjpegというjpegを扱うライブラリが不足しているためのよう。
普通はpip install PILの際にjpegライブラリも合わせてインストールされるらしいが、macだと違うのかな?
(因みにpipでインストールした際の出力の最後にPIL SETUP SUMMARYというものが表示されますが、
そこにJPEG support availableと表示されていれば問題ないです。)

django - install pil on virtualenv with libjpeg - Stack Overflow

上記を参照すると、いくつか解決法が示されてました。

最初libjpegを別にインストールして、setup.pyでパスを指定してPILを改めてインストールしようとしたのですが、
setup.pyがどこにあるのかわからないという情弱なので
(色々調べたところPythonのパッケージが/Library/Python/2.7/site-packages/にあることは判明したのですがそこまで…)、
--upgradeオプションを指定する作戦をとったところうまくいきました。

PILの使い方

Python/PILで画像にノイズをかけ各種フィルタで除去する - Soleil cou coupé

上記ブログ様のメディアンフィルタソースコードを拝借させていただき、
以下のソースコードを実行しました。

同ディレクトリにinput.jpgを配置すれば、
フィルターを適用した画像がoutput.jpgとして出力されます。
ただ僕のair2010lateでは3000*2000サイズの画像を処理するのに5分くらいかかりました…。

今後授業で勉強したフィルターを追加するかもしれません。

追記

virtualenvに入れようとするとコケる。以下を参照したら行けた。

Python - pyenvでvirtualenvしててPILがインストール出来ない件 - Qiita

pip install PIL --allow-external PIL --allow-unverified PIL