Tuesday, September 29, 2009

OpenCV Webcam

laziness one of the most common property of IT geeks like me ;) ,who spend 10-12 hrs in front of PC , which leads to problem like RSI , cervical spondylosis .There is some alternative or preventive present to avoid problem accord due to this , but preventive will be taken at the verge :P this is a simple human tendency ,in actually we need a newly designed systems which give's us a comfort at maximum level

for the same problem some project's are going on like handVU,ehci library (google codes) and on the same foot step I start working on gesture recognition ,actually I designed application like simple calculator which is controlled by the particular color(blue) detection .I share my code with you in my upcoming post in this post I give you just a glim's about OpenCV and how to display video from web cam using OpenCV

what is OpenCV ?
Very simple Question and well answered by wikipedia :P

How to Install OpenCV ?
for fedora
$>yum install opencv
and for other distro

after following the above instructions now try this code with appropriate compiler option

#include "cv.h"
#include "highgui.h"

// A Simple Camera Capture Framework
int main() {

CvCapture* capture = cvCaptureFromCAM( CV_CAP_ANY );

if( !capture ) {
fprintf( stderr, "ERROR: capture is NULL \n" );
return -1;

// 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" );

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;

if output is ERROR: capture is NULL than it might be possible your camera is incompatible with OpenCV

enjoy :) with OpenCV