EclipseでOpenCVプログラミング 入門したメモ
以前にGeanyでプログラミングしてるって書いたんですが、Eclipseも使えるようになりたいなと思っていたので、徐々に移行するべく入門してみました。
シングルコアのポンコツマシンでもEclipseは使えるので書き留めておきます。
準備
素人の私はパッケージマネージャからeclipseをインストール。目に入ったのでCDT(C/C++DevelopmentTools?)くらいは入れておく。
起動してプロジェクトを作成します。"HelloWorldC++Project"っていうのを選ぶ。VC++と同じようにmain()だけ作ってくれるのであろう。
できたのでとりあずビルドしてみる。ctrl+Bでビルド。コンソールに"make all"って出てるからmakeしてくれたんだなー。
これでサンプルのプログラミングする準備はできたかな。
ビルド設定
OpenCVを使いたい。VC++やmakefileの経験から以下を設定する必要があると踏んでいる。
プロジェクトのプロパティで設定できるらしい。[Project]-[Propertis]-[C/C++ Build]あたりで設定できるのであろう。
んー、ちょっとわかりずらいが、[Project]-[Propertis]-[C/C++ Build]-[Tool Setting]で設定できるみたい。
以下の設定対象がある。
C++のコンパイラーとリンカーをいじればいいのではないかな?
[GCC C++ Compiler]-[Directories]に"Include Path (-I)"って書いてある。/usr/includeを加える。
[GCC C++ Linker]-[Libralies]に"Libraries(-l)"と"Library search path(-L)"って書いてある。ライブラリ名とライブラリパスを指定するのであろう。
ライブラリ名にはcvとhighguiを加える。ライブラリパスには/usr/libを加える。
ビルドしてみると、コンソールに"-lcv -lhighgui"って出てる。リンクされてるのであろう。
サンプルをコーディング
ThinkPadの内蔵カメラからキャプチャするプログラムを組んでみました。雑なプログラムなので流してもらって結構です。
#include
#include
#includeusing namespace std;
using namespace cv;int main() {
printf(" program start..\n");
CvCapture* capture = cvCreateCameraCapture(0);
if(capture == NULL){
printf(" ERR: cvCreateCameraCapture() returns NULL.\n");
cvWaitKey(2000);
return -1;
}
IplImage* frame = cvQueryFrame(capture);
if(frame == NULL){
printf(" ERR: cvQueryFrame() returns NULL.\n");
cvWaitKey(2000);
return -1;
}
int cnt = 0;
while(1){
frame = cvQueryFrame(capture);
cvShowImage("CAPTURE", frame);
int key = cvWaitKey(10);
if(key == 'q'){
break;
}
}
cvDestroyAllWindows();
cvReleaseCapture(&capture);
return 0;
}
動いたのでオッケー。あとは単語補完の設定をすればいいか。Kinectのプログラミング環境をつくるぞー。