Python OpenCVの基礎 画像の読み込み(静止画)
画像の読み込みから始めてみたいと思います。 画像操作の基本ですね。
前提としてPython(2.7系)、OpenCVのインストールなどを済ませておきましょう。 検索すれば色々出てきますのでよろしくお願いします。
さて始めます
今回から参考にするページはコチラです。
Getting Started with Images — OpenCV-Python Tutorials 1 documentation
Pythonの中ではOpneCVはcv2をimportして使っていきます。
#こうやってimportします。numpyもimportする必要があるようです。 import numpy as np import cv2
画像の読み込み
imread
imreadの概要です。
imread(filename[,flag])
filename : 読み込む対象のファイルですね。flagはオプションです。
- cv2.IMREAD_COLOR (デフォルト。カラーモードで読み込みます。アルファチャンネルは読み込みません)
- cv2.IMREAD_GRAYSCALE(画像をグレースケールで読み込みます)
- cv2.IMREAD_UNCHANGED(画像をそのまま読み込みます。アルファチャンネルも読み込みます)
フラグは、それぞれ文字列の代わりに1,0,-1と設定することもできます。
では画像を読み込んでみましょう。
この画像でいきましょう
import numpy as np import cv2 #画像の読み込み img = imread('filename', cv2.IMREAD_GRAYSCALE) #または #img = imread('filename', 0)
。。。。実行しても何も起きません。。。まだ読み込んだだけですからね。表示したり保存しなければ読み込みが確認できません。
ではこれを画面に表示させるところをやってみましょう。
画像の表示
imshow
imshow(windowname, img)
windownameは、表示時のウインドウの名前(タイトルバーに表示される)になります。 imgは読み込み済みの画像オブジェクトですね。
これで表示させてみましょう。
今回はグレースケールで読み込んで表示させてみます。
#coding: utf-8 import numpy as np import cv2 img = cv2.imread('filename', cv2.IMREAD_GRAYSCALE) cv2.imshow('image', img) cv2.waitKey(0) cv2.destroyAllWindows()
はい、こんな感じでwindowに表示されました。簡単ですね!ウインドウの名前を"image"に設定したのがわかると思います。
何かしらキーを押すことでウインドウは閉じます(destroyWindow()があるので、ウインドウは破棄されます)
わかりやすいですね。
でもこれスクリーンショットなんです。 この時点ではまだ画像は保存できていません。やっぱり画像を保存できたほうがいいですよね。 そこで次は画像を保存します。
画像の保存
imwrite
画像の保存もなんとなくイメージができると思います。
imwrite(imagename, img)
imagenameに任意のファイル名を設定し、imgオブジェクトを保存します。 この時imagenameで拡張子を指定することができます。
#coding: utf-8 import numpy as np import cv2 img = cv2.imread('filename', cv2.IMREAD_GRAYSCALE) #forsaleという名前でjpeg保存 cv2.imwrite('forsale.jpg', img) #forsale2というpngを保存 cv2.imwrite('forsale.png', img)
さて、これで画像の読み込み、表示、保存がイメージできたでしょうか?
最後のおまけをひとつ。
画像を読み込んで表示させ、escが押されたらそのまま終了し、sが押されたら保存するプログラムを作ります。 これも簡単ですね。
#coding: utf-8 import numpy as np import cv2 #読み込み img = cv2.imread('filename', cv2.IMREAD_GRAYSCALE) #表示 cv2.imshow('image', img) #キーボード入力を受け付ける key = cv2.waitKey(0) if key == 27: #escの処理 cv2.destroyAllWindows() elif k == ord('s'): #sの入力の処理 cv2.imwrite('forsale.jpg', img) cv2.destroyAllWindows()
初回はこんな感じでいかがでしょうか???
詳解 OpenCV ―コンピュータビジョンライブラリを使った画像処理・認識
- 作者: Gary Bradski,Adrian Kaehler,松田晃一
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/08/24
- メディア: 単行本(ソフトカバー)
- 購入: 17人 クリック: 272回
- この商品を含むブログ (34件) を見る