OpenCV for C++...

13
画像処理工学 情報システム工学実験Ⅳ 資料 - 1 - OpenCV for C++ による画像処理(1) 1.開発環境準備 OpenCV3 のビルド済ライブラリやインクルードファイルをインストールし,Visual Studio 用いてプログラム開発が行えるように環境設定を行う. ダウンロード 本来,OpenCV の開発では,OpenCV のサイトからダウンロードしてきたインストールファイ ルを解凍し,ソースをコンパイルすることによって構築されたライブラリファイルを利用するが, ここではすでに VisualStudio2017 でビルドコンパイルしたライブラリファイルをインストール, 利用する. OpenCV のサイト http://opencv.org にアクセスし,右上のメニューの「Releases」をクリックする. OpenCV サイト上の「Releases」をクリック Releases をクリック

Transcript of OpenCV for C++...

Page 1: OpenCV for C++ による画像処理(1)imgprolab.sys.fit.ac.jp/~yama/imgproc/proc/Document...画像処理工学 情報システム工学実験Ⅳ 資料 - 1 - OpenCV for C++ による画像処理(1)

画像処理工学

情報システム工学実験Ⅳ

資料

- 1 -

OpenCV for C++ による画像処理(1) 1.開発環境準備

OpenCV3 のビルド済ライブラリやインクルードファイルをインストールし,Visual Studio を

用いてプログラム開発が行えるように環境設定を行う. ① ダウンロード

本来,OpenCV の開発では,OpenCV のサイトからダウンロードしてきたインストールファイ

ルを解凍し,ソースをコンパイルすることによって構築されたライブラリファイルを利用するが,

ここではすでに VisualStudio2017 でビルドコンパイルしたライブラリファイルをインストール,

利用する. OpenCV のサイト

http://opencv.org にアクセスし,右上のメニューの「Releases」をクリックする.

OpenCV サイト上の「Releases」をクリック

Releases をクリック

Page 2: OpenCV for C++ による画像処理(1)imgprolab.sys.fit.ac.jp/~yama/imgproc/proc/Document...画像処理工学 情報システム工学実験Ⅳ 資料 - 1 - OpenCV for C++ による画像処理(1)

画像処理工学

情報システム工学実験Ⅳ

資料

- 2 -

Releases ページでは,Ver.2.X.X ~ Ver.4.X.X といったバージョンの OpenCV のインストール

ファイルがダウンロードできる.現在(2019 年 9 月 6 日時点)の最新バージョンは Ver.4.1.1 で

あるが,ここでは Ver.3.4.7 を用いることとする.

OpenCV サイトの Releases ページ

下にスクロールすると OpenCV3.4.7 のインストールファイルが OS 毎に選択してダウンロード

できるようになっているので,「Windows」をクリックしてダウンロードする.

Releases ページの OpenCV-3.4.7 にて「Windows」クリック

Windows をクリック

Page 3: OpenCV for C++ による画像処理(1)imgprolab.sys.fit.ac.jp/~yama/imgproc/proc/Document...画像処理工学 情報システム工学実験Ⅳ 資料 - 1 - OpenCV for C++ による画像処理(1)

画像処理工学

情報システム工学実験Ⅳ

資料

- 3 -

② ダウンロードファイルの解凍

「opencv-3.4.7-vc14_vc15.exe」というファイル(自己解凍形式のファイル)がダウンロード

されるので.これをダブルクリックすることによってインストール(解凍)する.

opencv-3.4.7-v14_v15.exe をダブルクリック

ファイルをダブルクリックすると,ファイルの展開(解凍)先を聞いてくるので,自分の PC 環

境に合わせて適宜指定する.

ファイルの展開(解凍)先を指定

この資料では,G:\softに展開したものとする.上図で G:\soft\と指定すると,G:\soft\opencv\と

いうフォルダが作成され,その中にスースファイルやビルドコンパイル済ライブラリファイル,

インクルードファイルなどが解凍される.

ダブルクリック

Page 4: OpenCV for C++ による画像処理(1)imgprolab.sys.fit.ac.jp/~yama/imgproc/proc/Document...画像処理工学 情報システム工学実験Ⅳ 資料 - 1 - OpenCV for C++ による画像処理(1)

画像処理工学

情報システム工学実験Ⅳ

資料

- 4 -

③ Windows 環境変数 Path の設定

OpenCV プログラムを実行するためには,ライブラリ DLL ファイルが必要である.そのため,

DLL ファイルがどこにあるか,Windows の環境変数の一つである Path に対してその場所(フォ

ルダ)を設定しておく必要がある. (1) 「システム」アプレットの起動

「Windows」+「Pause」キーを押して,「システム」アプレットを開く.その後,右側中央よ

りしたにある「設定の変更」をクリックし,「システムのプロパティ」画面を開く.

「システム」アプレットの「設定の変更」をクリック

(2) 「環境変数」画面を開く

「システムのプロパティ」の「詳細設定」タブをクリックし,その画面の下の方にある「環境

変数」ボタンをクリックして「環境変数」画面を開く.

クリック

Page 5: OpenCV for C++ による画像処理(1)imgprolab.sys.fit.ac.jp/~yama/imgproc/proc/Document...画像処理工学 情報システム工学実験Ⅳ 資料 - 1 - OpenCV for C++ による画像処理(1)

画像処理工学

情報システム工学実験Ⅳ

資料

- 5 -

「システムのプロパティ」の「詳細設定」タブの「環境変数」ボタンをクリック

「環境変数」画面の「~のユーザ環境変数」欄の中の「Path」を選択し,「編集」ボタンをク

リックして「環境変数名の編集」画面を開く

「環境変数」画面の「ユーザの環境変数」欄から「Path」を選択し,「編集」ボタンをクリック

クリック

クリック

選択

クリック

Page 6: OpenCV for C++ による画像処理(1)imgprolab.sys.fit.ac.jp/~yama/imgproc/proc/Document...画像処理工学 情報システム工学実験Ⅳ 資料 - 1 - OpenCV for C++ による画像処理(1)

画像処理工学

情報システム工学実験Ⅳ

資料

- 6 -

(3) 「Path」への DLL ファイルフォルダの追加

「環境変数名の編集」画面の右上にある「新規」ボタンをクリックすると,フォルダを記入する

行にカーソルが現れるので,DLL ファイルが入っているフォルダをフルパスで記入する(G:\soft

にインストールした場合には,G:\soft\opencv\build\x64\vc14\binと記入する).

DLL ファイルがあるフォルダをフルパスで記入

(4) 設定した環境変数をシステムへ反映

「環境変数名の編集」,「環境変数」画面の「OK」ボタンをクリックしてそれらを閉じた後,「シ

ステムのプロパティ」画面の「適用」ボタンをクリックして Windows システムに反映させる.最

後に,「OK」ボタンをクリックして終了する. 以上の処理を,Windows にログインしたら必ず最初に行っておくこと.また,場合によっては

Windows 自体を再起動させないと環境変数が反映されないこともある. ③ Visual Studio の環境設定

Visual Studio で OpenCV プログラムを開発する際には,プロジェクトを作成する度にプロパ

ティページにてライブラリパスやインクルードパスを設定する必要がある.また,プログラムを

実行する際にはライブラリ DLL ファイルが必要であるため,プログラムをビルドする際に DLLファイルをプロジェクトフォルダにコピーするように設定する.

クリック フォルダを記入

Page 7: OpenCV for C++ による画像処理(1)imgprolab.sys.fit.ac.jp/~yama/imgproc/proc/Document...画像処理工学 情報システム工学実験Ⅳ 資料 - 1 - OpenCV for C++ による画像処理(1)

画像処理工学

情報システム工学実験Ⅳ

資料

- 7 -

(1) Visual Studio の起動とプロジェクトの新規作成

Visual Studio を起動して,新規のプロジェクトを作成する. 「新しいプロジェクトの作成...」

をクリックすると,「新しいプロジェクト」ウィンドウが表示される.

「新しいプロジェクトの作成...」をクリックして新規プロジェクトを作成

次に,プロジェクトの種類として「Win32 コンソールアプリケーション」を指定する.さらに,

「名前」の欄に適当なプロジェクト名を入力する(下図では「ImageView」としている).

「他の言語」→「Visual C++」を選択し,「Win32 コンソールアプリケーション」を選択

新しいプロジェクトの作成....をクリック

Page 8: OpenCV for C++ による画像処理(1)imgprolab.sys.fit.ac.jp/~yama/imgproc/proc/Document...画像処理工学 情報システム工学実験Ⅳ 資料 - 1 - OpenCV for C++ による画像処理(1)

画像処理工学

情報システム工学実験Ⅳ

資料

- 8 -

すると,「Visual Studio」ウィンドウにてプログラムが記述できる状態となる.

Visual Studio の開発環境ウィンドウ

この状態のウィンドウにて,開発ターゲットの PC プラット-フォームを 32 ビット(x86)から 64ビット(x64)に変更しておく. (2) プロジェクトプロパティの設定

プログラム開発において OpenCV のライブラリを利用できるようにするために,プロジェクト

プロパティページにてインクルードパス,ライブラリパスを指定する.

メニューの「プロジェクト」→「*****のプロパティ」を選択

x86 から x64 に変更

Page 9: OpenCV for C++ による画像処理(1)imgprolab.sys.fit.ac.jp/~yama/imgproc/proc/Document...画像処理工学 情報システム工学実験Ⅳ 資料 - 1 - OpenCV for C++ による画像処理(1)

画像処理工学

情報システム工学実験Ⅳ

資料

- 9 -

「プラットフォーム」を「x64 に変更してから

「VC++ディレクトリ」を選択したあと,「インクルードディレクトリ」を選択して

プルダウンを表示させ,クリックする

「インクルードディレクトリ」ダイアログにて OpenCV をインストール(解凍)したフォルダ内の

include フォルダを指定(上図では G:\soft\opencv\build\include を指定)

クリック

クリック

プラットフォームを x86 から

x64 に変更しておく

VC++ディレクトリを選択

Page 10: OpenCV for C++ による画像処理(1)imgprolab.sys.fit.ac.jp/~yama/imgproc/proc/Document...画像処理工学 情報システム工学実験Ⅳ 資料 - 1 - OpenCV for C++ による画像処理(1)

画像処理工学

情報システム工学実験Ⅳ

資料

- 10 -

OpenCV の include フォルダを指定した結果

同様に,プロパティページにて「ライブラリディレクトリ」を選択し,ライブラリパスを指定す

る.ライブラリフォルダである lib フォルダは,include フォルダと同様に OpenCV をインスト

ール(解凍)したフォルダ内にある(ここでは,G:\soft\opencv\build\x64\vc14\lib を指定).

Page 11: OpenCV for C++ による画像処理(1)imgprolab.sys.fit.ac.jp/~yama/imgproc/proc/Document...画像処理工学 情報システム工学実験Ⅳ 資料 - 1 - OpenCV for C++ による画像処理(1)

画像処理工学

情報システム工学実験Ⅳ

資料

- 11 -

2.開発・実行の確認

ここでは,指定した画像ファイルをウィンドウ表示するプログラムを作成し,ビルド→デバッ

グして,実際に開発・実行できるかを確認する.

① 開発環境ウィンドウにて,以下のプログラムを記述する. 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:

#include "pch.h"

#include <iostream>

#include <opencv2\opencv.hpp>

//ライブラリファイルの指定

#ifdef _DEBUG

#pragma comment(lib, "opencv_world347d.lib")

#elif

#pragma comment(lib, "opencv_world347.lib")

#endif

using namespace std;

using namespace cv;

int main()

{

Mat img; //画像データ保存用Matデータの定義

img = imread("d:\\yama\\sidba\\lenna.bmp"); //画像ファイルの読み込み

if (img.empty()) { //画像が読み込めなく,Matデータが空っぽのとき

cout << "Unable to read file";

cin.get();

return -1; //強制終了

}

imshow("Image", img); //画像の表示

waitKey(); //何かしらのキーが押されるまで表示

return 0;

}

指定した画像ファイルを表示する OpenCV プログラム

(ここでは,G:\yama\sidba\フォルダにある画像ファイル lenna.bmpを指定)

画像ファイルの指定(imread 関数の引数)にて,フォルダ間の記号'\'は二つ並べて書く必要があ

ることに注意が必要である.

Page 12: OpenCV for C++ による画像処理(1)imgprolab.sys.fit.ac.jp/~yama/imgproc/proc/Document...画像処理工学 情報システム工学実験Ⅳ 資料 - 1 - OpenCV for C++ による画像処理(1)

画像処理工学

情報システム工学実験Ⅳ

資料

- 12 -

② 作成したプログラムをビルドする.

メニューの「ビルド」→「ソリューションのビルド」を選択してプログラムをビルド

ビルドが成功するとウィンドウの左下に「ビルド正常終了」と表示される

ビルドに失敗するとエラーメッセージが表示される.このとき,エラーの内容とともにその当該

箇所のライン番号が表示されるので,それらの情報を基に修正し,再度ビルドする.

Page 13: OpenCV for C++ による画像処理(1)imgprolab.sys.fit.ac.jp/~yama/imgproc/proc/Document...画像処理工学 情報システム工学実験Ⅳ 資料 - 1 - OpenCV for C++ による画像処理(1)

画像処理工学

情報システム工学実験Ⅳ

資料

- 13 -

③ プログラムの実行(デバッグの開始)

メニューの「デバッグ」→「デバッグの開始」を選択して,プログラムを実行

コンソールウィンドウとともに画像がウィンドウ表示される