OpenCVで画像を表示


OpenCVを利用する第一歩としてして画像を読み込んで表示してみる。

  1. ビルドの準備
  2. OpenCVで画像を表示する

ビルドの準備

OpenCVを利用して画像を表示するプログラムはVisual Studio 2017のC++で書く。Visual StudioでOpenCVを利用するには、バイナリをダウンロードして利用するか、ソースからビルドして利用する。

単に画像を表示するだけなら、バイナリをダウンロードして利用するのが手っ取り早い。どちらにしても、OpenCVのヘッダやライブラリを利用するための設定は必要になる。

まず、Visual Studioでプロジェクトを作成する。新しいプロジェクトでVisual C++のWindows コンソール アプリケーションを作成する。プラットフォームはx64にする。


[プロジェクト]-[(プロジェクト名)のプロパティ]メニューを選択し、


プロパティ ページで以下を追加または変更する。

<構成プロパティ>
デバッグ 作業ディレクトリ $(OutDir)
環境 PATH=C:\opencv-3.4.3\build\x64\vc15\bin;%PATH%
VC++ ディレクトリ インクルード ディレクトリ C:\opencv-3.4.3\build\include
ライブラリ ディレクトリ C:\opencv-3.4.3\build\x64\vc15\lib
C/C++ プリコンパイル済みヘッダー プリコンパイル済みヘッダー プリコンパイル済みヘッダーを使用しない
リンカー 入力 追加の依存ファイル opencv_world343d.lib(デバッグ版)

後述するが、上記のデバッグ > 作業ディレクトリについては、OpenCVの利用に必須のものではない。設定に当たっては、どの構成のどのプラットフォームの設定を行っているのかを意識してほしい。また、OpenCVをソースからビルドした場合等、パスは適宜調整(例:C:\opencv-3.4.3\build→C:\opencv-3.4.3\build\install)していただきたい。

OpenCVで画像を表示する

例えば、JPEG画像を読み込んで表示するだけなら以下のコードになる。imread関数で画像を読み込み、それをimshow関数でウィンドウに表示するだけである。imshow関数は予めウィンドウが生成されていない場合、ウィンドウの生成もやってくれる便利な関数なので、ウィンドウ名と表示する画像だけ意識していれば良い。

#include <opencv2/opencv.hpp>

using namespace cv;

int main()
{
	Mat img;
	// 画像の読み込み
	img = imread("IMG_0332small.jpg");
	if(img.empty()) {
		return -1;
	}
	// 画像表示
	imshow("画像表示テスト", img);
	waitKey();

	return 0;
}

これを実行すると以下のように読み込んだ画像が表示(画像自体に特に意図はない)される。


尚、構成プロパティでデバッグの作業ディレクトリを$(OutDir)に変更したのは、表示するJPEGファイルを生成されたexeと同じフォルダに置くためである。

(2018/09/21)

新着情報
【オープンソースソフトウェア環境構築】Visual StudioでOpenCVのビルド
【オープンソースソフトウェア環境構築】OpenCVで画像を表示
【iOS Objective-C, Swift Tips】ファイルアップロード(Swift)

Copyright© 2004-2018 モバイル開発系(K) All rights reserved.
[Home]