opencv视频操作,opencv播放视频流

  opencv视频操作,opencv播放视频流

  这篇文章主要为大家介绍了如何利用开放计算机视觉实现视频的循环播放,本文为大家提供了两种方式,一个是利用计算机编程语言语言实现,一个是利用C语言实现,需要的可以参考一下

  

目录

介绍1.Python OpenCV实现2.C OpenCV实现补充

 

  

介绍

 

  本文将介绍基于开放计算机视觉实现视频的循环播放。

  有以下三个步骤:

  首先设置一个设计的设置参数帧_计数器,值为0在读帧时间,将每次加一当帧计数器达到视频总帧数时,将当前的帧设置为0视频总帧数:CAP _ PROP _ FRAME _计数

  设置当前的帧:CAP_PROP_POS_FRAMES

  视频捕获属性通用属性标识符参考地址。

  

1.Python+OpenCV实现

 

  导入cv2

  cap=cv2 .视频捕获(《001.mp4》)

  frame_counter=0

  while (cap.isOpened()):

  ret,frame=cap.read()

  帧计数器=1

  if frame _ counter==int(cap。获取(cv2 .CAP_PROP_FRAME_COUNT)):

  frame_counter=0

  第一组(cv2 .CAP_PROP_POS_FRAMES,0)

  cv2.imshow(frame ,frame)

  key=cv2.waitKey(1)

  # ESC

  如果key==27:

  破裂

  cap.release()

  cv2.destroyAllWindows()

  

2.C++ + OpenCV实现

 

  #包含opencv2/core/core.hpp

  #包含opencv2/highgui/highgui.hpp

  #包含opencv2/imgproc/imgproc.hpp

  int main() {

  cv:Mat框架;

  cv :视频采集帽( 001。MP4’).

  int frame _ counter=0;

  而(真)

  {

  帽框;

  如果(!frame.data)

  {

  printf("图像未加载");

  return-1;

  }

  帧_计数器=1;

  if(FRAME _ counter==int(cap。get(cv : cap _ PROP _ FRAME _ COUNT))){

  帧_计数器=0;

  首都set(cv : cap _ PROP _ POS _ FRAMES,0);

  }

  cv:imshow(demo ,frame);

  char(key)=(char)cv :3360等待键(1);

  if(key==27)

  打破;

  }

  返回0;

  }

  

补充

 

  当然,OpenCV不仅能实现视频的循环播放,还能实现视频的倒放

  下面将用C语言实现视频的倒放,以下是示例代码

  #包含标准视频

  #包含数学. h

  #包括简历

  #include highgui.h

  int main(int argc,char* argv[]) {undefined

  int i=0,j=0,k=0;

  cvNamedWindow(Example3 ,CV _ WINDOW _ AUTOSIZE);

  cv捕获*捕获=0;

  capture=cvcreatefile capture( gr18。avi’);

  如果(!捕获){未定义

  return-1;

  }

  ipimage * out=cvQueryFrame(capture);//初始化视频读取

  //用于确定帧数

  while((out=cvQueryFrame(capture))!=NULL){未定义

  k;

  }

  cvReleaseCapture(捕获);

  capture=cvcreatefile capture( gr18。avi’);

  out=cvQueryFrame(捕获);//没有它J会多一帧。

  double fps=cvGetCaptureProperty(

  捕捉,

  CV_CAP_PROP_FPS

  );

  CvSize size=cvSize(

  (int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH),

  (int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_HEIGHT)

  );

  CvVideoWriter * writer=cvCreateVideoWriter(

  gr13.avi ,

  CV_FOURCC(M , J , P , G ),

  fps,

  大小

  , 1

  );

  IPL image * log polar _ frame=cvCreateImage(

  尺寸,

  IPL_DEPTH_8U,

  3

  );

  //out=cvCloneImage(img);

  int booll=1;

  while((out=cvQueryFrame(capture))!=空)

  {未定义

  I=0;

  j;

  booll=0;

  if (j==k)//用于从第J帧开始写入

  {未定义

  cvShowImage(Example3 ,out);

  cvWaitKey(1);

  cvWriteFrame(writer,out);

  k-;j=0;

  //重复初始化

  capture=cvcreatefile capture( gr18。avi’);

  out=cvQueryFrame(捕获);

  }

  //j;

  if(k==0)break;

  }

  printf(%d %d ,k,j);getchar();

  cvReleaseVideoWriter(作家);

  cvReleaseImage(log polar _ frame);

  cvReleaseCapture(捕获);

  //cvreleasecacapture(捕获);

  cvDestroyWindow( example 3 );

  return(0);

  }

  关于基于OpenCV实现视频循环播放的这篇文章到此为止。更多相关OpenCV视频播放内容,请搜索热门IT软件开发工作室往期文章或继续浏览以下相关文章。希望大家以后多多支持热门IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • opencv图像识别数字,opencv 识别
  • opencv图像识别数字,opencv 识别,如何基于opencv实现简单的数字识别
  • opencv图像的旋转角度计算,opencv图像仿射变换
  • opencv图像的旋转角度计算,opencv图像仿射变换,OpenCV图像几何变换之透视变换
  • opencv图像的旋转角度计算,opencv 旋转任意角度
  • opencv图像的旋转角度计算,opencv 旋转任意角度,opencv图片的任意角度旋转实现示例
  • opencv图像处理函数,opencv图像轮廓合并
  • opencv图像处理函数,opencv图像轮廓合并,OpenCV图像处理之七种常用图像几何变换
  • opencv双线性插值函数,opencv 图像插值
  • LBPH人脸识别,基于opencv的人脸识别技术
  • LBPH人脸识别,基于opencv的人脸识别技术,Opencv LBPH人脸识别算法详解
  • ,,OpenCV黑帽运算(BLACKHAT)的使用
  • opencv双线性插值函数,opencv 图像插值,C++ OpenCV实现图像双三次插值算法详解
  • ,,C语言 OpenCV实现柱面投影
  • ,,C++ Opencv imfill孔洞填充函数的实现思路与代码
  • 留言与评论(共有 条评论)
       
    验证码: