VS2017 で OpenCV (WinPack) の動作確認をしてみました

OpenCV が気になったので Visual Studio Community 2017 に OpenCV 3.4.1 (Win Pack)を入れて C++ プロジェクトを動作させてみました。

環境

Windows10 Home
Microsoft Visual Studio Community 2017
Version 15.7.3
Visual Studio はすでにインストール済みとします。

OpenCV 3.4.1 インストール準備

まず opencv.org から OpenCV をダウンロードします。
3.4.1 の Win pack をダウンロードします。
opencv-3.4.1-vc14_vc15.exe
(2018.06.13現在)

OpenCV 3.4.1 のインストール

ダブルクリックするとインストール先を聞いてきます。
C:\opencv としました。

プロジェクトの作成

プロジェクトの作成をします。
VisualStudio2017 を起動したら ファイル新規作成プロジェクト

新しいプロジェクトダイアログ

Visual C++Windows デスクトップWindows コンソール アプリケーション
名前を指定します。
場所を指定します。
OK でプロジェクトが作成されます。

プロジェクトの設定

まず、ソリューションプラットフォームを x86 から x64 にします。

ソリューションプラットフォーム これをよく忘れます。

プロジェクトプロジェクト名のプロパティ からプロパティページを開きます。

プロパティページ

C/C++追加のインクルードディレクトリ
c:\opencv\build\include を追加します。

リンカー追加のライブラリディレクトリ
c:\opencv\build\x64\vc15\lib を追加します。

リンカー入力追加の依存ファイル
一番最後に ;opencv_world341d.lib を追加します。

341の部分はバージョンにより異なります。
opencv_world341d.lib はデバッグ用です。
opencv_world341.lib リリース用もあります。

構成プロパティデバッグ環境
PATH=C:\opencv\build\x64\vc15\bin;%PATH% を追加します。

プロジェクトをビルド

main 関数のあるソースファイルを以下のようにします。

#include "stdafx.h"
#include <opencv2\opencv.hpp>

int main()
{
    cv::Mat img;
    cv::VideoCapture cap("sample.mp4");
    double max_frame = cap.get(CV_CAP_PROP_FRAME_COUNT);
    for (double i = 0; i&lt;max_frame; i++) {
        cap &gt;&gt; img;
        cv::resize(img, img, cv::Size(), 0.5, 0.5); //サイズを 1/2 にする
        cv::imshow("Video", img);
        cv::waitKey(1);
    }
    return 0;
}

これでビルドが通ると思います。

デバッグ起動

サンプルの動画を main 関数があるソースファイルと同じ場所にコピーします。
動画のファイル名は sample.mp4 です。
デバッグデバッグの開始 で動画が再生されます。

14行目で動画を半分のサイズにして再生しています。
この行をコメントにすることによってオリジナルサイズで再生されます。

応用

Interface2018年7月号 には 30 種類の OpenCV サンプルが DVD 付録に入っています。

これらのサンプルをビルドする方法も書いておきます。

サンプル 6-3 ライフ・ゲーム

プロジェクトを新規作成します。
名前を LifeGame としておきます。

プロジェクトの設定

ソリューションプラットフォームを x64 にします。
追加のインクルードディレクトリ の設定
追加のライブラリディレクトリ の設定
追加の依存ファイル の設定
環境 の設定。

ソースコードの共通部分をコピーする

付録 DVD の共通部分をコピーする
\IF201807\動画処理全集宣言部\VS2017_CV341.txt
といってもインクルードファイルを1つ追加するだけです。
#include <opencv2/opencv.hpp>

ソースコードをコピーする

本体のソースコードをコピーして貼り付けます。
\IF201807\動画処理全集\ライフゲーム\ソースコード\ソースコード:ライフゲーム.txt
今ある main 関数の代わりに置き換えます。
ビルドします。

初期画像の準備

\IF201807\動画処理全集\ライフゲーム\出力\セット1.zip を解凍します。
セット1 の中にある 初期画像.bmp を LifeGame プロジェクトの LifeGame.cpp があるディレクトリに video ディレクトリを作成して コピーします。

デバッグ実行

実行すると黒いウィンドウが開いて1分程でプログラムが終了します。
初期画像.bmp がる video ディレクトリに 出力動画.avi ができています。

以上で OpenCV の動作確認ができました。

タイトルとURLをコピーしました