目次
today: ?
yesterday: ?
total: ?
ファイル構成と簡単な説明
- Makefile
- data/
- excvInit.h
- histogram.c
- libwebcam.c
- main.c
main関数の流れ
/*><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><
main.c
Time-stamp: <2010-12-04 15:43:03 kato>
libwebcamの使い方例
(1) 明るさ調節
(2) 後処理
(3) 初期化
(4) Qcam Orbit AFでのみ仕様確認済み
><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><*/
#include
#include
#include
#include
#include
extern int excvHistogram(CHandle hDevice, IplImage *src);// (1)
extern CHandle webcamInitCamParam(char *videoName, int videoNum);// (2)
extern void webcamReleaseDevice(CHandle hDevice);// (3)
extern void excvPanTilt(CHandle hDevice, int key, int camAngle);// (4)
int standard(char *filename);
int main(int argc, char** argv){
char* filename = argc == 2 ? argv[1] : (char*)"./data/img/lena.jpg";
standard(filename);
return 0;
}
int standard(char *filename){
int key;
CvSize imgSize = {640, 480};
CvCapture* cap;
IplImage* src = cvCreateImage(imgSize, IPL_DEPTH_8U, 3);
IplImage* gray = cvCreateImage(imgSize, IPL_DEPTH_8U, 1);
CHandle hDevice = 0;// webcam.h
if((hDevice = webcamInitCamParam("video0", 0)) == -1)
return -1;
if(!(cap = cvCaptureFromCAM(0))){
puts("Camera is not found !!");
return -1;
}
cvNamedWindow("USB camera capture", 0);// make window
while(1){
src = cvQueryFrame(cap);// USB camera capture
cvCvtColor(src, gray, CV_RGB2GRAY);
excvHistogram(hDevice, gray);
cvShowImage("USB camera capture", src);// show capture image
key = cvWaitKey(10);
if(key == 27 || key == 'q')
break;
if(key == 'l')
webcamPanTilt(hDevice, WC_LEFT, 1024);
if(key == 'r')
webcamPanTilt(hDevice, WC_RIGHT, 1024);
}
webcamReleaseDevice(hDevice);
cvReleaseImage(&src);
cvReleaseImage(&gray);
cvReleaseCapture(&cap);
return 0;
}
備考
Qcam Orbit AFの場合,[l]で左,[r]で右を向く
それ以外のカメラはexcvHistogramで明るさを調節するだけ
初期化と後処理を忘れないこと
Logicool以外でも動作したら報告してほしいです.