Visual Studioの使い方に戸惑う人が多いので,これまでの設定をまとめて整理しておきます.
サンプルとして,実習1-1の内容を含む MarkerExtract プロジェクトを作ります.
MarkerExtract.zip

本実習では,画像処理にOpenCVを用いる.
大学の実習環境にインストールされているのはOpenCV 2.3.1である.
最新の3系とはライブラリの構成や使用できる関数に若干の違いがあるので注意.

OpenCVが提供している機能については,
http://docs.opencv.org/
を見るのがよい.

英語なのでハードルが高いという人は,書籍が多数出版されているので,
参考にするのがよいだろう.
ただし機能が網羅されているわけではないので注意.

他に参考になるページ

1 新しいプロジェクトの作成

Win32コンソールアプリケーションとして,MarkerExtractプロジェクトを作成する.
作成方法については,一つ前のドキュメントを参照.

2 ソースコードの追加

2.1 ダウンロード

本実習では基本的にソースコードは自分で打ち込むことを推奨するが,
色によるマーカ抽出部分までのプログラムを提供する.
以下にあるMarkerExtract.zipをダウンロードして解凍(展開)し,中にあるMain.cppおよびcv_lib_macro.hを
MarkerExtractプロジェクトのフォルダに保存する.

MarkerExtract.zip

2.2 プロジェクトへの追加

ソリューションエクスプローラーのMarkerExtractの上で右クリックしてメニューを出し,
追加 > 既存の項目… を選択する.

先程ダウンロードしたMain.cppとcv_lib_macro.hがフォルダ内にあるはずなので,
追加する.
一つずつ追加してもよいが,両方選択(ドラッグして囲むか,CTRLを押しながらクリック)して,「追加」をクリックすると複数ファイルの追加を一度に行える.

3 OpenCVライブラリを使用するための環境設定

3.1 ライブラリのインストール

3.1節の内容は,先週行った人はやる必要がありません.

今日使用するOpenCVの関数のうちいくつか(具体的には,std::vectorを使用する関数)
が,大学の環境では実行時エラーで落ちることが判明した.

仕方ないので,私がビルドしたOpenCVライブラリをリンクして使うことにする.

以下に置いてあるzipファイルをダウンロードし,
内容を適当なフォルダに展開する.ここでは z:\ に展開するものとする.
展開すると z:\lib の下にライブラリファイル *.lib が並ぶはず.

lib.zip (35MB)

library

3.2 ライブラリの設定の変更

3.2節の処理は,実習開始時に行う必要があります.演習室の電源が切られると設定が初期化されるためです.

OpenCVライブラリを使用するためには,
Visual Studioにライブラリのある場所を教える必要がある.
正確には,ヘッダファイル(.h)のあるフォルダ,ライブラリファイル(.lib)の
あるフォルダの指定が必要である.
プロジェクトごとに設定しても一応事足りるのであるが,
新しいプロジェクトを作成するたびに設定しなくてはならないため,面倒である.
ここでは,Visual Studioの環境として設定してしまう方法について説明する.

メニューから 表示 > プロパティマネージャーを開く
(表示 > その他のWindow > プロパティマネージャー にある場合と,
表示 > プロパティマネージャー の場合の二つがある).

cvsetting01

ツリーメニューを展開し,Debug | Win32 の下にある Microsoft.Cpp.Win32.user
を右クリックし,メニューから「プロパティ」をクリックする.

cvsetting02

プロパティページが開くので,左側のメニューから
共通プロパティ > C/C++ > 全般 を選択し,
追加のインクルードディレクトリ に
C:\Program Files (x86)\opencv\build\include
を追加する.「適用」をクリックする.

cvsetting03

同じくプロパティページの
共通プロパティ > リンカー > 全般 を選択し,
追加のライブラリディレクトリ に
z:\lib
を追加する(2015/10/13変更).「OK」をクリックする.
newlib

プロパティを変更したら,フロッピーディスクのアイコンをクリックして
保存しておくこと.

以上の設定をしておくことにより,今後Visual Studio 2012で開発する全ての
プロジェクトにおいて,OpenCVライブラリのディレクトリに関連する設定は不要になる.

…はずなのだが,演習室のシステムの電源が切られると,設定が初期化されてしまうので,そのときはこの3.2節の
処理を,再度実行する.

3.3 プロジェクトのプロパティの変更

3.3節の処理は,プロジェクトを作成するごとに,行う必要があります.

ライブラリの変更に伴って,コード生成の設定を変更する必要が生じる
(面倒になってすみません…).

デフォルトの設定のままプロジェクトをビルドすると,
「’RuntimeLibrary’ の不一致が検出されました」
といったエラーメッセージが出る.

対処は,次の通りである.

プロジェクトを新規作成したら,ソリューションエクスプローラーの
プロジェクト名の上で右クリックし,プロパティを開き,
構成プロパティ > C/C++ > コード生成 を選択し,その中にある
「ランタイム ライブラリ」の値を変更する.

2015-10-06_08h29_04

プロパティウィンドウの左上にある「構成」を Debug にして,
「ランタイム ライブラリ」の値を「マルチスレッド デバッグ (/MTd)」に変更して,
適用をクリックする.

2015-10-06_08h30_13

次に,プロパティウィンドウの左上にある「構成」を Release にして,
「ランタイム ライブラリ」の値を「マルチスレッド (/MT)」に変更して,
OKをクリックする.

2015-10-06_08h31_34

Visual Studioでは,コンパイルして生成される実行ファイルに,デバッグ情報が付属した Debug 版と,デバッグ情報の無い Release 版がある.
Debug 版はエラーチェックがしっかりしていて,その分遅い.
Release版はエラーチェックが無い代わりに,高速である.
Debug 版と Release 版は,Visual Studio のメニューバーの下の段,中央付近にあるドロップメニューから切り替えられる.

2015-10-13_08h10_35

3.4 cv_lib_macro.h の更新

3.4節の内容は,MarkerExtract.zipをダウンロードして使用する場合は不要
(既に新しいcv_lib_macro.hになっている).

第2回目までに作成したプログラムがうまくコンパイルできない場合,
cv_lib_macro.hのバージョンが古いことが考えられる.

新しい環境でプログラムを
生成するときは,MarkerExtract.zip に入っていた cv_lib_macro.h を
使うようにする.前回のプログラムを再度ビルドする場合に置き換えが
必要になるので注意.

新しいcv_lib_macro.hをダウンロードして置き換え
cv_lib_macro.h

※リンク時にライブラリがみつからないという類のエラーがでている場合はご一報を

4 実行

実行方法は最初に作成したhelloと同じであるが,本プログラムはユーザにより
終了させられるまで実行が続くため,デバッグ開始で実行してもよい.