OpenCV 4.5.2をVisual Studio 2019で動かす方法

# 概要
OpenCV 4.5.2をVisual Studio 2019で使用する時の手順

# 環境
* Windows 10(64bit)
* OpenCV 4.5.2
* Visual Studio 2019

# 対象
* Windows マシン保持者
* OpenCVをC++で触りたい人

# 記事を読んで出来ること
* Visual Studio 2019 を用いたOpenCVでのプログラミング


# 手順
* Visual Studio 2019を用意しよう
* OpenCVを用意しよう
* 環境変数の設定をしよう
* Visual Studioの設定をしよう
* サンプルプログラムを動かそう

## Visual Studio 2019を用意しよう
* [ここ](https://visualstudio.microsoft.com/ja/downloads/)からVisual Studio 2019を取得する
![2021-04-05 (3)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1133255/5923e8d4-7301-d945-ba0e-ff4174b9ccc8.jpeg)

* ダウンロードした vs_community_(VERSION).exe を実行
* 指示に従ってインストールを行う
* C++で開発をするため、「C++によるデスクトップ開発」を選択してインストール
![2021-04-11 (2)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1133255/1ef96850-f9fd-a67f-da40-3af265483b69.jpeg)

    * 他の機能は必要なときにインストールしましょう


## OpenCVを用意しよう
* [ここ](https://opencv.org/releases/)からOpenCVの最新バージョンを取得し、C:\内に展開する。
![2021-04-05 (2)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1133255/81043d37-a9fa-d0cd-75f1-0bca32c01ea0.jpeg)

* C:直下に展開する
![2021-04-08 (2)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1133255/edaf923c-05e6-f34c-6572-387692be4910.jpeg)



* C:\opencvの名前の末尾にバージョン名を追加しておく
    + 例えば、バージョン4.5.2ならC:\opencv452となる
    + 以降便宜上opencvのrootパス(C:\opencv452の部分)を「%OPENCV%」と記載する


## 環境変数の設定をしよう
* コントロールパネル→システムとセキュリティ→システム→システムの詳細設定
* システムのプロパティが開き、詳細設定タブの環境変数をクリック
* システム環境変数欄の「Path」を編集
* 「新規」をクリックし、「%OPENCV%\build\x64\vc15\bin;」と入力


## VisualStudioの設定をしよう
### プロジェクト設定
* 新しいプロジェクトの作成をクリックします
![2021-04-05 (5)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1133255/6ca5ac21-f132-fa3a-f2e9-e664bf960901.jpeg)

* 以下のように設定します

|設定内容|値|
|:---|:---|
|言語|C++|
|プロジェクトの種類|コンソール アプリ|

![2021-04-05 (7)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1133255/e34403e5-ff94-a44e-9cc2-6926e7f302f1.jpeg)

プログラムの実行 : Ctrl + F5 or [デバッグ] > [デバッグなしで開始]
プログラムのデバッグ : F5 or [デバッグ] > [デバッグの開始]

デフォルトでは、Hello World!と表示されます。


### 構成
* ソリューション構成とソリューションプラットフォームの設定をします。

|設定内容|値|
|:---|:---|
|ソリューション構成|Debug or Release|
|ソリューションプラットフォーム|x64|
![2021-04-06 (2)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1133255/cb5a4b86-71e4-9f40-4e05-747d140a55ef.jpeg)



* [プロジェクト] > [(ファイル名)のプロパティ]から各種設定を変更し、opencv_world452というライブラリを利用できる環境を構築します。
![2021-04-05 (9)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1133255/55c99b22-faf2-83a9-0628-d249dad8e618.jpeg)


* 以下のような手順で各種設定を行って下さい。


![2021-04-08 (3)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1133255/67d9d811-32e8-45f2-055b-dc21fed2c875.jpeg)


![2021-04-08 (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1133255/94d6ff34-4695-586a-8b3d-3892b092e3db.png)



|設定内容|値|
|:---|:---|
|ソリューション構成|Debug or Release|
|ソリューションプラットフォーム|x64|
|構成プロパティ / デバッグ：環境|PATH=%OPENCV%\build\x64\vc15\bin;%PATH%|
|構成プロパティ / VC++ ディレクトリ：インクルード ディレクトリ|%OPENCV%\build\include|
|構成プロパティ / VC++ ディレクトリ：ライブラリ ディレクトリ|%OPENCV%\build\x64\vc15\lib|
|構成プロパティ / リンカー / 入力：追加の依存ファイル|opencv_world452d.lib or opencv_world452.lib|

* opencv_world452d.libは、デバッグ用のライブラリになります。デバッグのための機能が付いているので多少重く（気にならない程度に）なりますが、ソリューション構成をDebugとした場合には、opencv_world452d.libの方を選択してください。
* 参考までに、ライブラリはデバッグ用のライブラリとそうでないものが用意されていることが多いです。デバッグ用のライブラリを使わないとビルドが通らないことなどがあります。実際これがわからず、ビルドが通らないことで苦労しました。そのため、今後ライブラリを使うときには気にしてみてください。



## サンプルプログラムを動かそう
```cpp:main.cpp
#include <opencv2/opencv.hpp>

using namespace cv;

int main()
{
    Mat image = Mat::zeros(100, 100, CV_8UC3);
    imshow("", image);
    waitKey(0);
}
```
小さなウィンドウが表示されたら成功です。

以上です。
お疲れさまでした。