Visual Studio 2019 & OpenCV4.2.1環境構築とプロパティシートの使いまわし

visual studio 2019ではプロジェクトごとに、opencvのinclude pathやlib pathをいちいち指定せねばなりません。

#簡単なopencvインストールの仕方。

~list~
<kbd>1.ビルド済みのファイルをダウンロードする。<kbd\>
<kbd>2.解凍してフォルダを特定の場所に配置する。<kbd\>
<kbd>3.環境変数を通す。<kbd\>

------

<kbd>1.ビルド済みのファイルをダウンロードする。<kbd\>

下のwebサイトからzipファイルをダウンロードしてきます。
https://github.com/opencv/opencv/releases/tag/4.1.2
現在最新の、4.1.2でここでは進めます。

※もしくは、下のURLをクリックすれば、ダウンロードが始まります。
（https://github.com/opencv/opencv/archive/4.1.2.zip ）

---

※.exeファイルでも構いません。その場合は、Cフォルダ下に`dev`フォルダを先に作っておいて、次のようにします。

![visualstudio2019_qiita6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448552/6896083d-3639-84ea-8d05-5bc0f4d91172.png)

そして、生成された、`opencv`フォルダを、`opencv412`と名前を変更する。
exeファイルの方で進めた場合は、次の`2.解凍してフォルダを特定の場所に配置する。`は飛ばしてください。

----

<kbd>2.解凍してフォルダを特定の場所に配置する。<kbd\>

ダウンロードしてきたものを下記図のように配置する。

```
C:\
　└ dev\
　 　└ opencv\ (解凍したフォルダ)
        ├ build\
        ├ sources\
        ├    .
        ├    .
        ├    .
```

Cフォルダ下に`dev`フォルダを作って、解凍してきたのをdevフォルダ下に配置。

`opencv`ディレクトリは、`opencv412`にしておくと良い。

最終的に下のようになる。

![visualstudio2019_qiita.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448552/70c9c976-7675-ccde-3cbc-4f87f0f6aabd.png)

※必ずしも上のように配置する必要はない。なぜならば、次でPathを通すから。

----

<kbd>3.環境変数を通す。<kbd\>


1.Windows キー + Pause/Break キー(またはコントロールパネル > システム)
2.[システムの詳細設定]リンク
3.[詳細設定]タブ
4.[環境変数]ボタン
5.[システム環境変数]グループボックス内の「Path」を選択して [編集]ボタン
6.[新規]を押し、`C:\dev\opencv412\build\x64\vc15\bin`と入力し、okとかそういうのを押す。
※上のように配置した場合のpathです。

#Visual Studioでテストプログラムを走らす。

~list~
<kbd>1.サクッとプロジェクトを作成する。<kbd\>
<kbd>2.ガリッと新しいアイテムを追加する。<kbd\>
<kbd>3.ポキッとプロパティシートをダウンロードする。<kbd\>
<kbd>4.ピヨッとプロパティシートをセットする。<kbd\>
<kbd>5.ガチッとサンプルプログラムを走らす。<kbd\>

----

<kbd>1.サクッとプロジェクトを作成する。<kbd\>

`Visual Studio 2019`を開く。

![visualstudio2019_qiita2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448552/fc3c3eca-9f3a-5909-bac4-130aab6ae69e.png)

1.新しいプロジェクトを作成する。

![visualstudio2019_qiita3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448552/776154d1-75ec-a150-7788-4e189f1c171d.png)

2.空のプロジェクトを選択。

3.適当に（そのままで構わない）名前を付けて、作成する。

----

<kbd>2.ガリッと新しいアイテムを追加する。<kbd\>

1.ソリューションエクスプローラー内の「ソースファイル」を右クリックする。
2.追加(D)/新しい項目(W)…でウィンドウを開く。
3.名前はそのままで、拡張子が、`.cpp`となっていることを確認する。そして追加する。

-----

<kbd>3.ポキッとプロパティシートをダウンロードする。<kbd\>

1.デスクトップにでも、新しいテキストファイルを作成し、名前＋拡張子を、`opencv-412.props`とする。
2.ノートパッドで上のファイルを開き、次のテキストをコピーし、ペーストする。

```
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets" />
  <PropertyGroup Label="UserMacros">
    <OPENCV_INSTALL_DIR>C:\dev\opencv412\build</OPENCV_INSTALL_DIR>
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <ClCompile>
      <AdditionalIncludeDirectories>$(OPENCV_INSTALL_DIR)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
    </ClCompile>
    <Link>
      <AdditionalLibraryDirectories>$(OPENCV_INSTALL_DIR)\x64\vc15\lib;%9AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>opencv_world412d.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
</Project>
```

----

<kbd>4.ピヨッとプロパティシートをセットする。<kbd\>

1.`Visual Studio 2019`に戻る。
2.表示 ＞ 他のウィンドウ ＞ プロパティマネージャーでプロパティマネージャーを開く。

3.プロパティマネージャー内の、`Project1`の上で右クリックする。
4.`既存のプロパティシートを追加`をクリックし、上で作った、`opencv-412.props`を選択する。

----

<kbd>5.ガチッとサンプルプログラムを走らす。<kbd\>

1.下記図のように、`デバッグ` `x64`を選択する。必ず。なぜならば、スプレッドシート内に、`デバッグ｜x64`の記述しかないから。

![visualstudio2019_qiita5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/448552/79d1fb87-8cfe-04e3-97fa-c183c91b9d07.png)


2.ソリューションエクスプローラーで、`Source.cpp`を選択して、テキストエディタに次のプログラムをコピーして、ペーストする。

```
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>

int main() {
	cv::Mat Img(cv::Size(500, 500), CV_8UC3, cv::Scalar(192, 15, 252));
	cv::namedWindow("shocking_pink", cv::WINDOW_AUTOSIZE);
	cv::imshow("shocking_pink", Img);
	cv::waitKey(0);
	cv::destroyAllWindows();
	return 0;
}
```

そして、`F5`キーを押す。

さて、ショッキングなピンクが、表示されましたでしょうか？

表示されない場合は、もう一度はじめから読んで、コメントしてください。お願いします。それではまた。

#参考
https://www.atmarkit.co.jp/ait/articles/1603/18/news179.html
https://medium.com/@subwaymatch/opencv-410-with-vs-2019-3d0bc0c81d96
https://www.colorhexa.com/fc0fc0