|
OpenCV を使ったプログラムの作成(2)
OpenCV を使ったプログラムの作成(1) では、新規プロジェクト&ソリューションの作成と、既存ファイルの追加方法を示したが、ここでは既存ソリューションへの新規プロジェクトの追加と、新規ファイルの追加方法を示す。
[1] 既存ソリューションへの新規プロジェクトの追加
「ファイル」→「新規作成」→「プロジェクト」から、新しいプロジェクトとして、「Win32」→「Win32コンソールアプリケーション」を選択し、プロジェクト名は
test2 とする。特に、「ソリューション」では、「ソリューションに追加」とする。
test2 という名前の「プロジェクト」が追加される。
ファイルの実体は、C:\Program Files\OpenCV\samples\test2 以下に作成される。test2 以下にはプロジェクトファイル
(*.vcproj) しか作成されていない。
[2] 新規ファイルの追加
test2 プロジェクトの「ソースファイル」を右クリックし、「追加」→「新しい項目」から「C++ファイル(cpp)」を選択する(ヘッダファイルを新規作成する場合は「ヘッダーファイル(h)」を選択する)。ファイル名は
test2.cとし、「追加」ボタンを押す。すると、test2 プロジェクトに test2.c が追加されるので、クリックしてプログラムエディタを開く。
ここでは、サンプルプログラムとして、sample.bmp を読み込んでは表示するという、OpenCV の非常に基本的なプログラムを示している(画像ファイル
sample.bmp は適当に用意し、test2 ディレクトリに置いておく)。
#include "cv.h"
#include "highgui.h"
#include <stdio.h>
// 画像データ構造体
IplImage* img;
char* img_name = "sample.bmp";
// 表示ウィンドウ名
char* name = "DisplayTest";
int main() {
// 表示ウィンドウの生成
cvNamedWindow(name, CV_WINDOW_AUTOSIZE);
// 画像データのロード
img = cvLoadImage(img_name, 1);
// 画像の表示
cvShowImage(name, img );
// キーイベント待ち
printf("表示ウィンドウ上でキーを押すと終了\n");
cvWaitKey(0);
// 画像データの解放
cvReleaseImage(&img);
}
[3] プロジェクトのビルド
test2 プロジェクトを右クリックし、「スタートアッププロジェクトに設定」を選択する。これによって、ビルドの対象が test プロジェクトから test2 プロジェクトに移行する。その上で、「ビルド」→「test2 のビルド」を実行すると、「外部参照が未解決です」というリンクエラーが表示される。
これは、ライブラリファイルの指定が test プロジェクトに対しては行われているものの、test2 プロジェクトに対しては行われていないためである。そこで、
test プロジェクトの場合と同様に、test2 プロジェクトを右クリックし、「プロパティ」を選択し、「構成プロパティ」→「リンカ」→「入力」を選択し、「追加の依存ファイル」に
- cv.lib
- cxcore.lib
- highgui.lib
の三つのライブラリファイルを明示的に指定する。
「OK」ボタンを押して、再ビルドするとリンクエラーは消え、ビルドに成功する。
[4] プログラムの実行
「デバッグ」→「デバッグの開始」、あるいは「デバッグなしで開始」によってプログラムを実行する。すると、sample.bmp が表示される。
|
|