#include <highgui.h>
#include "CameraDS.h"
#define WIDTH 640
#define HEIGHT 480
#define SAVE_FRAME 0 // 是否保存视频图像
int main()
{
CCameraDS camera;
if ( CCameraDS::CameraCount() == 0 )
{
printf("Error: No camera device.\n");
return -1;
}
else if ( !camera.OpenCamera( 0, false, WIDTH, HEIGHT ))
{
printf("Error: can not open camera.\n");
return -1;
}
int wid = camera.GetWidth();
int hei = camera.GetHeight();
IplImage* pFrame;
cvNamedWindow("Camera");
#if SAVE_FRAME
int cnt = 0;
char saveFile[100];
#endif
while(1)
{
pFrame = camera.QueryFrame();
char key = cvWaitKey(20);
#if SAVE_FRAME
++cnt;
sprintf(saveFile, "D:\\save\\%05d.jpg", cnt);
cvSaveImage(saveFile, pFrame);
#endif
if ( key == 'q' ) break;
cvShowImage("Camera", pFrame);
}
return 0;
}
其中CameraDS.h下载地址:http://download.csdn.net/detail/yangalbert/4184614
依赖DirectShow。
关于opencv和DirectShow的安装配置请参见:
opencv:http://blog.csdn.net/yangalbert/article/details/7405346
DirectShow:http://blog.csdn.net/yangalbert/article/details/7408747