Pythonの書

OpenCVで画像を読み込み、表示、保存!

今回はOpenCVの基本的なコードをやっていきます。(・∀・)カンタン!!

 

とりあえずサンプルプログラムを見てみよう

OpenCVでは画像や動画などを扱い、画像処理を施すことができます。

OpenCVで画像の読み込みはimread、表示はimshow、保存はimwriteを使います。

 

これらの使い方を試す最もシンプルなPythonコードを書いてみましょう。

cvtest.py

copy

import cv2

image=cv2.imread("mondaig.jpg")

cv2.imshow("image",image)
cv2.waitKey(0)
cv2.destroyAllWindows()

cv2.imwrite("mondaig.jpg",image)

これだけです。(・∀・)カンタン!!

 

このcvtest.pyというプログラムはこのプログラムと同じフォルダ内にあるmondaig.jpgという画像ファイルを読み込んで表示するだけのプログラムです。

一応最後の行で保存も行っていますが、ファイル名が同じで内容も同じため何も変化は起きません。

このプログラムを試す際はプログラムファイルと同じフォルダにお好きな画像ファイルを置いて、そのファイル名を拡張子まで含めてmondaig.jpgの部分を置き換えて” “の中に書き入れてください。

 

では、このプログラムを実行してみましょう。

imageという名前のウィンドウが開き、指定した画像が表示されます。

このウィンドウはエンターキーを押したり、右上の×ボタンをクリックすることで閉じることができます。

 

プログラムを詳しくみてみよう

まず1行目。

1行目

copy

import cv2

これはOpenCVのライブラリをインポートしているだけですね。

ライブラリ名だけ注意してください。(;´・ω・)opencvジャナイ…

 

続いて2行目。

2行目

copy

image=cv2.imread("mondaig.jpg")

ここではimageという変数にimreadで指定した画像ファイルのデータ(ここではmondaig.jpg)を読み込んで格納しています。

ここでそれとなく覚えておいてほしいことは、このimageに格納されたデータはnumpy.ndarray型のデータだということです(print(type(image))で確認できます)。

 

では次は3~5行目を見てみましょう。

3~5行目

copy

cv2.imshow("image",image)
cv2.waitKey(0)
cv2.destroyAllWindows()

まず、3行目のimshow関数で、第二引数にimageの変数を渡すことでウィンドウに表示することができます。

4行目のwaitKeyはすぐにウィンドウが消えてしまわないようにキー入力を待っています。

waitKeyの引数はキー入力を受け付ける待機時間(ミリ秒)です。

この待機時間を過ぎると次のコードの処理に進みます。

0を指定するとエンターキーを押したり×ボタンを押したりするまで次に進みません。

5行目のdestroyAllWindowsではウィンドウを消しています。

4~5行目は3行目のようにimshowで画像を表示した後には必ず一緒に入れるものだと思ってください。

 

では最後に6行目です。

6行目

copy

cv2.imwrite("mondaig.jpg",image)

ここではimwriteでファイル名を指定して画像データを保存することができます。

第1引数に保存する画像のファイル名(もしくはパス)、第2引数にimage変数を指定します。

 

これでOpenCVでの画像ファイルの読み込み、表示、保存はできました。

OpenCVで画像処理を行うプログラムを書くときは大変お世話になる関数達なので今のうちに仲良くなっておくと開発がスムーズに進むと思います。

では、また~。(*・ω・)ノ

カテゴリー:,
%d人のブロガーが「いいね」をつけました。