pythonで画像処理
いつも画像処理のプログラムはProcessingで組んでいたのですが、諸事情によりpythonで画像処理を色々やってみることにしました。まずは環境設定とテストをしたのでその記録です。最終的にはRaspberry Piで動かしたいのですが、プログラムはMacで組みたいので同じプログラムが動く環境をRaspberry PiとMac両方で構築しています。Windowsでも同じような環境を構築できると思います(私はWindows機もっていないのでやりませんが)。
Macでの環境構築
Mac Portインストール
自分はすでにインストール済みでした。下記サイトにいって、ダウンロードボタンをクリックして自分の環境選ぶだけ。
以下のサイトの解説がわかりやすいです。参考になりますjprogramer.com
Open CVとPILインストール
画像処理のライブラリでよく使うOpen CVとPILをインストールします。
$ sudo port -v selfupdate $ sudo port install opencv +python27 $ sudo port install py27-PIL
インストール確認
以下コマンドでpythonのインタラクティブモードに入る
$ python
以下2つのコマンドを実行してエラーが出なければOpenCVとPILはインストールされています
>>> import PIL >>> import cv2
Raspberry Piでの設定
Open CVとPILインストール
以下のコマンドでインストールできます。2行目のコマンドがPILのインストールで、3,4行目のコマンドがOpenCVのインストール。OpenCVのインストールはそれなりに時間かかります(30分程度)。
$ sudo apt-get update $ sudo apt-get install python-imaging $ sudo apt-get install libopencv-dev $ sudo apt-get install python-opencv
インストール確認
Macのときと同じです。
以下さらにプログラムが続くので興味のある方だけ続きをごらんください。
画像処理プログラムテスト
適当なサンプルでテストしてみましょう。プログラムの中身と、動作方法・動作結果はMac, Raspberry Pi両方とも基本同じです。
PILを使ったサンプル
サンプルプログラム
以下のプログラムを「pil.py」で保存。
#!/usr/bin/env python# coding: utf-8from PIL import Image import ImageFilter img = Image.open("input.jpg") output = img.filter(ImageFilter.CONTOUR) output.save("output.jpg")
プログラムと同じフォルダに、加工したい画像ファイルを「input.jpg」という名前で配置してから、以下のコマンド実行。
$ python pil.py
OpenCVをつかったサンプル
以下のプログラムを「cv.py」で保存。
#!/usr/bin/env python# coding: utf-8import cv2 img = cv2.imread("input.jpg") img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cv2.imwrite("output.jpg", img_gray)
PIL同様、プログラムと同じフォルダに、加工したい画像ファイルを「input.jpg」という名前で配置してから、以下のコマンド実行。
$ python cv.py
実行結果
使用前
使用後
まとめ
画像処理するだけなら、pythonでもそこまで難しく無くできそうですね。OpenCVはもちろんのこと、PILも手軽に色々できそうですし。pythonの他の豊富なライブラリとも連携できるのはよさそうです。例えば人工知能の分野はpythonでプログラムすることが多いので、将来的に画像処理に人工知能を使いたい人はよいかもしれません(そんな人が何人いるのかわかりませんが)。
今後ももうちょっと色々弄っていきたいと思います。
参考リンク
参考にしたサイトとか、これから参考にする予定のサイトとか
Mosaic Browsing: [セットアップ]Mac PortでPILのインストール
Raspberry Pi • View topic - Python Imagin Library installing error