|
#include "cv.h"
#include "cxcore.h"
#include "highgui.h"
#include "cvcam.h"
#pragma comment(lib,"cv.lib")
#pragma comment(lib,"cxcore.lib")
#pragma comment(lib,"highgui.lib")
#pragma comment(lib,"cvcam.lib")
#define CAPTURE_WIDTH 640 #define CAPTURE_HEIGHT 480 #define CAPTURE_FPS 30.0
void callback(IplImage* image);
int ShowCamVideo(HWND hwnd, int width, int height, double fps);
int main( int argc, char** argv )
{
cvNamedWindow("dummy window", CV_WINDOW_AUTOSIZE);
cvNamedWindow("cvcam window", CV_WINDOW_AUTOSIZE);
if( ShowCamVideo((HWND)cvGetWindowHandle("dummy window"), CAPTURE_WIDTH, CAPTURE_HEIGHT, CAPTURE_FPS) )
{
cvDestroyWindow("dummy window");
cvWaitKey(0);
cvcamStop();
}
cvcamExit();
return 0;
}
void callback(IplImage* image)
{
cvShowImage("cvcam window", image);
}
int ShowCamVideo(HWND hwnd, int width, int height, double fps)
{
int *out;
VidFormat vidFmt={ width, height, fps};
int ncams = cvcamGetCamerasCount( );
if(ncams == 0) return 0;
int nSelected = cvcamSelectCamera( &out );
if(nSelected == 0) return 0;
cvcamSetProperty(out[0], CVCAM_PROP_ENABLE, CVCAMTRUE);
cvcamSetProperty(out[0], CVCAM_PROP_CALLBACK,callback); cvcamSetProperty(out[0], CVCAM_PROP_WINDOW, &hwnd); cvcamSetProperty(out[0], CVCAM_PROP_SETFORMAT, &vidFmt);
if( !cvcamInit() ){
return 0;
}
cvcamStart();
return 1;
}
|