实验室机器人用小摄像头,选择0
#include "stdafx.h"
#include "cxcore.h"
#include "cvcam.h"
#include "windows.h"
#include "cv.h"
#include "highgui.h"
#include "iostream"
#define ANY_IMAGE 2
void callback(IplImage* image);
int main()
{
int ncams = cvcamGetCamerasCount();//返回可以访问的摄像头数目
int width=500;
int height=500;
HWND MyWin;// 设置系统属性,MyWin 是窗口 HWND 的类型
cvcamSetProperty(0, CVCAM_PROP_ENABLE, CVCAMTRUE); //使能视讯 0:欲设置属性的摄像头序号; 第二个参数是属性名字;第三个参数是指向设置值的指针
cvcamSetProperty(0, CVCAM_PROP_RENDER, CVCAMTRUE); //启用视讯
MyWin = (HWND)cvGetWindowHandle("cvcam window");
cvcamSetProperty(0, CVCAM_PROP_WINDOW, &MyWin); // Selects a window
cvcamSetProperty(0,CVCAM_RNDWIDTH,&width);//与视频宽度有关
cvcamSetProperty(0,CVCAM_RNDHEIGHT,&height); //与视频高度有关
cvcamSetProperty(0, CVCAM_PROP_CALLBACK, callback);//回调函数将处理每一帧
cvcamInit();
cvcamStart();
cvWaitKey(0);//等待命令
cvcamStop();
cvcamExit();
return 0;
}
// 回调函数
void callback(IplImage* image)
{
cvcamPause();
cvcamGetProperty(0,"raw_image",&image);
static int index=0;
index++;
assert(image);
IplImage *img = image;
//TO_DO 记录视频片段
if(index==ANY_IMAGE)
{
cvcamPause();
if(!cvSaveImage("captureImage.bmp",img))
printf("Could not save: %s\n","captureImage.jpg");
cvcamResume();
}
cvcamResume();
}