本日はVisual StudioからNugetを使ってOpenCVの環境構築をしてみようと思います。
何故この記事を書くに至ったかというと、他の記事でOpenCVの環境構築をしたいということが結構あって、そのときにNugetが一番簡単で手っ取り早いよねということがあったので、引用できるように、取りあえず書いておこうと思ったわけです。
目次
NuGetとは
NuGetは、Visual Studioの拡張機能として付属しているライブラリの管理システムです。ライブラリの導入や、管理を簡単に行うことができます。
このライブラリ管理システムを用いることで、OpenCVなんかもボタン1つ押すだけで入っちゃうよという話です。
OpenCVの環境構築方法の整理
そもそも、このブログでもOpenCVの環境構築について、他の記事で書いてきました。
OpenCVの環境構築の前提として、やり方は何通りかあり、それぞれにメリットやデメリットはあります。
NuGetを使ってOpenCVの環境構築をすることは、あくまで一つのやり方でしかありません。
OpenCVの環境構築を行う上で個人的な難易度(と掛かる時間)を低い方から挙げると、
(1) NuGetを使う
(2) ビルド済のOpenCVを使う
(3) ビルドから自分でやる
となり、NuGetを使うのは圧倒的に簡単で楽です。
ちなみに(2)と(3)については
Visual Studio 2015でOpenCV 3.4環境構築(Windows10)
(ビルド済のOpenCVを使う)
Windows10でOpenCV3.4.1とopencv_contrib環境構築
(ビルドから自分でやる)
の記事で大体カバーしているので、そちらをご覧いただけると雰囲気がわかると思います。
簡単ならば全部NuGetでやればいいのではと思うかもしれませんが、少なくとも以下の欠点はあります。
・そもそもVisual Studioの拡張機能なので、Visual Studioでしか使えない。
・OpenCVには様々なバージョン(2系、3系など)があるが、3系の最新版などがすぐNuGetに対応するわけではないため、最新版にしか入ってないモジュールとか関数使いたいとかなら選択肢から消える。
・各ソリューションでOpenCVをダウンロードするから容量とかが結構無駄。
上記のようにデメリットがないわけではありませんが、個人的にはちょっとOpenCV使って画像表示したり、保存したりしたいときには便利なので、ストレージの容量とかが余っているのであれば、これで環境構築するのが楽です。
それでは、実際にNuGetでOpenCVの環境構築をしてみましょう。
今回の環境
・OS : Windows10(64bit)
・Visual Studio 2015 Community(導入済)
手順
(1) NugetでOpenCVの環境構築
Visual Studioでプロジェクトを作成し、ソリューションエクスプローラーのプロジェクト名の上で右クリックします。
すると、NuGetパッケージの管理という項目が出てくるので、そちらをクリックします。
上部「参照」をクリックし、「opencv」で検索します。
候補がいくつか出てきますが、今回は一番上のものをインストールしてみます。
右にバージョンが書いてありますが、「v2.4.11」とあり、OpenCV2.4.11というバージョンをダウンロードしていることがわかります。
右のウィンドウより、「インストール」を選択します。
以下のようなウィンドウが出るかもしれませんがOKで進みます。
これで、上手くいけばOpenCVがインストールされました。
これにて環境構築は終了です。NuGetを使うと、本当に簡単に環境構築ができるということがわかると思います。
(2) テストコードの実行
では、これでテストコードの実行をしてみたいと思います。
今回、画像を表示するだけのプログラムを以下に用意したので、このコードを実行してみましょう。
「Release/x64」で実行してください。
ただし、表示する「test.png」だけは自分で適当な画像を用意してください。
#include <opencv2/opencv.hpp> using namespace cv; int main(void) { Mat input_image; input_image = cv::imread("test.png", 1); if (input_image.empty()) return -1; cv::namedWindow("input_image", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO); cv::imshow("input_image", input_image); cv::waitKey(0); return 0; }
実行すると、以下のように画像が表示されました。
まとめ
NuGetを用いたOpenCVの環境構築を行いました。
他の方法に比べ、短時間で簡単に環境構築できるのが最大の特徴です。Visual Studioを使っている人でOpenCVを取りあえず使ってみたい人は、是非試してみてください。