単純なMakefile、カメラでキャプチャして表示

ややこしいがMacbookでbootcampでWindowsXPを動かして、その上でVMWarePlayer無料版でUbuntu8.04動かして、カメラはLogitec QV-40でやってる。

http://d.hatena.ne.jp/grazier/20080907/1220773639 より
これでmake一発でimage.cppをコンパイルできる


Makefile

SRC = image.cpp
DST = image

prefix=/usr
INCPATH=$(prefix)/include
LIBPATH=$(prefix)/lib 

OPT= -lcv -lcvaux -lcxcore -lhighgui 

CC=g++ -O

CFLAGS= -I$(INCPATH)/opencv
LDFLAGS=-L. -L$(LIBPATH) 


all:
	$(CC) $(SRC)  -o $(DST) $(CFLAGS)  $(LDFLAGS) $(OPT)

単純にカメラ画像をFormに表示し続けるだけ
qキーで終了できる
image.cpp

#include <stdio.h>
#include <highgui.h>

int main(int argc, char** argv) {
  CvCapture *capture;
  IplImage *frameImage;
  char windowNameCapture[] = "Capture";

  capture = cvCreateCameraCapture(0);
  cvNamedWindow(windowNameCapture, CV_WINDOW_AUTOSIZE);

  while (1) {
    frameImage = cvQueryFrame(capture);

    cvShowImage(windowNameCapture, frameImage);
    if (cvWaitKey(33) == 'q') break;
  }
  
  cvReleaseCapture(&capture);
  cvDestroyWindow(windowNameCapture);
  
  return 0;
}

OpenCV プログラミングブック の45ページをcvWaitKey(1)だと速すぎるのか画面が表示されないのでcvWait(33)として33ms待機して、約30FPSで表示するようにした


% make
g++ -O image.cpp  -o image -I/usr/include/opencv  -L. -L/usr/lib   -lcv -lcvaux -lcxcore -lhighgui
% ./image

opencv on vmware