NuGetとは、.NET Framework対応のパッケージ管理システムです。また、VS 2012以降から標準でNuGetがインストールされているため、ユーザーは特に追加でインストールすることなくNuGetを利用できます。
このNuGetを用いることで、非常に簡単にOpenCVの環境を構築できるようになっています。ただし、プロジェクトごとにOpenCVのパッケージをインストールする必要があることから、プロジェクト数が多くなると使用ファイルサイズも大きくなってしまう点に注意が必要です。
また、記事執筆時点(2016/2/28現在)OpenCV 3.1のNuGetパッケージはコンフィグレーションによっては正常に動作しないようです(今後、修正される可能性があります)。
NuGetでOpenCVを導入する前にまず、Visual Studioプロジェクトを作成する必要があります。ここでは新規Visual Studioプロジェクト作成方法について述べていきます。プロジェクト作成方法は、以下の画面を参考にしてください。
4.2でVisual Studioプロジェクトを作成できたので、次にNuGetを使ってOpenCVパッケージをインストールします。インストール方法は、以下の画面を参考にしてください。
これでプロジェクトに対するOpenCVパッケージ設定は完了です。また、パッケージの実体は、ソリューションファイルと同一階層の「packages」ディレクトリに格納されます。
なお、インストールしたNuGetパッケージ「OpenCV3」は(執筆時点で)VS 2013のみに対応しています。VS 2015でこのパッケージを使いたい場合は、プロジェクトプロパティの[構成プロパティ]−[全般]−[プラットフォーム ツールセット]を「Visual Studio 2013 (v120)」に切り替える必要があります(※切り替えない場合は、以下の作業でエラーが発生しますので注意してください)。
NuGetでOpenCVパッケージが正しく導入できたことを確認します。
先ほど作成したソースファイルに以下のコードを記述します。
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
int main(int argc, const char* argv[])
{
// 幅320px、高さ240pxで赤色の画像データを生成
cv::Mat redImg(cv::Size(320, 240), CV_8UC3, cv::Scalar(0, 0, 255));
// 画像表示用のウィンドウを生成
cv::namedWindow("red", cv::WINDOW_AUTOSIZE);
// ウィンドウに画像を表示
cv::imshow("red", redImg);
// キー入力を待機
cv::waitKey(0);
// 作成したウィンドウを全て破棄
cv::destroyAllWindows();
return 0;
}
その後、ビルドしてプログラムを実行すると、図21のような赤色で塗りつぶされた画像がウィンドウに表示されます。キー入力を行うと、ウィンドウが閉じられプログラムが終了します。このようになれば、NuGetでOpenCVパッケージが正しく導入できています。
ここまででNuGetを使った環境構築は完了です。
公式パッケージ、CMake、NuGetいずれの環境構築においても、トラブルを回避するために注意した方がよいポイントを以下にまとめます。
今回は、以下の3ケースのOpenCV環境構築方法を解説しました。
次回以降は、実際にOpenCVを使ったプログラミングについて解説します。
Copyright© Digital Advantage Corp. All Rights Reserved.