PIL(Python Image Library)の導入

気がついたら前回のエントリから半年も経っていた・・・。
心を入れ替えてこれからは!一日坊主になりませんように。笑。


ちょいと文字認識のプログラムが必要だったので、その周りのネタ。
以下のリンクを参考にしてます。
ほぼ一緒ですが、OSX環境に最適化した導入メモってとこですね。


画像処理でのPythonの利用


で、とりあえず本エントリでは前準備としてPILの導入。
画像を読み込んだり、エッジ抽出程度の簡単な処理程度が出来る・・・らしい。


以下、PIL導入までの道のりです〜☆

1. pipでPIL導入。
2. テストコードで試してみる。

以上


はい。超簡単ですね。
でも、数カ所はまったのだけど^ ^;


1. pipでPIL導入。

# pip install pil


pipは偉大ですね〜。こんだけで準備完了。笑。


2. テストコードで試してみる。


とりあえずこのネタもとのコードそのまま試して動けば十分ですね!

import Image
import ImageFilter


img = Image.open("test.jpg")
eimg = img.filter(ImageFilter.FIND_EDGES)
reimg = eimg.rotate(45)
reimg.show()
reimg.save("test_edge.jpg")


こんだけ。
ところが、実行するとこんなエラーががが。

IOError: decoder jpeg not available


以下のリンクによると、libjpegが導入されてないと駄目なんだそうな。


PILでIOError: decoder jpeg not available


ってことで導入を試みる。

# sudo brew install libjpeg


ところが、なんかlibjpegは導入出来てるとか・・・。
なんか以下のリンクによると、いったん両方削除してから再導入しろってなってるので、やってみる。

# sudo brew uninstall libjpeg
# pip uninstall pil
# sudo brew install libjpeg
# pip install pil


はい。これで解決しました。めでたしめでたし。


でも実はこの裏でもう1個引っかかった。
brew installする前にupdateかけたら、こんなエラーが。

error: The following untracked working tree files would be overwritten by merge:
Library/Formula/cmigemo.rb


適当に検索したら、同じこと起きてますね。


brew updateでコケる。The following untracked working tree files would be overwritten by merge:


とりあえずいらないので、削除。

# rm -f /usr/local/Library/Formula/cmigemo.rb
# brew update


ほい。これで解決。したっぽい。


さて、じゃぁテストスクリプトを動かしますかね。
元画像はこちら。



で、画像加工後がこちら。



なんとまぁ楽な時代になりましたねぇ・・・。
以上!


# あ、色々ライブラリ入れたりするんで、
# ちゃんとvirtualenvで環境切った方がいいですよ!