python3

OpenCVのtips(python版)

記事内に広告が含まれています。

PythonにおけるOpenCVの基本的な使い方について解説しています。目次のように、インストール方法やimportの方法、ファイルの読み込み、書き込み、ウィンドウを表示、消去する方法、画像の表示の方法について説明しています。                            

目次

OpenCVとは

OpenCV・・・Open Source Computer Vision Libraryの略。

略から見てわかるように、Computer Visionつまり、画像処理に特化したライブラリです。元々、intelによって開発されましたが、現在はオープンソースとなっています。OpenCVはpythonだけでなく、C言語、JAVA、C++などで使うことができます。

事前準備

インストール

OpenCVはpipを使って以下のようにインストールすることができます。

pip install opencv-python

import

今回は以下のようにライブラリをimportします。

import cv2

importするときにパッケージ名と違う理由はPyPIによると、ユーザーが理解しやすくなるということと検索エンジンでパッケージを見つけやすくなるためらしいです。

画像の用意

今回は、pythonファイルと同じフォルダーにsrc.pngという以下の画像を置いてプログラムを実行します。

ファイル操作

読み込み

cv2.imreadは画像ファイルを読み込むことができます。引数には次のようにcv2.imread(ファイルのパス,数値)が入りますが、数値が1の時はカラー、数値が0の時はグレースケールで画像を読み込みます。具体的には以下のように使うことができます。

file_src="src.png"
img=cv2.imread(file_src,1)

書き込み

cv2.imwriteで画像を保存することができます。引数には次のようにcv2.imread(ファイルのパス,画像の変数)なります。先ほどグレースケールで読み込むことができると書いたので、グレースケールで画像を読み込んでその画像をsrc_gray.pngという名前で画像を保存します。

file_src="src.png"
img=cv2.imread(file_src,0)
cv2.imwrite("src_gray.png",img)

グレースケールで保存

表示

ウィンドウの表示

cv2.namedWindowは、指定された名前の新しいウィンドウを作成することができます。ウィンドウを作成することで、そのウィンドウ上に画像を表示することができます。

cv2.namedWindow("MyWindow")

上記のコードでは、MyWindowという名前のウィンドウが作成されます。実際に以下のようなウィンドウが作成されます。

ウィンドウの消去

ウィンドウの消去にはcv2.destroyAllWindows()やcv2.destroyWindow()が使用されます。また、cv2.waitKeyを使用することで、ウィンドウを消去するまでの処理の時間を指定することができます。

cv2.namedWindow("MyWindow")
cv2.waitKey(100000)
cv2.destroyWindow("MyWindow")

このコードは、MyWindowという名前のウィンドウを作成し、100秒間キー入力を待ち続けて、MyWindowというウィンドウを消去するコードです。そのため、100秒間の間にキーボードから入力があるとき、MyWindowというウィンドウを消去します。cv2.waitKey(1)は1m秒キー入力を待つから、cv2.waitKey(100000)は100秒キー入力を待ちます。

cv2.namedWindow("MyWindow")
cv2.namedWindow("src")
cv2.waitKey(0)
cv2.destroyAllWindows()

このコードはMyWindowという名前のウィンドウを作成し、キーボード入力を待機してから、すべてのウィンドウを消去するコードです。cv2.waitKey(0)は0m秒キー入力を待つのではなく、キーボードからの入力を無限に待ち続けます。

画像の表示

グレースケールの画像をウィンドウ上に表示するということを行いたいと思います。画像をウィンドウ上に表示するためには、cv2.imshow("ウィンドウの名前",画像の変数)を使います。

file_src="src.png"
img=cv2.imread(file_src,0)
cv2.namedWindow("src")
cv2.imshow('src',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

うまくいくと以下のようにウィンドウが表示されます。

-python3