今日の一言
2009/10/07(Wed) 山場を越えた? [長年日記]
_ [OpenCV][Windows][研究関係][プロジェクト実習]WindowsでOpenCV
まずは普通に公式HP(http://opencv.jp/)に行ってプログラムをDL。
んで、DLしたインストーラを実行してインストールする。
ここまでは普通に出来るはず。
Linux版よりもかなり楽?
が、このままだとおそらくサンプルすらも動かない。(cxcoreがないとか言われると思う)
端的に言うと、それはPathが通っていないから。
環境変数の設定
ということで、環境変数を設定する。
XPの場合は
「コントロールパネル」⇒「システム」⇒「システムのプロパティ」⇒「詳細設定」⇒「環境変数」
Vistaの場合は、
「コントロールパネル」⇒「システムのメンテナンス」⇒「システム」⇒「システムの詳細設定」⇒「システムのプロパティ」⇒「詳細設定」⇒「環境変数」
で環境変数設定画面が開けるはず。
そして、「システム環境変数」の方のPathをクリックして「編集」を押す。
で、既にある変数値を変更しないように注意して、最後尾に
;C:\Program Files\OpenCV\bin
を追加する。(先頭の;は、変数値を区切るためのもの)
これで、サンプルプログラムが動くようになったはず。
Visual StudioでOpenCVを使う
わざわざOpenCVを入れるんだから、自作プログラムぐらい作るだろう。
ということで、Visual Studio(もちろんExpress版でもOK)でOpenCVを使う方法を書く。
(今使っているのがVisual C++ 2008 Express Editionなので、それを例に説明する。が、他のでもやり方はほぼ同じのはず)
とりあえず普通にVisual Studioをインストールする。
で、起動させて、
「ツール」⇒「オプション」⇒「プロジェクトおよびソリューション」⇒「VC++ディレクトリ」
を開く。
まずは「ディレクトリを表示するプロジェクト(S):」で「インクル―ドファイル」を選び、そこに次の4つを加える。
C:\Program Files\OpenCV\cxcore\include C:\Program Files\OpenCV\cv\include C:\Program Files\OpenCV\cvaux\include C:\Program Files\OpenCV\otherlibs\highgui
続いて、「ディレクトリを表示するプロジェクト(S):」で「ライブラリファイル」を選び、次の1つを加える。
C:\Program Files\OpenCV\lib
これでライブラリやインクルードファイルが見つからないというエラーはなくなったはず。
が、今の段階ではまだディレクトリの位置を教えただけで実際にどれを使うかは宣言していない。
なので、プロジェクトのプロパティとしてそれらを指定する必要がある。
新規プロジェクトの作成
「ファイル」⇒「新規作成」⇒「プロジェクトファイル」
で新しいプロジェクトを開き、
「Visual C++」⇒「Win32」⇒「Win32 コンソールアプリケーション」
を選択。
プロジェクト名、保存場所、ソリューション名を指定し、OKをクリック。
Win32アプリケーションウィザードが開くので、「次へ」を選択し、
追加のオプションで「空のオブジェクト」を指定。
ソリューションエクスプローラに表示されたプロジェクト名の上で右クリックし、「プロパティ」を開く。
「***プロパティページ」⇒「構成プロパティ」⇒「リンカ」⇒「入力」
と開いていき、「追加の依存ファイル」に
highgui.lib cxts.lib cv.lib cxcore.lib ml.lib cvaux.lib cvhaartraining.lib
を追加(それぞれを半角で区切り、一行で書くべし)。
以上の作業でVCでOpenCVを使ったプログラムがコンパイルできるようになったはず。
ソースの追加
既存のソースを追加
「ソースファイル」の上で右クリックし、
「追加」⇒「既存の項目」を選び、
目的のソースを選択。
新規のソースを追加
「ソースファイル」の上で右クリックし、
「追加」⇒「新しい項目」⇒「コード」⇒「C++ファイル」を選び、
ファイル名および場所を入力して「追加」を押す。
あとは頑張って書くべし!
*特に変わった処理をしないなら
「cv.h」と「highgui.h」、あとは「cxcore.h」
をインクルードしていれば十分使えると思う。
より詳しい使い方
「OpenCV プログラミングブック」(絶賛発売中)
を読むといいよ!
もしくは千原研@NAISTのOpenCVのページとか。
_ [FC][OpenCV][OpenGL][OpenAL][Ubuntu][Linux][プロジェクト実習][研究関係]gccでコンパイルする際に必要なオプションいろいろ
自分がよく使うものを無作為にメモっておく。
OpenCV
コンパイルするだけなら、インクルードファイルを指定するだけでいい。
$ gcc -I/usr/local/include/opencv -c -o hoge.o hoge.c
また、pkg-configが設定されているなら、
$ gcc `pkg-config --cflags opencv` -c -o hoge.o hoge.c
でOK。
リンクも同時に行う場合は、次のようにライブラリも指定する。
$ gcc -I/usr/local/include/opencv -L/usr/local/lib -lcxcore -lcv -lhighgui -lcvaux -lml hoge.c -o hoge
これも、pkg-configが設定されているなら、
$ gcc `pkg-config --cflags opencv` `pkg-config --libs opencv` hoge.c -o hoge
でOK。
*makefileに書く場合は、
LDFLAGS += `pkg-config opencv --libs`
CFLAGS += `pkg-config opencv --cflags`
CXXFLAGS += `pkg-config opencv --cflags`
とすればいい・・・らしいよ?(未確認)
OpenGL
$ gcc -L/usr/X11R6/lib -lGL -lGLU -lglut hoge.c -o hoge
当然のようにGLUTを使っているけど気にするな!
俺は、そうしてきた。
OpenAL
$ gcc -L/usr/X11R6/lib -lopenal -lalut -lpthread hoge.c -o hoge
これも当然のようにALUTを使っているけど気にするな!
俺は、そうしてきた。