opencv读摄像头

通俗代码,但是在我机器上不知道为什么没有用

int main()    
{    
	//读取摄像头    
	//声明IplImage指针    
	IplImage* pFrame = NULL;     
	CvCapture* pCapture = NULL;       
	//窗口通过窗口名来标识    
	cvNamedWindow("video", CV_WINDOW_AUTOSIZE);       
	pCapture = cvCreateCameraCapture(CV_CAP_ANY);        
	while(pFrame = cvQueryFrame( pCapture ))    
	{      
		cvShowImage("video", pFrame);    
		//延时 ,不然不会显示图像的,应该是扫描太快了    
		cvWaitKey(33);  //不然会因为太快导致显示还没完九需要去显示下一帧,因此会显示nothing 
		printf("aaaa\n");
	}    
	//释放图像    
	cvReleaseImage(&pFrame);       
	//销毁窗口    
	cvDestroyWindow("video");    
	//释放摄像设备    
	cvReleaseCapture(&pCapture);    
	return 0;     
}
以下是可以用的代码

#include "cv.h"
#include "highgui.h"
#include "cvcam.h"
void callback(IplImage* image);
int main()
{
	int ncams = cvcamGetCamerasCount( );//返回可以访问的摄像头数目
	int width=320;
	int height=240;
	
	HWND MyWin;
	// 设置系统属性
	
	
	cvcamSetProperty(0, CVCAM_PROP_ENABLE, CVCAMTRUE); //Enable视讯 
	//0:欲设置属性的摄像头序号; 第二个参数是属性名字;
	//第三个参数是指向设置值的指针
	
	
	cvcamSetProperty(0, CVCAM_PROP_RENDER, CVCAMTRUE); //启用视讯
	
	
	// MyWin 是窗口 HWND 的类型
	
	MyWin = (HWND) cvGetWindowHandle("cvcam window"); 
	cvcamSetProperty(0, CVCAM_PROP_WINDOW, &MyWin); // Selects a window 
	
	
	
	cvcamSetProperty(0,CVCAM_RNDWIDTH,&width);
	cvcamSetProperty(0,CVCAM_RNDHEIGHT,&height); 
	//video rendering
	
	//回调函数将处理每一帧
	cvcamSetProperty(0, CVCAM_PROP_CALLBACK, callback);
	
	cvcamInit( );
	cvcamStart( );
	// 现在程序开始工作
	cvWaitKey(0);
	cvcamStop( );
	cvcamExit( );
	return 0;
}

// 回调函数
void callback(IplImage* image)
{
	cvcamPause();
	cvcamGetProperty(0,"raw_image",&image);
	cvcamResume();
}


但是注意要添加cvcam.h这个头文件,在\OpenCV\otherlibs\cvcam\include中包含进来

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值