#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include <cxcore.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
// A Simple Camera Capture Framework
int main() {
CvCapture* capture = cvCaptureFromCAM( CV_CAP_ANY );
if ( !capture ) {
fprintf( stderr, "ERROR: capture is NULL \n" );
getchar();
return -1;
}
else
fprintf( stderr, "Camera is OK \n");
// Create a window in which the captured images will be presented
cvNamedWindow( "mywindow", CV_WINDOW_AUTOSIZE );
// Show the image captured from the camera in the window and repeat
while ( 1 ) {
// Get one frame
IplImage* frame = cvQueryFrame( capture );
if ( !frame ) {
fprintf( stderr, "ERROR: frame is null...\n" );
getchar();
break;
}
cvShowImage( "mywindow", frame );
// Do not release the frame!
//If ESC key pressed, Key=0x10001B under OpenCV 0.9.7(linux version),
//remove higher bits using AND operator
if ( (cvWaitKey(10) & 255) == 27 ) break;
}
// Release the capture device housekeeping
cvReleaseCapture( &capture );
cvDestroyWindow( "mywindow" );
return 0;
}
I2luY2x1ZGUgInN0ZGFmeC5oIgojaW5jbHVkZSAiY3YuaCIKI2luY2x1ZGUgImhpZ2hndWkuaCIKI2luY2x1ZGUgPGN4Y29yZS5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPG1hdGguaD4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKCiAvLyBBIFNpbXBsZSBDYW1lcmEgQ2FwdHVyZSBGcmFtZXdvcmsKIGludCBtYWluKCkgewogICBDdkNhcHR1cmUqIGNhcHR1cmUgPSBjdkNhcHR1cmVGcm9tQ0FNKCBDVl9DQVBfQU5ZICk7CiAgIGlmICggIWNhcHR1cmUgKSB7CiAgICAgZnByaW50Ziggc3RkZXJyLCAiRVJST1I6IGNhcHR1cmUgaXMgTlVMTCBcbiIgKTsKICAgICBnZXRjaGFyKCk7CiAgICAgcmV0dXJuIC0xOwogICB9CiAgIGVsc2UKICAgICAgICAgICBmcHJpbnRmKCBzdGRlcnIsICJDYW1lcmEgaXMgT0sgXG4iKTsKICAgLy8gQ3JlYXRlIGEgd2luZG93IGluIHdoaWNoIHRoZSBjYXB0dXJlZCBpbWFnZXMgd2lsbCBiZSBwcmVzZW50ZWQKICAgY3ZOYW1lZFdpbmRvdyggIm15d2luZG93IiwgQ1ZfV0lORE9XX0FVVE9TSVpFICk7CiAgIC8vIFNob3cgdGhlIGltYWdlIGNhcHR1cmVkIGZyb20gdGhlIGNhbWVyYSBpbiB0aGUgd2luZG93IGFuZCByZXBlYXQKICAgd2hpbGUgKCAxICkgewogICAgIC8vIEdldCBvbmUgZnJhbWUKICAgICBJcGxJbWFnZSogZnJhbWUgPSBjdlF1ZXJ5RnJhbWUoIGNhcHR1cmUgKTsKICAgICBpZiAoICFmcmFtZSApIHsKICAgICAgIGZwcmludGYoIHN0ZGVyciwgIkVSUk9SOiBmcmFtZSBpcyBudWxsLi4uXG4iICk7CiAgICAgICBnZXRjaGFyKCk7CiAgICAgICBicmVhazsKICAgICB9CiAgICAgY3ZTaG93SW1hZ2UoICJteXdpbmRvdyIsIGZyYW1lICk7CiAgICAgLy8gRG8gbm90IHJlbGVhc2UgdGhlIGZyYW1lIQogICAgIC8vSWYgRVNDIGtleSBwcmVzc2VkLCBLZXk9MHgxMDAwMUIgdW5kZXIgT3BlbkNWIDAuOS43KGxpbnV4IHZlcnNpb24pLAogICAgIC8vcmVtb3ZlIGhpZ2hlciBiaXRzIHVzaW5nIEFORCBvcGVyYXRvcgogICAgIGlmICggKGN2V2FpdEtleSgxMCkgJiAyNTUpID09IDI3ICkgYnJlYWs7CiAgIH0KICAgLy8gUmVsZWFzZSB0aGUgY2FwdHVyZSBkZXZpY2UgaG91c2VrZWVwaW5nCiAgIGN2UmVsZWFzZUNhcHR1cmUoICZjYXB0dXJlICk7CiAgIGN2RGVzdHJveVdpbmRvdyggIm15d2luZG93IiApOwogICByZXR1cm4gMDsKIH0=