2010/04/06

OpenCV 2.1が出ました

画像認識ソフト OpenCVの新しいバージョンが出たので、早速ダウンロードしました。

ダウンロードとインストールの手順は下記のとおりとなります。

1、ここにアクセス
http://sourceforge.net/projects/opencvlibrary/files/

2、私はVC++ 2008 Express Editionを使用しているので、
OpenCV-2.1.0-win32-vs2008.exe
を選びました。

3、exeを実行し、インストールを行います。
 ・ライセンスに同意します
 ・OpenCVのディレクトリを環境変数のPATHに登録します
 ・デスクトップにOpenCVのアイコンを追加します
 ・インストール先はデフォルトのままにします。
 ・インストールタイプを「Full」に設定します。

4、サンプルを実行してみます。
サンプルはC:\OpenCV2.1\samples\c に入っています。
USBカメラなどがないとだめなものもありますが、edge.exeなどはカメラがなくても実行できます。


5、VC++でコードを書いてみます。
 ・VC++を開きます。
 ・ファイル->新規作成->プロジェクト->Win32->コンソールアプリケーション を選びます。
 ・プロジェクトウィザードが出ますが、とりあえず「完了」を押します。
 ・ファイルがいくつか自動的に作成されます。
 ・コードを下記のように変更します。

//サンプル画像を表示するだけのアプリ

#include "stdafx.h"
#include "C:\\OpenCV2.1\\include\\opencv\\highgui.h"

int main(int argc, char** argv)
{
//ファイルから画像を読み込みます
IplImage *img=cvLoadImage("C:\\OpenCV2.1\\samples\\c\\fruits.jpg");

cvNamedWindow("OpenCVTest",CV_WINDOW_AUTOSIZE); //画像出力用のウィンドウを作成します
cvShowImage("OpenCVTest",img); //ウィンドウに画像を表示します
cvWaitKey(0); //何かキーが押されるまで待ちます

cvReleaseImage(&img); //リソースを開放します。
cvDestroyWindow("OpenCVTest");
}


保存してビルドすると、下記のようなエラーがわらわら出てきます。

error C3861: 'clLoadImage': 識別子が見つかりませんでした

ライブラリファイルへの参照の設定がされていないと、上記のようなエラーが出るようです。
(VC++、OpenCVともに触り始めたばかりなので詳しいことはわかりません)

設定は下記のとおりとなります。
・プロジェクトのプロパティを開きます
・構成プロパティ->リンカ->全般->追加のライブラリディレクトリに、
C:\OpenCV2.1\lib と設定します(OpenCVをインストールした場所のlibディレクトリです)
・プロパティ->リンカ->入力->追加の依存ファイルに、
 cv210d.lib
 cvaux210d.lib
 cxcore210d.lib
 cxts210.lib
 highgui210d.lib
 ml210d.lib
 opencv_ffmpeg210d.lib
の6つを加えます。
Releaseの時はdを除いたファイル名に設定します。

リビルドを行ってデバッグ開始ボタンを押すと、下記のようなウィンドウが表示されると思います。



とりあえず初めてのアプリはこんな感じです。

OpenCVにはステレオグラムの作成や顔検出など、色々と機能がありますが
まだ使い始めたばかりなのであまり詳しくはわかりません。

現在はオライリーから出版されている「詳解 OpenCV」を読みながら遊んでいます。

最終的には、ラジコン戦車にカメラを搭載して障害物をよけるものを作りたいなーと考えてます。

0 件のコメント:

コメントを投稿