株式会社インデペンデンスシステムズ横浜

システム開発エンジニアの西田五郎が運営しております。Raspberry Pi や Arduino その他新規開発案件のご依頼をお待ちしております。

OpenCV 使ってみた

NuGetでOpenCVを導入する

投稿日:2014年5月4日 更新日:

Visual Studio Express 2013 for Windows Desktopの開発環境でNuGetを使ってOpenCVを導入してみました。その方法についてです。

0007

まずは、OpenCV(Open Source Computer Vision Library)についてです。結構歴史があると思いますのでご存じの方も多いと思いますが、元々はIntelが開発したオープンソースのコンピュータビジョン関連のライブラリです。幅広いプラットフォーム(OS)に対応しています。私の場合は顔認識の処理がまず思い浮かびます。ここのサンプル画像は、以下の2値化処理の実行例です。
画像処理 OpenCV-CookBook 画像を2値化する

次に、NuGetですが、これは、Visual Studio プロジェクトのライブラリの追加、更新、および削除を容易にする Visual Studio の拡張機能です。Visual Stduio上から利用出来るので、開発中のプロジェクトのライブラリ管理が容易に行えるということです。

つまり、ここで試したい事は、従来のようにOpenCVをインストールしてプロジェクトごとにOpenCVの利用環境を手動で整えていく方法ではなく、NuGetで簡単にやってしまおうということです。

Visual Studioのバージョンについて
ここでは、Visual Studio Express 2013 for Windows Desktopですが、Visual Studio Express 2012 for Windows Desktopでも動作確認出来ました。ただし、Updateのバージョン、NuGetのバージョン等、細かい違いにより動作するかどうかは何とも言えませんのでご了承ください。

Visual Studioのインストール方法については、ここでは省略します。必要な場合は現在は以下からダウンロード出来ます。
Visual Studio Express 2013 ダウンロード
インストール詳細方法等は例えばですが以下等を参照して下さい。
Visual Studio Express 2013インストール – インコのWindowsSDK

参考までにですが、私の環境で、2013と2012でそれぞれヘルプメニューのバージョン情報を表示したスクリーンショットが以下です。

Visual Studio Express 2013 for Windows Desktop
0001

Visual Studio Express 2012 for Windows Desktop
0006

ここから実際の手順です。毎回同じことを書いていますが、以下は、唯一の正しい手順ということではなく一例です。またスクリーンショットは、Visual Studio Express 2013 for Windows Desktopです。

新規プロジェクトの作成
ファイル → 新しいプロジェクト で新規プロジェクトを作成します。左のテンプレートで、Visual C++ 、Win32を選択します。任意のプロジェクト名でプロジェクトを作成します。
0009

ここで完了ボタンで完了です。これで基本のプロジェクトが出来ました。
0011

ここからNuGetを使います。

まず、以下の画像のように、Visual Studio Express 2013 for Windows DesktopのツールメニューからNuGetの管理画面を起動します。
WS000010

検索エリアからOpenCVで検索をして(以下の画像の①)見つかったOpenCVを選択して(以下の画像の②)インストールをします。
0014

以下の確認メニューが表示されてOKボタンでインストールが始まります。
0016

以上で、NuGetでのOpenCVのライブラリの導入が完了です。

次に、以下から引用(一部修正、簡略化しました)したソースプログラムで動作確認します。
入出力とGUI OpenCV-CookBook
そのソースは以下です。

// OpenCV01.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"

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

int
main(int argc, char *argv[])
{
	cv::Mat src_img = cv::imread("c:\\Penguins.jpg", 1);
	if (src_img.empty()) return -1;

	/// 画像を表示するウィンドウ
	// ウィンドウの名前,プロパティ
	// CV_WINDOW_AUTOSIZE : ウィンドウサイズを画像サイズに合わせる
	// CV_WINDOW_FREERATIO : ウィンドウのアスペクト比を固定しない
	cv::namedWindow("image1", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO);
	// ウィンドウ名でウィンドウを指定して,そこに画像を描画
	cv::imshow("image1", src_img);

	// キー入力を(無限に)待つ
	cv::waitKey(0);
}

これで問題なくビルドが出来て以下の結果が表示されました。

0018

今回のNuGetを利用する方法の方が簡単だと思いましたがいかがでしょうか。ただ、OpenCV本体にはサンプルやドキュメント等も含まれているので、そちらが必要な場合は本体をダウンロードすればいいかと思います。

OpenCV自体については今後書くことが出来れば書きたいと思います。

AdSense

AdSense

-OpenCV, 使ってみた

執筆者:

関連記事

Tiva C EK-TM4C123GXL(その1)起動確認まで

Tiva C EK-TM4C123GXLというマイコン評価ボードを使ってみました。 この評価ボードは、テキサス・インスツルメンツ製の、ARM Cortex-m4 プロセッサの低コスト評価ボードです。 …

OpenCVで輪郭抽出から隣接領域の切り出し(その1)輪郭抽出まで

OpenCVで画像内の輪郭抽出からその輪郭の隣接領域(四角形)を求めてその領域を切り出すという処理を作ってみました。以下の画像がその結果の例です。(※実画像サイズは大きめです。) ここでの処理結果画像 …

no image

Tiva C EK-TM4C123GXL(その10) UART通信でのデバッグ

Tiva C EK-TM4C123GXLを使ってみるの10回目です。今回は、UART通信でのデバッグです。 以下のメーカのサイトを見ながらプログラムを作っていきます。 Getting Started …

no image

Tiva C EK-TM4C123GXL(その4)workbookを使う

Tiva C EK-TM4C123GXLを使ってみるの4回目です。 前回までで、EWARM(ARM用 IAR Embedded Workbench)を使ってデバッグをする手順を確認しました。 それでは …

no image

Tiva C EK-TM4C123GXL(その7) ボード上のスイッチを使う

Tiva C EK-TM4C123GXLを使ってみるの7回目です。 前回の続きでGPIOの利用ですが、ボード上のスイッチを使ってみます。 以下のメーカのサイトを見ながらプログラムを作っていきます。 G …