OpenCV の使い方 本文へジャンプ

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 が表示される。