您的位置:首页 > 运维架构

opencv读取摄像头或视频文件

2017-06-29 10:15 393 查看
程序例程:

#include"stdio.h"

#include"opencv2/opencv.hpp"

using namespace cv;

int main(int argc,char**argv)

{

 Frame_Method frame_method;

 CvCapture *capture;

 IplImage *frame;

 capture = cvCaptureFromCAM(-1);//摄像头

 //capture =
cvCaptureFromAVI("d:/avi/1234.avi");//视频文件

 if(!capture)

  return -1;

 cvNamedWindow("image");

 if(capture)

 {

  for(;;)

  { 

   frame =
cvQueryFrame(capture);

   if(!frame)

    break;

   cvShowImage("image",frame);  

   char key =
cvWaitKey(1);

   if(key ==
27)

    break;

  }

 }

//cvReleaseImage(&frame);//这句话加上是不正确的
 cvReleaseCapture(&capture);

 cvDestroyWindow("image");

 return 0;

}

 

原因:

cvQueryFrame函数

从摄像头或者文件中抓取并返回一帧

IplImage* cvQueryFrame( CvCapture* capture );

capture:视频获取结构。

函数cvQueryFrame从摄像头或者文件中抓取一帧,然后解压并返回这一帧。这个函数仅仅是函数cvGrabFrame和函数cvRetrieveFrame在一起调用的组合。返回的图像不可以被用户释放或者修改。抓取后,capture被指向下一帧,可用cvSetCaptureProperty调整capture到合适的帧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: