在linux环境下(ubuntu)利用摄像头抓取视频简单方法:
#include "opencv/highgui.h"
#include "opencv/cv.h"
using namespace std;
using namespace cv;
int main(int argc, char** argv){
cvNamedWindow("testcamera", CV_WINDOW_AUTOSIZE);
CvCapture* capture;
if (argc == 1){
capture=cvCaptureFromCAM(0);
printf("capture 0\n");
}
else {
capture = cvCreateFileCapture(argv[1]);
printf("capture argv1\n");
}
assert(capture != NULL);
IplImage* frame;
frame = cvCreateImage(cvSize(640, 320), IPL_DEPTH_16U, 3);
while(1){
frame = cvQueryFrame(capture);
if (!frame)
break;
cvShowImage("testcamera", frame);
char c=cvWaitKey(33);
if (c==27)
break;
}
cvReleaseCapture(&capture);
cvDestroyWindow("testcamera");
return 0;
}
编译选项:
g++ testopencv_camera.cpp -o testopencv_camera -lopencv_highgui -lopencv_core -lopencv_video
$sudo apt-get install libopencv-dev