べれすく!

素人プログラマによるモノづくりやブログ生活を話すブログ

【スポンサーリンク】

【VisualStudio2019とC++】環境変数の設定なしで簡単にOpenCVの開発環境を整える話。

こんにちは!べれすくです。
 
最近、人工知能やライブラリの便利さからPythonが人気ですね。
しかし、C++でしかつかえないライブラリがあったり、実行速度が速いという点でC++にもアドバンテージはあります!
 
そんなわけで、今回はVisualStudio2019を使ってC++OpenCVの開発環境を整えようと思います。
Python に比べると導入が面倒ですがやっていきましょう!

↓ちなみにPythonOpenCVの環境を整える話はこちら

veresk.hatenablog.com

もくじ

VisualStudio2019を入れよう!

VisualStudio2019をインストールします!

visualstudio.microsoft.com

多くの人はCommunityで大丈夫です。
ダウンロードしたら指示道理にインストールしていきます。
f:id:Veresk:20200301192017p:plain ワークロードはC++によるデスクトップ開発」にチェックが入っていればあとはお好きなものをどうぞ!
後からでも変更できるので特に深く考える必要はありません。
インストールには結構な容量を必要とするため、時間がかかります
気長に待ちましょう。
 
インストールが完了したら今は閉じておいて構いません。
 

OpenCVをダウンロードしよう!

OpenCVをダウンロードします。

opencv.org

こだわりがなければ最新版でいいと思います。
今回は最新が4.2.0だったのでそれを使います。
ダウンロードしたら実行しましょう。
f:id:Veresk:20200301192658p:plain
展開する場所を指定します。
今回はD直下にしました。この場所はよく使うので覚えていてください。(メモ帳とかに貼っとくといいです)
 

プロジェクトを作ろう!

VisualStudioでプロジェクトを作りましょう。
VisualStudio2019を起動してください。
f:id:Veresk:20200301220412p:plain
起動したら「新しいプロジェクトの作成」を選びます。
f:id:Veresk:20200301220554p:plain
今回は空のプロジェクトを使います。
C++なら基本的に動くので、実際に使う際は用途に合わせて選んでください。
f:id:Veresk:20200301220805p:plain
プロジェクト名とプロジェクトファイルを置くフォルダを好きなように設定します。
この場所も後で使うので覚えておいてください。
 

ライブラリディレクトリの指定をしよう!

これでプログラムを始められる状態になったわけですが、このままではOpenCVは使えません!
VisualStudioにOpenCVのファイルがどこにあるかを教えてあげないといけないからです。
上部のプロジェクトタブからプロパティを開きます
f:id:Veresk:20200301221340p:plain
構成を「すべての構成」に、プラットフォームを「すべてのプラットフォーム」に変えます。
 

インクルードディレクト

VC++ディレクトリタブを選択し、インクルードディレクトリを編集します。
編集は欄をクリックすると出る、右端の下矢印を押すと出てきます。
f:id:Veresk:20200301221625p:plain 右上の黄色いファイルマークを押し、OpenCVの中にあるインクルードディレクトリを以下のような形で指定します。

「OpenCVの場所」\opencv\build\include

OpenCVの場所」は先ほどOpenCVを展開したときに覚えておいてくださいと言ったものです。 私の場合はD直下なので写真のようになります。
f:id:Veresk:20200301222343p:plain
 

ライブラリディレクト

続いて、ライブラリディレクトリも指定します。

「OpenCVの場所」\opencv\build\x64\「vcなんとか」\lib

OpenCVの場所」に関してはインクルードディレクトリと同じです。
「vcなんとか」はバージョンによって異なります。(4.2.0ではvc14かvc15です。違いは分かりませんが、どっちでも動きます。)
わからない場合は実際にそのディレクトリに行ってファイルを見てみるのがいいでしょう。 追加の仕方はインクルードディレクトリと同じです。
私の環境ではこんな感じです。
f:id:Veresk:20200301223448p:plain
 

追加の依存ファイル

依存ファイルの指定をします。
リンカータブを開き、入力タブに進みます。
その中にある追加の依存ファイルを編集します。
f:id:Veresk:20200301224329p:plain
以下の2文を追加します。

opencv_world「OpenCVのバージョン」d.lib
opencv_world「OpenCVのバージョン」.lib

OpenCVのバージョン」はダウンロードしたOpenCVのバージョンです。
今回は4.2.0なので、

opencv_world420d.lib
opencv_world420.lib

のようになります。
f:id:Veresk:20200301224428p:plain

 

DLLファイルを配置しよう!

本来であればここでwindows側の環境変数をいじるのですが、管理者権限が必要+環境を別PCに移すと動かなくなるという問題があるので、別の手法をとります。
こちらのほうが簡単ですしね。
まずは下準備です。

Debug、Releaseフォルダの生成

現状、空のプロジェクトを立ち上げただけなので、プログラムを書くファイルすらありません。
まずはそれを作りましょう。
右側にあるフォルダ一覧から「ソースファイル」を右クリックして「追加」→「新しい項目」に進みます。
f:id:Veresk:20200301225148p:plain
C++ファイル」を選んで追加を押します。(ファイル名は好きに変えてもらって構いません。)
f:id:Veresk:20200301225306p:plain
VisualStudio内のコードエディタが起動し、文字を打てるようになります。
ここにコードを打っていくのですが、今は何も打たずに上の欄が「Debug」「x64」になっていることを確認して、再生マークを押してください。なっていなければ変えてください。
f:id:Veresk:20200301225738p:plain
エラーが出ると思います。それで正常です。だって、何も書いてないんですもの。
「最後に成功したビルドを実行しますか」という問いには「いいえ」と答え終了します。
一見無駄な行為に見えますが、これでプロジェクトファイルの中に必要なフォルダが生成されています

DLLファイルの移動

エクスプローラを開き、プロジェクトフォルダへ移動します。

「プロジェクトフォルダの場所」\x64\Debug

ちなみに、この「x64」フォルダは一度は実行しないと出現しません
私の環境だと

D:\document\visualstudioproject\OpenCV\x64\Debug

になります。
 
もう一つエクスプローラを開き、今度はOpenCVを展開したフォルダを開きます。

「OpenCVの場所」\opencv\build

f:id:Veresk:20200301235155p:plain
その中にある、opencv_world420d.dll」と「opencv_world420.dll」を先ほど開いたプロジェクトフォルダの中にコピーします。
 
↓プロジェクトフォルダ f:id:Veresk:20200301234520p:plain
こうなればOKです。

サンプルプログラムを起動しよう!

こちらからサンプルプログラムを借ります。

qiita.com

一番シンプルです。

#include <opencv2/opencv.hpp>

using namespace cv;

int main()
{
    Mat image = Mat::zeros(100, 100, CV_8UC3);
    imshow("", image);
    waitKey(0);
}

これだけです。
これを先ほどのVisualStudio2019にコピペして実行しましょう。
f:id:Veresk:20200302000747p:plain
左上に小さいウィンドウが出れば完成です。
 

まとめ

今回はVisualStudio2019でOpenCV環境変数の設定なしに利用する方法をお話ししました。質問やご指摘があれば下のコメントからお願いします。できる限り回答、改善をさせていただきます。
ライブラリディレクトリの指定やDLLファイルの設置はプロジェクトを作るたびに行わなければなりません。
Pythonに比べれば面倒くさい作業ですが、画像や動画という容量の大きいメディアを扱う上で速度面の欲はいずれ出てくると思います。
そういう時にこの記事を思い出して、C++でやってみようと思ってもらえれば幸いです。

次回はPythonOpenCVの環境を整える話をしたいと思います。
↓つぎ

veresk.hatenablog.com

   
今回はここまでにしましょう。それでは!