Quantcast
Channel: karaage. [からあげ]
Viewing all articles
Browse latest Browse all 1427

pythonで画像処理の環境設定@Mac & Raspberry Pi

$
0
0

f:id:karaage:20150913165622j:plain:w640

pythonで画像処理

 いつも画像処理のプログラムはProcessingで組んでいたのですが、諸事情によりpythonで画像処理を色々やってみることにしました。まずは環境設定とテストをしたのでその記録です。最終的にはRaspberry Piで動かしたいのですが、プログラムはMacで組みたいので同じプログラムが動く環境をRaspberry PiとMac両方で構築しています。Windowsでも同じような環境を構築できると思います(私はWindows機もっていないのでやりませんが)。

Macでの環境構築

Mac Portインストール

 自分はすでにインストール済みでした。下記サイトにいって、ダウンロードボタンをクリックして自分の環境選ぶだけ。

www.macports.org


 以下のサイトの解説がわかりやすいです。参考になります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
実行結果

 たまたまとてもよいフリー素材があったので使用しました。変デジ研究所のロンスタさん(id:lonestartx) 、素材提供ありがとうございます。

f:id:karaage:20150430163150j:plain:w640
 使用前


f:id:karaage:20150913165526j:plain:w640
 使用後

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
実行結果

f:id:karaage:20150430163150j:plain:w640
 使用前


f:id:karaage:20150913165622j:plain:w640
 使用後

まとめ

 画像処理するだけなら、pythonでもそこまで難しく無くできそうですね。OpenCVはもちろんのこと、PILも手軽に色々できそうですし。pythonの他の豊富なライブラリとも連携できるのはよさそうです。例えば人工知能の分野はpythonでプログラムすることが多いので、将来的に画像処理に人工知能を使いたい人はよいかもしれません(そんな人が何人いるのかわかりませんが)。
 今後ももうちょっと色々弄っていきたいと思います。


Viewing all articles
Browse latest Browse all 1427

Trending Articles