开发者社区> 隐士2018> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

cv2.VideoCapture(0).set/get

简介:
+关注继续查看
pencv自带的VideoCapture()函数定义摄像头对象,其参数0表示第一个摄像头,一般就是笔记本的内建摄像头。 cap = cv2.VideoCapture("../test.avi") 逐帧显示实现视频播放 在while循环中,利用视频对象的read()函数读取视频的某帧,并显示


class VideoCapture(builtins.object)

 |  Methods defined here:

 |  

 |  __init__(self, /, *args, **kwargs)

 |      Initialize self.  See help(type(self)) for accurate signature.

 |  

 |  __new__(*args, **kwargs) from builtins.type

 |      Create and return a new object.  See help(type) for accurate signature.

 |  

 |  __repr__(self, /)

 |      Return repr(self).

 |  

 |  get(...)

 |      get(propId) -> retval

 |      .   @brief Returns the specified VideoCapture property

 |      .   

 |      .   @param propId Property identifier from cv::VideoCaptureProperties (eg. cv::CAP_PROP_POS_MSEC, cv::CAP_PROP_POS_FRAMES, ...)

 |      .   or one from @ref videoio_flags_others

 |      .   @return Value for the specified property. Value 0 is returned when querying a property that is

 |      .   not supported by the backend used by the VideoCapture instance.

 |      .   

 |      .   @note Reading / writing properties involves many layers. Some unexpected result might happens

 |      .   along this chain.

 |      .   @code {.txt}

 |      .   `VideoCapture -> API Backend -> Operating System -> Device Driver -> Device Hardware`

 |      .   @endcode

 |      .   The returned value might be different from what really used by the device or it could be encoded

 |      .   using device dependant rules (eg. steps or percentage). Effective behaviour depends from device

 |      .   driver and API Backend

 |  

 |  grab(...)

 |      grab() -> retval

 |      .   @brief Grabs the next frame from video file or capturing device.

 |      .   

 |      .   @return `true` (non-zero) in the case of success.

 |      .   

 |      .   The method/function grabs the next frame from video file or camera and returns 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 method VideoCapture::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.

 |      .   

 |      .   @ref tutorial_kinect_openni

 |  

 |  isOpened(...)

 |      isOpened() -> retval

 |      .   @brief Returns true if video capturing has been initialized already.

 |      .   

 |      .   If the previous call to VideoCapture constructor or VideoCapture::open() succeeded, the method returns

 |      .   true.

 |  

 |  open(...)

 |      open(filename) -> retval

 |      .   @brief  Open video file or a capturing device or a IP video stream for video capturing

 |      .   

 |      .   @overload

 |      .   

 |      .   Parameters are same as the constructor VideoCapture(const String& filename)

 |      .   @return `true` if the file has been successfully opened

 |      .   

 |      .   The method first calls VideoCapture::release to close the already opened file or camera.

 |      

 |      

 |      

 |      open(index) -> retval

 |      .   @brief  Open a camera for video capturing

 |      .   

 |      .   @overload

 |      .   

 |      .   Parameters are same as the constructor VideoCapture(int index)

 |      .   @return `true` if the camera has been successfully opened.

 |      .   

 |      .   The method first calls VideoCapture::release to close the already opened file or camera.

 |      

 |      

 |      

 |      open(cameraNum, apiPreference) -> retval

 |      .   @brief  Open a camera for video capturing

 |      .   

 |      .   @overload

 |      .   

 |      .   Parameters are similar as the constructor VideoCapture(int index),except it takes an additional argument apiPreference.

 |      .   Definitely, is same as open(int index) where `index=cameraNum + apiPreference`

 |      .   @return `true` if the camera has been successfully opened.

 |      

 |      

 |      

 |      open(filename, apiPreference) -> retval

 |      .   @brief Open video file or a capturing device or a IP video stream for video capturing with API Preference

 |      .   

 |      .   @overload

 |      .   

 |      .   Parameters are same as the constructor VideoCapture(const String& filename, int apiPreference)

 |      .   @return `true` if the file has been successfully opened

 |      .   

 |      .   The method first calls VideoCapture::release to close the already opened file or camera.

 |  

 |  read(...)

 |      read([, image]) -> retval, image

 |      .   @brief Grabs, decodes and returns the next video frame.

 |      .   

 |      .   @param [out] image the video frame is returned here. If no frames has been grabbed the image will be empty.

 |      .   @return `false` if no frames has been grabbed

 |      .   

 |      .   The method/function combines VideoCapture::grab() and VideoCapture::retrieve() in one call. This is the

 |      .   most convenient method for reading video files or capturing data from decode and returns the just

 |      .   grabbed frame. If no frames has been grabbed (camera has been disconnected, or there are no more

 |      .   frames in video file), the method returns false and the function returns empty image (with %cv::Mat, test it with Mat::empty()).

 |      .   

 |      .   @note In @ref videoio_c "C API", 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

 |      .   :ocvcvCloneImage and then do whatever you want with the copy.

 |  

 |  release(...)

 |      release() -> None

 |      .   @brief Closes video file or capturing device.

 |      .   

 |      .   The method is automatically called by subsequent VideoCapture::open and by VideoCapture

 |      .   destructor.

 |      .   

 |      .   The C function also deallocates memory and clears \*capture pointer.

 |  

 |  retrieve(...)

 |      retrieve([, image[, flag]]) -> retval, image

 |      .   @brief Decodes and returns the grabbed video frame.

 |      .   

 |      .   @param [out] image the video frame is returned here. If no frames has been grabbed the image will be empty.

 |      .   @param flag it could be a frame index or a driver specific flag

 |      .   @return `false` if no frames has been grabbed

 |      .   

 |      .   The method decodes and returns the just grabbed frame. If no frames has been grabbed

 |      .   (camera has been disconnected, or there are no more frames in video file), the method returns false

 |      .   and the function returns an empty image (with %cv::Mat, test it with Mat::empty()).

 |      .   

 |      .   @sa read()

 |      .   

 |      .   @note In @ref videoio_c "C API", 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

 |      .   :ocvcvCloneImage and then do whatever you want with the copy.

 |  

 |  set(...)

 |      set(propId, value) -> retval

 |      .   @brief Sets a property in the VideoCapture.

 |      .   

 |      .   @param propId Property identifier from cv::VideoCaptureProperties (eg. cv::CAP_PROP_POS_MSEC, cv::CAP_PROP_POS_FRAMES, ...)

 |      .   or one from @ref videoio_flags_others

 |      .   @param value Value of the property.

 |      .   @return `true` if the property is supported by backend used by the VideoCapture instance.

 |      .   @note Even if it returns `true` this doesn't ensure that the property

 |      .   value has been accepted by the capture device. See note in VideoCapture::get()


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java SE官方团队成员为何“抛弃”Java,成了JavaScript和Node死忠?
  我是前 Sun 公司 Java SE 团队的一名成员,在工作了 10 多年之后——2009 年 1 月——也就是在甲骨文收购 Sun 公司之前,我离开了公司,然后迷上了 Node.js。   我对 Node.js 的痴迷到了怎样的程度?自 2010 年以来,我撰写了大量有关 Node.js 编程的文章,出版了四本与 Node.js 开发有关的书籍,以及与 Node.js 编程有关的其他书籍和众多教程。   在 Sun 公司工作期间,我相信 Java 就是一切。我在 JavaONE 上发表演讲,共同开发了 java.awt.Robot 类,组织 Mustang 回归竞赛(Java 1.6
52 0
SAP HANA里的中文排序问题
SAP HANA里的中文排序问题
56 0
JavaScript中的内存泄漏以及如何处理
随着现在的编程语言功能越来越成熟、复杂,内存管理也容易被大家忽略。本文将会讨论JavaScript中的内存泄漏以及如何处理,方便大家在使用JavaScript编码时,更好的应对内存泄漏带来的问题。   概述 像C语言这样的编程语言,具有简单的内存管理功能函数,例如malloc( )和free( )。
1631 0
+关注
隐士2018
蹭热度,自学AI
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载