精华内容
下载资源
问答
  • 主要介绍了OpenCV中VideoCapture类的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • VideoCapture

    2012-02-29 14:22:32
    VideoCapture
  • videocapture

    2015-09-28 22:40:32
    vfw videocapture*4
  • qt_videocapture

    2017-10-07 16:53:23
    webrtc捕获摄像头中的视频流,并通过QT的图形界面显示出来。
  • VideoCapture调用摄像头

    2018-04-23 18:14:55
    基于AForge.Net调用本机摄像头进行拍照,附带AForge.Net下载
  • VideoCapture-源码

    2021-03-07 17:29:55
    VideoCapture
  • Java-Opencv Videocapture
  • 复制代码 代码如下:from VideoCapture import Devicecam = Device()cam.setResolution(320,240) #设置显示分辨率cam.saveSnapshot(‘demo.jpg’) #抓取并保存图片 这样,你就得到了一张图片.当然,要实现比较高速的...
  • videocapture whl 文件

    2019-01-09 13:57:06
    no module named 'VideoCapture', 通过pip安装 找不到资源, 此时,下载该whl文件, pip install VideoCapture-0.9.5-cp36-cp36m-win32.whl 即可安装videoCapture
  • ios 视频 videocaputre playvideo #1.iOS videoCapture for frame #2.Video codec H264 #3.video Clip 320*240 #5.shortVideoController 是有用的 UI 控件,videoRecord 类用于 videoCaputer
  • 具有直接格式、区域和下采样选项的 VideoCapture 类 动机 CPU 能力有限的环境(如 Raspberry Pi 计算机)需要没有不必要计算的算法。 我注意到签名 OpenCV 视频捕获解决方案的一些事实是次优的。 我修改后的测试结果...
  • videoCapture.rar

    2020-08-12 19:17:15
    maven项目,通过FFmpegFrameGrabber,跟OpenCV截取视频的每一帧,及在一段视频时间内的所有视频帧,并保存在指定目录里
  • VideoCapture-0.9.5-cp35-none-win_amd64
  • MJPEG捕捉 用于 OpenCV 的 MJPEG VideoCapture 我编写这个程序是为了让我的罗技 C310 网络摄像头使用 Beagle Bone Black 获得高帧率。
  • WeChatVideoRecorder Android-VideoRecorder 仿Android微信录制小视频功能 还有很多地方优化的不好,体验不好。希望大家指导学习,做出最佳效果。 下面需要解决的部分: 1.视频尺寸,怎么像微信那也是横着的,即宽...
  • VideoCapture-0.9.5-pp37-pypy37_pp73-win_amd64
  • VideoCapture包 3.6 win64 ,亲测有效,主要可以用在使用pygame的camera时候,如果出现错误:No module named 'VideoCapture'时解决问题
  • java.lang.UnsatisfiedLinkError: org.opencv.videoio.VideoCapture.VideoCapture_2(I)J <p>I am working on Ubuntu and have open CV 3.4 installed properly. I already set all class paths in environment ...
  • 前面已经提到过一部分的视频读写:OpenCV–...基本上,该模块将cv :: VideoCapture和cv :: VideoWriter类作为2层接口提供给许多用作后端的视频I / O API。 某些后端,例如(DSHOW)Direct Show,Windows视频(VFW)...

    在这里插入图片描述
    前面已经提到过一部分的视频读写:OpenCV–012:视频读写

    一、OpenCV视频I/O概述

    来自:OpenCV视频I/O概述

    OpenCV视频I/O模块是一组用于读取和写入视频或图像序列的类和功能。

    基本上,该模块将cv :: VideoCapture和cv :: VideoWriter类作为2层接口提供给许多用作后端的视频I / O API。
    在这里插入图片描述

    • 某些后端,例如(DSHOW)Direct Show,Windows视频(VFW),Microsoft Media Foundation(MSMF),Video 4 Linux(V4L)等,是操作系统提供的视频I / O库的接口。
    • 其他一些后端,例如用于Kinect的OpenNI2,英特尔感知计算SDK,GStreamer,XIMEA相机API等,都是专有驱动程序或外部库的接口。

    notice:
    每个后端以不同的方式支持设备属性(cv :: VideoCaptureProperties),或者可能根本不支持任何属性。

    运行时选择后端
    OpenCV运行时自动选择并使用第一个可用的后端(apiPreference=cv::CAP_ANY);

    用于可以根据需要,选择要运行的后端。
    例如:

    1. 使用Dirtect Show作为后端从默认摄像头抓取:
      //声明一个捕获对象
      cv :: VideoCapture cap(0 + cv :: CAP_DSHOW);
      //或使用open指定apiPreference
      cap.open(0 + cv :: CAP_DSHOW);
      
    2. 如果要使用Direct Show作为后端从文件中抓取:
      //声明一个捕获对象
      cv :: VideoCapture cap(filename,cv :: CAP_DSHOW);
      //或使用open指定apiPreference
      cap.open(文件名,cv :: CAP_DSHOW);
      

    使用第三方驱动程序或照相机:
    许多工业相机或者某些视频I/O设备不提供操作系统的标准驱动程序接口。因此,不能再这些设备上直接使用VideoCapture或者VideoWriter。为了访问他们的设备,制造商提供了自己的C++ API和库。

    FFmpeg库:
    OpenCV可以使用FFmpeg库作为后端来记录,转换和流式传输音频和视频。FFMpeg是完整的交叉引用解决方案。如果在配置OpenCV时启用FFmpeg,则CMake将下载二进制文件并将其安装在OPENCV_SOURCE_CODE/3rdparty/ffmpeg/中。要在运行时使用FFMpeg,必须将FFMepg二进制文件与应用程序一起部署。

    在这里插入图片描述

    二、VideoCapture结构体


    VideoCapture结构体,可以读取文件视频、网页视频流和摄像头的数据。

    ❶先看一下构造函数:

    • 1、默认构造函数:
    VideoCapture() 
    
    • 2、使用API首选项打开视频文件或捕获设备或IP视频流以进行视频捕获。
    VideoCapture (const String &filename, int apiPreference=CAP_ANY)
    

      filename可选值:

    • 影片档案名称(例如video.avi)
    • 图片序列(例如img_%02d.jpg,将读取像这样的样本img_00.jpg, img_01.jpg, img_02.jpg, …)
    • 视频流的网址(例如protocol://host:port/script_name?script_params|auth)。请注意,每个视频流或IP摄像机源均具有其自己的URL方案。请参考源流的文档以了解正确的URL。

      apiPreference:
      首选使用的Capture API后端。如果有多个可用的读取器实现,则可以用于实施特定的读取器实现。
      设置读取的摄像头编号,默认CAP_ANY=0,自动检测摄像头。多个摄像头时,使用索引0,1,2,…进行编号调用摄像头。 apiPreference = -1时单独出现窗口,选取相应编号摄像头。
    • 3、打开相机进行视频拍摄。
    VideoCapture (int index, int apiPreference=CAP_ANY)
    

    index参数:
    要打开的视频捕获设备的ID。要使用默认后端打开默认摄像头,只需传递0。
    ——> 当apiPreference为CAP_ANY时,使用camera_id + domain_offset(CAP_ *)向后兼容有效
    apiPreference:
    首选使用的Capture API后端。如果有多个可用的读取器实现,则可用于实施特定的读取器实现:例如cv :: CAP_DSHOW或cv :: CAP_MSMF或cv :: CAP_V4L。

    通常使用 bool isOpened()判断是否打开视频或摄像头成功。

    VideoCaptureAPIs的取值:OpenCV视频篇——VideoCaptureAPIs

    在这里插入图片描述

    ❷ VideoCapture中其他函数

    • 1、返回特殊的VIdeoCApture属性信息。
    virtual double 	get (int propId) const
    

    propId:
    来自cv :: VideoCaptureProperties的属性标识符(例如cv :: CAP_PROP_POS_MSEC,cv :: CAP_PROP_POS_FRAMES,…)或视频I / O API后端的附加标志中的一个。
    指定属性的值。查询VideoCapture实例使用的后端不支持的属性时,返回值0 。

    读/写属性涉及许多层。在此链上可能会发生一些意外的结果。
    VideoCapture- > API 后端 ->操作系统->设备驱动程序->设备硬件
    返回的值可能与设备实际使用的值不同,或者可以使用设备相关的规则(例如,步骤或百分比)对其进行编码。有效行为取决于设备驱动程序和API后端。

    VideoCaptureProperties的取值:OpenCV视频篇——VideoCaptureProperties

    • 2、在VideoCapture中设置属性。
    virtual bool cv::VideoCapture::set(int propId, double 	value )	
    

    propId:
    来自cv :: VideoCaptureProperties的属性标识符(例如cv :: CAP_PROP_POS_MSEC,cv :: CAP_PROP_POS_FRAMES,…)或视频I / O API后端的附加标志中的一个
    value:
    属性的值。
    返回值:
    如果该属性由VideoCapture实例使用的后端支持,则返回true。

    即使返回true,也不能确保捕获设备已接受该属性值。

    • 3、返回使用的后端API名称。
    String 	getBackendName () const
    

    流应先打开。

    • 4、从视频文件或捕获设备中获取下一帧。
    virtual bool 	grab ()
    

    该方法/函数从视频文件或摄像机中获取下一帧,并在成功的情况下返回true(非零)。

    该功能的主要用途是在多相机环境中,尤其是在相机没有硬件同步的情况下。也就是说,您为每个摄像机调用VideoCapture :: grab(),然后调用较慢的方法VideoCapture :: retrieve()解码并从每个摄像机获取帧。这样,消除了去马赛克或运动jpeg压缩等方面的开销,并且从不同摄像机检索到的帧将在时间上更近。

    返回:
    true (非零)(如果成功)。

    另外,当连接的摄像机是多头摄像机(例如,立体摄像机或Kinect设备)时,从中检索数据的正确方法是先调用VideoCapture :: grab(),然后再调用VideoCapture :: retrieve()使用不同的channel参数值一次或多次。

    • 5、如果视频捕获已经初始化,则返回true。
    virtual bool 	isOpened () const
    

    如果先前对VideoCapture构造函数或VideoCapture :: open()调用成功,则该方法返回true。

    • 6、打开视频文件或捕获设备或IP视频流以进行视频捕获。
    virtual bool 	open (const String &filename, int apiPreference=CAP_ANY)
     
    virtual bool 	open (int index, int apiPreference=CAP_ANY)
    

    参数与构造函数VideoCapture相同,此处不再重复。

    返回:
    true:如果文件已成功打开

    该方法首先调用VideoCapture :: release以关闭已打开的文件或摄像机。

    • 7、抓取,解码并返回下一个视频帧。
    virtual bool 	read (OutputArray image)
    

    该方法/函数在一次调用中将VideoCapture :: grab()和VideoCapture :: retrieve()组合在一起。这是读取视频文件或从解码捕获数据并返回刚抓取的帧的最方便的方法。如果没有抓取任何帧(相机已断开连接,或者视频文件中没有其他帧),则该方法返回false,并且该函数返回空图像(使用cv :: Mat,使用Mat :: empty()进行测试) 。

    image:
    视频帧将返回此处。如果没有抓取帧,image将为空。
    返回:
    false:如果没有抓取帧

    • 8、关闭视频文件或捕获设备。
    virtual void 	release ()
    

    该方法由随后的VideoCapture :: open和VideoCapture析构函数自动调用。

    C函数还会取消分配内存并清除* capture指针。

    • 9、解码并返回抓取的视频帧。
    virtual bool 	retrieve (OutputArray image, int flag=0)
    

    该方法解码并返回刚抓取的帧。如果没有抓取任何帧(摄像机已断开连接,或者视频文件中没有其他帧),则该方法返回false,并且该函数返回空图像(使用cv :: Mat,使用Mat :: empty()测试它)。

    image:
    视频帧将返回此处。如果没有抓取帧,image将为空。
    flag:
    它可以是帧索引或驱动程序特定标志。
    返回值:
    false 如果没有抓取帧。

    • 10、流运算符读取下一个视频帧。
    virtual VideoCapture & 	operator>> (Mat &image)
     
    virtual VideoCapture & 	operator>> (UMat &image)
    

    在这里插入图片描述

    ❸读取视频基本步骤

    1、读取视频

    一般采用构造函数进行视频或者摄像头的预处理。

    2、下一帧

    读取下一帧:

    • 使用重载运算符>>
    • 使用read 、grab 、retrieve函数

    视频帧读取的方式:

    读取方式使用方式
    cap.read(frame)结合grab和retrieve的功能,抓取下一帧并解码
    cap.grap()从设备或视频获取下一帧,获取成功返回true否则false
    cap.retrieve(frame)在grab后使用,对获取到的帧进行解码,也返回true或false

    retrieve速度比grab慢很多,有时可以通过grab跳过不需要的帧,而不需要用read解码每一帧。

    3、释放

    release()在使用完后进行手动释放VideoCapture对象。

    int main(int, char**)
    {
        Mat frame;
        //--- INITIALIZE VIDEOCAPTURE
        VideoCapture cap;
        // open the default camera using default API
        // cap.open(0);
        // OR advance usage: select any API backend
        int deviceID = 0;             // 0 = open default camera
        int apiID = cv::CAP_ANY;      // 0 = autodetect default API
        // open selected camera using selected API
        cap.open(deviceID + apiID);
        // check if we succeeded
        if (!cap.isOpened()) {
            cerr << "ERROR! Unable to open camera\n";
            return -1;
        }
        //--- GRAB AND WRITE LOOP
        cout << "Start grabbing" << endl
            << "Press any key to terminate" << endl;
        for (;;)
        {
            // wait for a new frame from camera and store it into 'frame'
            cap.read(frame);
            // check if we succeeded
            if (frame.empty()) {
                cerr << "ERROR! blank frame grabbed\n";
                break;
            }
            // show live and wait for a key with timeout long enough to show images
            imshow("Live", frame);
            if (waitKey(5) >= 0)
                break;
        }
        // the camera will be deinitialized automatically in VideoCapture destructor
        return 0;
    }
    

    在这里插入图片描述

    三、VideoWriter类


    ❶构造函数

    • 1、默认构造函数:
    VideoWriter ()
    
    • 2、构造函数
    VideoWriter (const String &filename, int fourcc, double fps, Size frameSize, bool isColor=true)
    

    filename:
    输出视频文件的名称。
    fourcc:
    用于压缩帧的编解码器的4个字符的代码。
    例如:
    VideoWriter :: fourcc(‘P’,‘I’,‘M’,‘1’)是MPEG-1编解码器;
    VideoWriter :: fourcc(‘M’,‘J’,‘P’,'G ')是动态jpeg编解码器等。
    可以在FOURCC页面的“ 视频编解码器”中获取代码列表。带有MP4容器的FFMPEG后端本机使用其他值作为fourcc代码:请参见ObjectType,因此您可能会从OpenCV收到有关fourcc代码转换的警告消息。
    fps:
    创建的视频流的帧率。
    frameSize:
    视频帧的大小。
    isColor:
    如果它不为零,则编码器将期望并编码彩色帧,否则它将与灰度帧一起使用(仅Windows当前支持该标志)。

    • 3、构造函数
    VideoWriter (const String &filename, int apiPreference, int fourcc, double fps, Size frameSize, bool isColor=true)
    

    ❷ 成员函数

    • 1、返回指定的VideoWriter属性
    virtual double 	get (int propId) const
    

    propId:
    来自cv :: VideoWriterProperties的属性标识符或视频I / O API后端的其他标志之一。

    返回值:
    指定属性的值。查询VideoWriter实例使用的后端不支持的属性时,返回值0 。

    • 2、 在VideoWriter中设置属性。
    virtual bool 	set (int propId, double value)
    

    propId:
    来自cv :: VideoWriterProperties的属性标识符或视频I / O API后端的其他标志之一。
    value:
    属性的值。

    返回值:
    true:如果该属性由VideoWriter实例使用的后端支持。

    • 3、 返回使用的后端API名称。。
    String 	getBackendName () const
    

    注意:
    流应打开。

    • 4、 如果视频编写器已成功初始化,则返回true。
    virtual bool 	isOpened () const
    
    • 5、 初始化或重新初始化视频编写器。
    virtual bool open(const String &filename,int fourcc, double fps,Size frameSize,bool isColor=true)
    
    bool open (const String &filename, int apiPreference, int fourcc, double fps, Size frameSize, bool isColor=true)
    

    参数与构造函数VideoWriter :: VideoWriter中的参数相同。

    返回值:
    true:视频编写器是否已成功初始化

    该方法首先调用VideoWriter :: release以关闭已打开的文件。

    • 6.1、 流运算符写入下一个视频帧。
    virtual VideoWriter &operator<<(const Mat &image)
    virtual VideoWriter &operator<<(const UMat &image)
    
    • 6.2、 写入下一个视频帧。
    virtual void 	write (InputArray image)
    

    该功能/方法将指定的图像写入视频文件。它的大小必须与打开视频编写器时指定的大小相同。

    image:
    待写的帧。通常,彩色图像应采用BGR格式。

    • 7、 关闭视频编写器。
    virtual void 	release ()
    

    此方法由随后的VideoWriter :: open和VideoWriter析构函数自动调用。

    展开全文
  • 【opencv-python】 cv2.VideoCapture视频捕获1.背景2.参数3.示例 1.背景 详细文档,请查阅官方资料。 本博客尽可能地简单明了,如有错误,欢迎指正。 本博客的python以及cv2版本如下: python:3.6.8 (tags/v3.6.8:3c...

    【opencv-python】 cv2.VideoCapture视频捕获

    1.背景

    详细文档,请查阅官方资料。
    本博客尽可能地简单明了,如有错误,欢迎指正。

    本博客的python以及cv2版本如下:

    python:3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)]
    opencv-python:4.5.1.48
    

    opencv提供了捕获视频的class:

    VideoCapture类(class)
    

    2.参数

    初始化该VideoCapture类,生成读取摄像头对象。
    可以使用

    展开全文
  • python opencv cv2.VideoCapture()类

    千次阅读 2020-01-07 17:12:00
    from cv2\VideoCapture.py # encoding: utf-8 # module cv2.cv2 # from D:\20191031_tensorflow_yolov3\python\lib\site-packages\cv2\cv2.cp36-win_amd64.pyd # by generator 1.147 """ Python wrapper for ...

    from cv2\VideoCapture.py

    # encoding: utf-8
    # module cv2.cv2
    # from D:\20191031_tensorflow_yolov3\python\lib\site-packages\cv2\cv2.cp36-win_amd64.pyd
    # by generator 1.147
    """ Python wrapper for OpenCV. """
    
    # imports
    import cv2.cv2 as  # D:\20191031_tensorflow_yolov3\python\lib\site-packages\cv2\cv2.cp36-win_amd64.pyd
    import cv2.Error as Error # <module 'cv2.Error'>
    import cv2.cuda as cuda # <module 'cv2.cuda'>
    import cv2.detail as detail # <module 'cv2.detail'>
    import cv2.dnn as dnn # <module 'cv2.dnn'>
    import cv2.fisheye as fisheye # <module 'cv2.fisheye'>
    import cv2.flann as flann # <module 'cv2.flann'>
    import cv2.instr as instr # <module 'cv2.instr'>
    import cv2.ipp as ipp # <module 'cv2.ipp'>
    import cv2.ml as ml # <module 'cv2.ml'>
    import cv2.ocl as ocl # <module 'cv2.ocl'>
    import cv2.ogl as ogl # <module 'cv2.ogl'>
    import cv2.samples as samples # <module 'cv2.samples'>
    import cv2.utils as utils # <module 'cv2.utils'>
    import cv2.videoio_registry as videoio_registry # <module 'cv2.videoio_registry'>
    import cv2 as __cv2
    
    
    from .object import object
    
    class VideoCapture(object):
        # no doc
        def get(self, propId): # real signature unknown; restored from __doc__
            """
            get(propId) -> retval
            .   @brief Returns the specified VideoCapture property
            返回指定的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
            propId来自cv :: VideoCaptureProperties的属性标识符
            (例如cv :: CAP_PROP_POS_MSEC,cv :: CAP_PROP_POS_FRAMES等)
            或@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.
            指定属性的值。 查询VideoCapture实例使用的后端不支持的属性时,返回值0。
            .   
            .   @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`
            `VideoCapture-> API后端->操作系统->设备驱动程序->设备硬件`
            
            .   @endcode
            .   The returned value might be different from what really used by the device or it could be encoded
            .   using device dependent rules (eg. steps or percentage). Effective behaviour depends from device
            .   driver and API Backend
            返回的值可能与设备实际使用的值不同,或者可以使用设备相关的规则
            (例如,步骤或百分比)对其进行编码。 有效行为取决于设备驱动程序和API后端
            """
            pass
    
        def getBackendName(self): # real signature unknown; restored from __doc__
            """
            getBackendName() -> retval
            .   @brief Returns used backend API name
            返回使用的后端API名称
            .   
            .   @note Stream should be opened.
            流应打开。
            """
            pass
    
        def grab(self): # real signature unknown; restored from __doc__
            """
            grab() -> retval
            .   @brief Grabs the next frame from video file or capturing device.
            从视频文件或捕获设备中获取下一帧。
            .   
            .   @return `true` (non-zero) in the case of success.
            如果成功,则返回“ true”(非零)。
            .   
            .   The method/function grabs the next frame from video file or camera and returns true (non-zero) in
            .   the case of success.
            该方法/函数从视频文件或摄像机中获取下一帧,并在成功的情况下返回true(非零)。
            .   
            .   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.
            该功能的主要用途是在多相机环境中,尤其是在相机没有硬件同步的情况下。 
            也就是说,您为每个摄像机调用VideoCapture :: grab(),
            然后调用较慢的方法VideoCapture :: retrieve()解码并从每个摄像机获取帧。 
            这样,消除了去马赛克或运动jpeg压缩等方面的开销,并且从不同摄像机检索到的帧将在时间上更近。
            .   
            .   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.
            另外,当连接的摄像机是多头摄像机(例如,立体摄像机或Kinect设备)时,
            从中检索数据的正确方法是先调用VideoCapture :: grab(),
            然后再调用VideoCapture :: retrieve() 使用不同的channel参数值一次或多次。
            .   
            .   @ref tutorial_kinect_openni
            """
            pass
    
        def isOpened(self): # real signature unknown; restored from __doc__
            """
            isOpened() -> retval
            .   @brief Returns true if video capturing has been initialized already.
            如果视频捕获已经初始化,则返回true。
            .   
            .   If the previous call to VideoCapture constructor or VideoCapture::open() succeeded, the method returns
            .   true.
            如果先前对VideoCapture构造函数或VideoCapture :: open()的调用成功,
            则该方法返回true。
            """
            pass
    
        def open(self, filename, apiPreference=None): # real signature unknown; restored from __doc__
            """
            open(filename[, apiPreference]) -> retval
            .   @brief  Opens a video file or a capturing device or an IP video stream for video capturing.
            打开视频文件或捕获设备或IP视频流以进行视频捕获。
            .   
            .   @overload
            .   
            .   Parameters are same as the constructor VideoCapture(const String& filename, int apiPreference = CAP_ANY)
            参数与构造函数VideoCapture相同(常量字符串和文件名,int apiPreference = CAP_ANY)
            
            .   @return `true` if the file has been successfully opened
            如果文件已成功打开,则返回“ true”
            .   
            .   The method first calls VideoCapture::release to close the already opened file or camera.
            该方法首先调用VideoCapture :: release以关闭已打开的文件或摄像机。
            
            
            
            open(index[, apiPreference]) -> retval
            .   @brief  Opens a camera for video capturing
            打开相机进行视频拍摄
            .   
            .   @overload
            .   
            .   Parameters are same as the constructor VideoCapture(int index, int apiPreference = CAP_ANY)
            参数与构造函数VideoCapture(int index,int apiPreference = CAP_ANY)相同
            
            .   @return `true` if the camera has been successfully opened.
            如果摄像机已经成功打开,则返回“ true”。
            .   
            .   The method first calls VideoCapture::release to close the already opened file or camera.
            该方法首先调用VideoCapture :: release以关闭已打开的文件或摄像机。
            """
            pass
    
        def read(self, image=None): # real signature unknown; restored from __doc__
            """
            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
            如果没有抓取帧,则返回“ false”
            .   
            .   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()).
            该方法/函数在一次调用中将VideoCapture :: grab()和VideoCapture :: retrieve()组合在一起。 
            这是读取视频文件或从解码捕获数据并返回刚抓取的帧的最方便的方法。 
            如果没有抓取任何帧(相机已断开连接,或者视频文件中没有其他帧),
            则该方法返回false,并且该函数返回空图像
            (使用%cv :: Mat,使用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
            .   cvCloneImage and then do whatever you want with the copy.
            在@ref videoio_c“ C API”中,函数cvRetrieveFrame()和cv.RetrieveFrame()
            返回存储在视频捕获结构内的图像。 禁止修改或发布图像! 
            您可以使用cvCloneImage复制框架,然后对副本进行任何操作。
            """
            pass
    
        def release(self): # real signature unknown; restored from __doc__
            """
            release() -> None
            .   @brief Closes video file or capturing device.
            关闭视频文件或捕获设备。
            .   
            .   The method is automatically called by subsequent VideoCapture::open and by VideoCapture
            .   destructor.
            该方法由随后的VideoCapture :: open和VideoCapture析构函数自动调用。
            .   
            .   The C function also deallocates memory and clears \*capture pointer.
            C函数还会取消分配内存并清除\ * capture指针。
            """
            pass
    
        def retrieve(self, image=None, flag=None): # real signature unknown; restored from __doc__
            """
            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
            如果没有抓取帧,则返回“ false”
            .   
            .   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()).
            该方法解码并返回刚抓取的帧。 
            如果没有抓取任何帧(相机已断开连接,或者视频文件中没有其他帧),
            则该方法返回false,并且该函数返回空图像(使用%cv :: Mat,使用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
            .   cvCloneImage and then do whatever you want with the copy.
            在@ref videoio_c“ C API”中,函数cvRetrieveFrame()和cv.RetrieveFrame()
            返回存储在视频捕获结构内的图像。 禁止修改或发布图像! 
            您可以使用cvCloneImage复制帧,然后对副本进行任何操作。
            """
            pass
    
        def set(self, propId, value): # real signature unknown; restored from __doc__
            """
            set(propId, value) -> retval
            .   @brief Sets a property in the VideoCapture.
            在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
            来自cv :: VideoCaptureProperties的属性标识符
            (例如cv :: CAP_PROP_POS_MSEC,cv :: CAP_PROP_POS_FRAMES等)
            或@ref videoio_flags_others中的一个
            
            .   @param value Value of the property.
            属性值
            
            .   @return `true` if the property is supported by backend used by the VideoCapture instance.
            如果VideoCapture实例使用的后端支持该属性,则返回true。
            
            .   @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()
            即使返回“ true”,也不能确保捕获设备已接受该属性值。 
            请参阅VideoCapture :: get()中的注释
            """
            pass
    
        def __init__(self, *args, **kwargs): # real signature unknown
            pass
    
        @staticmethod # known case of __new__
        def __new__(*args, **kwargs): # real signature unknown
            """ Create and return a new object.  See help(type) for accurate signature. """
            pass
    
        def __repr__(self, *args, **kwargs): # real signature unknown
            """ Return repr(self). """
            pass
    
    
    
    
    展开全文
  • 8 CAP_PROP_FORMAT cv.CAP_PROP_FORMAT VideoCapture :: retrieve()返回的Mat对象的格式。 9 CAP_PROP_MODE cv.CAP_PROP_MODE 特定于后端的值,指示当前的捕获模式。 10 CAP_PROP_BRIGHTNESS cv.CAP_...

    值                       C++                                    python                                       说明
    0    CAP_PROP_POS_MSEC            cv.CAP_PROP_POS_MSEC    视频文件的当前位置(以毫秒为单位)。
    1    CAP_PROP_POS_FRAMES        cv.CAP_PROP_POS_FRAMES    接下来要解码/捕获的帧的基于0的索引。
    2    CAP_PROP_POS_AVI_RATIO     cv.CAP_PROP_POS_AVI_RATIO    视频文件的相对位置:0 =电影的开始,1 =电影的结束。
    3    CAP_PROP_FRAME_WIDTH       cv.CAP_PROP_FRAME_WIDTH    视频流中帧的宽度。
    4    CAP_PROP_FRAME_HEIGHT     cv.CAP_PROP_FRAME_HEIGHT    视频流中帧的高度。
    5    CAP_PROP_FPS                          cv.CAP_PROP_FPS    帧率。
    6    CAP_PROP_FOURCC                  cv.CAP_PROP_FOURCC    编解码器的4个字符的代码。参见VideoWriter :: fourcc。
    7    CAP_PROP_FRAME_COUNT      cv.CAP_PROP_FRAME_COUNT    视频文件中的帧数。
    8    CAP_PROP_FORMAT                   cv.CAP_PROP_FORMAT    VideoCapture :: retrieve()返回的Mat对象的格式。
    9    CAP_PROP_MODE                       cv.CAP_PROP_MODE    特定于后端的值,指示当前的捕获模式。
    10    CAP_PROP_BRIGHTNESS        cv.CAP_PROP_BRIGHTNESS    图像的亮度(仅适用于支持该功能的相机)。
    11    CAP_PROP_CONTRAST            cv.CAP_PROP_CONTRAST    图像的对比度(仅适用于相机)。
    12    CAP_PROP_SATURATION         cv.CAP_PROP_SATURATION    图像饱和度(仅适用于相机)。
    13    CAP_PROP_HUE                        cv.CAP_PROP_HUE    图像的色相(仅适用于相机)。
    14    CAP_PROP_GAIN                       cv.CAP_PROP_GAIN    图像增益(仅适用于支持该功能的相机)。
    15    CAP_PROP_EXPOSURE            cv.CAP_PROP_EXPOSURE    曝光(仅适用于支持该功能的相机)。
    16    CAP_PROP_CONVERT_RGB    cv.CAP_PROP_CONVERT_RGB    布尔标志,指示是否应将图像转换为RGB。
    17    CAP_PROP_WHITE_BALANCE_BLUE_U    cv.CAP_PROP_WHITE_BALANCE_BLUE_U    目前不受支持。
    18    CAP_PROP_RECTIFICATION    cv.CAP_PROP_RECTIFICATION    立体摄像机的整流标志(注意:当前仅受DC1394 v 2.x后端支持)。
    19    CAP_PROP_MONOCHROME    cv.CAP_PROP_MONOCHROME    
    20    CAP_PROP_SHARPNESS         cv.CAP_PROP_SHARPNESS    
    21    CAP_PROP_AUTO_EXPOSURE    cv.CAP_PROP_AUTO_EXPOSURE    DC1394:由相机完成的曝光控制,用户可以使用此功能调整参考水平。
    22    CAP_PROP_GAMMA                  cv.CAP_PROP_GAMMA    
    23    CAP_PROP_TEMPERATURE     cv.CAP_PROP_TEMPERATURE    
    24    CAP_PROP_TRIGGER    cv.CAP_PROP_TRIGGER    
    25    CAP_PROP_TRIGGER_DELAY    cv.CAP_PROP_TRIGGER_DELAY    
    26    CAP_PROP_WHITE_BALANCE_RED_V    cv.CAP_PROP_WHITE_BALANCE_RED_V    
    27    CAP_PROP_ZOOM                     cv.CAP_PROP_ZOOM    
    28    CAP_PROP_FOCUS                   cv.CAP_PROP_FOCUS    
    29    CAP_PROP_GUID                      cv.CAP_PROP_GUID    
    30    CAP_PROP_ISO_SPEED           cv.CAP_PROP_ISO_SPEED    
    32    CAP_PROP_BACKLIGHT           cv.CAP_PROP_BACKLIGHT    
    33    CAP_PROP_PAN                        cv.CAP_PROP_PAN    
    34    CAP_PROP_TILT                        cv.CAP_PROP_TILT    
    35    CAP_PROP_ROLL                      cv.CAP_PROP_ROLL    
    36    CAP_PROP_IRIS                        cv.CAP_PROP_IRIS    
    37    CAP_PROP_SETTINGS    cv.CAP_PROP_SETTINGS    弹出视频/摄像机过滤器对话框(注意:当前仅DSHOW后端支持。属性值将被忽略)
    38    CAP_PROP_BUFFERSIZE        cv.CAP_PROP_BUFFERSIZE    
    39    CAP_PROP_AUTOFOCUS        cv.CAP_PROP_AUTOFOCUS    
    40    CAP_PROP_SAR_NUM             cv.CAP_PROP_SAR_NUM    样本长宽比:num / den(数字)
    41    CAP_PROP_SAR_DEN              cv.CAP_PROP_SAR_DEN    样品长宽比:num / den(den)
    42    CAP_PROP_BACKEND             cv.CAP_PROP_BACKEND    当前后端(枚举VideoCaptureAPI)。只读属性。
    43    CAP_PROP_CHANNEL              cv.CAP_PROP_CHANNEL    视频输入或频道号(仅适用于支持的摄像机)
    44    CAP_PROP_AUTO_WB             cv.CAP_PROP_AUTO_WB    启用/禁用自动白平衡
    45    CAP_PROP_WB_TEMPERATURE    cv.CAP_PROP_WB_TEMPERATURE    白平衡色温

    编号

    VideoCapture.get(0)      视频文件的当前位置(播放)以毫秒为单位
    VideoCapture.get(1)      基于以0开始的被捕获或解码的帧索引
    VideoCapture.get(2)      视频文件的相对位置(播放):0=电影开始,1=影片的结尾。
    VideoCapture.get(3)      在视频流的帧的宽度
    VideoCapture.get(4)      在视频流的帧的高度
    VideoCapture.get(5)      帧速率
    VideoCapture.get(6)      编解码的4字-字符代码
    VideoCapture.get(7)      视频文件中的帧数
    VideoCapture.get(8)      返回对象的格式
    VideoCapture.get(9)      返回后端特定的值,该值指示当前捕获模式
    VideoCapture.get(10)     图像的亮度(仅适用于照相机)
    VideoCapture.get(11)     图像的对比度(仅适用于照相机)
    VideoCapture.get(12)     图像的饱和度(仅适用于照相机)
    VideoCapture.get(13)     色调图像(仅适用于照相机)
    VideoCapture.get(14)     图像增益(仅适用于照相机)(Gain在摄影中表示白平衡提升)
    VideoCapture.get(15)     曝光(仅适用于照相机)
    VideoCapture.get(16)     指示是否应将图像转换为RGB布尔标志
    VideoCapture.get(17)     × 暂时不支持
    VideoCapture.get(18)     立体摄像机的矫正标注(目前只有DC1394 v.2.x后端支持这个功能)
     

    展开全文
  • //--- INITIALIZE VIDEOCAPTURE VideoCapture cap; // open the default camera using default API // cap.open(0); // OR advance usage: select any API backend int deviceID = 0; // 0 = open default camera ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,272
精华内容 12,908
关键字:

videocapture

友情链接: 舵机.rar