windows10にopencvの開発環境を整える
いろいろとあって、画像処理のプログラムを書くことになりました。画像処理のプログラムを書く上で、有名なオープンソースのコンピュータビジョン向けのライブラリのopencvを使用してみようということで開発環境をいつも通り構築しました。インターネット上に情報が載っていますが、自分への忘備録としてここに書き残しておこうと思います。
pythonの場合はpipコマンドで簡単にopencvを使用することができるようになりますが、私はc++を使用したいと考えています。そのため、開発環境をしっかりと作らないとコンパイルを通すことができません。
そのため、いろいろとやっていきます。私の環境としてはVisual Studio Community 2019, Windows10です。
必要なソフトをダウンロードする
visual studio community 2019(ダウンロードページ)とCMakeのGUI(ダウンロードページ)をインストールしましょう。それぞれ、各自の開発環境にあったものをダウンロードしてください。
visual studio community 2019のインストーラを起動したら、c++にチェックをいれてインストールしておきましょう。
OpenCVをダウンロードする
OpenCVの公式サイトからSourcesをクリックしてダウンロードしましょう(ダウンロードページ)。インストールしたzipファイルを展開してcドライブ直下にディレクトリを移動してください。また、opencv_contribを使用したい場合は、Githubのopencv_contribから自分のインストールしたOpenCVのバージョンに対応したバージョンのものをダウンロード、展開してcドライブ直下のOpenCVのディレクトリに移動しておいてください。
私は次のようなディレクトリ構造にしました。
C:opencv349opencv-3.4.9/いろんなディレクトリ等
C:opencv349opencv_contrib-3.4.9/いろんなディレクトリ等
その後、CMakeのGUIアプリケーションを起動しましょう。
CMakeしてみる
CMakeのGUIアプリケーションを起動して、Where is the source codeにCMakeLists.txtがあるディレクトリを指定、where to build the binariesにbuildをしたものの保存用ディレクトリをそれぞれ指定していきます。
私の場合は、それぞれ以下のようになります。buildディレクトリは存在しませんが、Configureをするときに生成できるので問題ないです。
C:/opencv349/opencv-3.4.9
C:/opencv349/build
左下のConfigureボタンを押してみましょう。そうすると、ダイアログがでてきて作成するプロジェクトを何にするのかという設定を行うことができます。Visual Studio 16 2019、x64を設定しましょう。
少しまってConfigureが完了すると以下のような画面になると思います。
そしたら、この中からBUILD_opencv_worldを探してチェック、CMAKE_INSTALL_PREFIXのパスを後にPATHを通すときに楽(?)にするために、C:/opencv349/install等に設定しておく、contribのライブラリを使用する場合は、OPENCV_EXTRA_MODULES_PATHのvalueにC:/opencv349/opencv_contrib-3.4.9/modulesのようにcontribのmodulesディレクトリを設定してください。
そしたら、Generateボタンをクリックしましょう。設定を変更した場合、自動でConfigureされプロジェクトが作成されます。Generateが完了したらOpenProjectボタンからプロジェクトを起動しましょう。
ダウンロードしたソースをビルドする
Visual Studioのプロジェクトが起動したら、左上のビルドからパッチビルドというところを選択してください。
パッチビルドを開いたら、ALL_BUILD(Release)とINSTALL(Release)をそれぞれチェックをいれてビルドしましょう。
これで、ビルドが自動的に行われます。いろんなファイルをビルドするため10分から~20分くらい時間がかかるのでゆっくり待ちましょう。
ビルドが正常成功したら成功です。
PATHを通す
ビルドが成功すると、先程CMAKE_INSTALL_PREFIXに設定したディレクトリが新しくできていると思います。以下に示すディレクトリを絶対パスでPATHに追加をしてください。以下では相対パスで書いています。
./installx64vc16bin
新規プロジェクトを作成する
ここまで長かったですね・・・。後はプロジェクトを作成してプロジェクトの設定をすれば実行が可能です。やっていきたいと思います。
visual studio community 2019を起動→新規プロジェクトの作成→空のプロジェクト(c++)でプロジェクトの作成をしてください。プロジェクト名は各自好きな名前をつけていただければと思います。
プロジェクト(P)からプロパティ(P)を選択してプロパティページを開いてください。構成をRelease,プラットフォームをx64に設定したらそれぞれの箇所に以下の設定を行ってください。私の場合の設定を書いておきます。
インクルードディレクトリに追加 ;C:/opencv349/install/include;
リンカー全般の追加のライブラリディレクトリに追加 C:/opencv349/install/x64/vc16/lib
追加の依存ファイルの末尾に追加 ;opencv_world349.lib;
ここまで設定したらプロパティページの適用ボタンを押して閉じてください。
ここまで設定したらコンパイルができて無事動作をするのかどうかの確認をしてみます。ソースファイルの上で右クリック、追加新しい項目からmain.cppを作成してください。
動作確認
画像をソリューションの直下ディレクトリから読み込んで画面に表示するプログラムで動作確認をするためのプログラムを実行してみます。
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat img;
img = imread("test.png");
imshow("test image", img);
waitKey();
return 0;
}
無事コンパイルが通って、入力した画像が表示できたら環境構築成功です。
さいごに
開発環境の構築に一苦労ですね・・・。visual studio community を使用する場合、新しいプロジェクトを作成するたびに設定をする必要があるので注意してください。
この記事が誰かの助けになれば幸いです。