Pythonによる画像処理 等高線

投稿日 2015/01/30

​Pythonを使用して画像処理のまねごとをやってみました。参考にしたのは「O'REILLY 実践コンピュータビジョン」jan Erik Solem著 相川愛三訳 です。Pythonは私にとっては馴染みのない言語です。上の参考本がPythonを使用していたので仕方なく使っていますので、まだ完全に理解して使っている訳ではありません。そうお断りしておいて....

今回やってみたのは、等高線化です。環境は32bit(x86) windows XP sp3、使用したPythonのバージョンは2.7.9です。参考本の説明に従いPython 3.xは避けました。ただしPythonをインストールしただけでは動きません。処理によってこれらをすべて使用するとは限りませんが、インストールしておいたほうがよさそうなものに、PIL(Pythonイメージ処理ライブラリ)とMatplotlib(グラフ描画ライブラリ)、NumPy(科学技術計算パッケージ)、SciPy(数学パッケージ)、python-dateutil(w/six)、pyparsingがあります。

次のような手順です

Python2.7.9をインストールする
環境変数のpathを設定しておく(以下を追加)
   C:\python27;C:\Python27\Scripts;C:\Python27\Lib\site-packages
ez_setup.pyをC:\python27に置く
python ez_setup.pyを実行
easy_install pipを実行
numPy 1.9.1をインストール(win32 Python2.7用を選ぶ)
SciPy0.15.1をインストール(win32 Python2.7用を選ぶ)
PIL 1.1.7をインストール(pytho2.7用を選ぶ)
matplotlib 1.4.2をインストール(win32, py2.7を選ぶ)
pip install python-dateutilを実行 python-dateutilとsixがインストールされる
pip pyparsingを実行

以下のサイトを参考にインストールしました。

http://www.aoki.ecei.tohoku.ac.jp/~ito/python_windows.html (青木研究室)

http://halap.hatenablog.com/entry/2013/09/23/001520 (Think and error 試行錯誤)

(各サイトには感謝いたします。)

プログラムは、こんなに簡単です。(これが正しいかどうかは不明ですが処理はできているようです)

プログラム・ソース

#Contour line

from PIL import Image
from pylab import *

im = array(Image.open('sample.jpg').convert('L'))
figure()
gray()
contour(im, origin='image')

show()

等高線を試してみた動機は、写真のデッサン化です。

水彩画を描く手法の中には、詳細なデッサンを描いてから着色する方法がありますが、この等高線を使えば、描きたい写真の風景などを、デッサンを手で描くことなく自動化し、着色から始められるのではないかという不純な動機です。(まだ試していませんが)

細か過ぎてうるさい部分は、更なる画像処理で何とかしたいものです。

北アルプス 燕岳

高野山 金剛峯寺の蟠龍庭

高尾山ケーブルカー

飛鳥寺

今回はPILを使用した画像処理です。OpenCVは使用していません。

使用した画像はすべて私のオリジナルです。

(JF1VRR)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA