VideoCapture之grab()和retrieve()

2024-02-20 20:08
文章标签 grab retrieve videocapture

本文主要是介绍VideoCapture之grab()和retrieve(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文转自: http://blog.csdn.net/weixiaomm/article/details/8725498


http://blog.csdn.net/weixiaomm/article/details/8725511

Grabs the next frame from video file or capturing device.

C++:  bool  VideoCapture:: grab ( )
Python:   cv2.VideoCapture. grab ( ) → retval
C:  int  cvGrabFrame (CvCapture*  capture )
Python:   cv. GrabFrame (capture ) → int

The methods/functions grab the next frame from video file or camera and return true (non-zero) in the case of success.

The primary use of the function is in multi-camera environments, especially when the cameras do not have hardware synchronization. That is, you call VideoCapture::grab() for each camera and after that call the slower methodVideoCapture::retrieve() to decode and get frame from each camera. This way the overhead on demosaicing or motion jpeg decompression etc. is eliminated and the retrieved frames from different cameras will be closer in time.

Also, when a connected camera is multi-head (for example, a stereo camera or a Kinect device), the correct way of retrieving data from it is to call VideoCapture::grab first and then call VideoCapture::retrieve() one or more times with different values of the channel parameter.

Decodes and returns the grabbed video frame.

C++:  bool  VideoCapture:: retrieve (Mat&  image, int  channel=0 )
Python:   cv2.VideoCapture. retrieve ( [image [, channel ] ] ) → retval, image
C:  IplImage*  cvRetrieveFrame (CvCapture*  capture, int  streamIdx=0  )
Python:   cv. RetrieveFrame (capture ) → image

The methods/functions decode and return the just grabbed frame. If no frames has been grabbed (camera has been disconnected, or there are no more frames in video file), the methods return false and the functions return NULL pointer.

Note

 

OpenCV 1.x functions cvRetrieveFrame and cv.RetrieveFrame return image stored inside the video capturing structure. It is not allowed to modify or release the image! You can copy the frame using cvCloneImage() and then do whatever you want with the copy.

这篇关于VideoCapture之grab()和retrieve()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/729395

相关文章

nvm list available出现的 Could not retrieve https://nodejs.org/dist/index.json办法解决

好久没有用电脑的nvm list available 命令,今天晚上突然用发现趟趟趟~~ 报错 刚开始报错:是这样滴 Could not retrieve https://nodejs.org/dist/index.json.Get https://nodejs.org/dist/index.json: net/http: TLS handshake timeout 方法尝试1:重装系统

cv.VideoCapture()的摄像头ID究竟是如何编码的?为什么有的是从700开始编码??彻底读懂它!

背景         最近在进行开发的时候,针对摄像头ID的问题总是让人恼火至极,有时候直接cv.VideoCapture(0)、cv.VideoCapture(1)就可以调用摄像头,有时候却需要cv.VideoCapture(700)或者cv.VideoCapture(701)才能调用摄像头。这给平台化开发带来了困难。 简述         在使用OpenCV的cv.VideoCaptur

EmguCV学习笔记 VB.Net 9.1 VideoCapture类

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问:EmguCV学习笔记 VB.Net 目录-CSDN博客 教程C#版本请访问:EmguCV学习笔记 C# 目录-CSDN博客 笔者的博

EmguCV学习笔记 C# 9.1 VideoCapture类

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问:EmguCV学习笔记 VB.Net 目录-CSDN博客 教程C#版本请访问:EmguCV学习笔记 C# 目录-CSDN博客 笔者

C# 使用OpenCV 类VideoCapture 和 Mat的正确方法

在做WPF桌面程序时候,要调用USB摄像头,因此接触了OpenCV , 遇到了各种坑,严重烧肝终于找到原因。 涉及的类包括VideoCapture , Mat.  问题1.内存泄漏  运行以下 代码片段,会发现内存持续飙升 for (int i = 0; i < 1000; i++){using (Mat image = new Mat())using (Vi

使用RV1126交叉编译工具链交叉编译opencv,c++代码直接调用VideoCapture 读取摄像头数据

使用RV1126交叉编译工具链交叉编译opencv,rv1126直接调用VideoCapture 读取摄像头数据 前言环境一、ubantu安装二、交叉编译工具安装三、cmake升级四、ffmpeg安装五、opencv安装六、c++代码测试(上板运行) 前言 交叉编译是一种将软件在操作系统上进行编译,但在另一种不同的操作系统或架构上运行的技术。本文将使用Ubuntu作为主机操作系

QT调试过程中出现“cannot retrieve debugging output”

在Qt调试的过程中出现如下问题: cannot retrieve debugging output 经过查找相关的资料发现 因为Qtcreator开启了两个导致的。

QT中加入opencv出现VideoCapture was not declared in this scope

报如下错误: error: 'VideoCapture' was not declared in this scopeVideoCapture capture(0,CAP_ANY); 这种查了很多资料发现需要加头文件,和库文件。按照这种做法做了之后还是报这种错误。 头文件和库文件加入到工程的方法如下: INCLUDEPATH += D:\QtOpenCV\includeD:\QtOpen

PYTHON三种读取存入图像方法 VideoCapture读取视频两种方法 C++与PYTHON截图和缩放方法 waitKey Sleep sleep 图片文字putText

PYTHON三种方法 方法一、cv2 import cv2 filename=r’D:\Work\ILSVRC\val_3.jpeg’ im1=cv2.imread(filename) #读文件BGR格式 im1 = cv2.resize(im1,(400,400)) #默认双线性插值 #cv2.imshow(‘cv2’,im1) #显示图像, 在现在的petalinux生成的系统中和viti

Could not retrieve transation read-only status server

背景 最近在部署一套完整的项目,部署过程中遇到很多的问题,在来总结一些如标题的这个错误! 环境说明: 使用分布式数据库,使用的是mysql! ### Cause: java.sql.SQLException: Could not retrieve transation read-only status server; SQL []; Could not retrieve transatio