• OpenCV类VideoCapture构造函数中参数apiPreference的可选值及意义


    OpenCV类VideoCapture构造函数中参数apiPreference的可选值及意义

    OpenCV的类VideoCapture有三种构造函数,原型如下。

    C++:

    cv::VideoCapture::VideoCapture	()	
    cv::VideoCapture::VideoCapture	(const String & filename,int apiPreference = CAP_ANY )	
    cv::VideoCapture::VideoCapture	(int index,int apiPreference = CAP_ANY )
    
    • 1
    • 2
    • 3

    Python:

    <VideoCapture object>	=	cv.VideoCapture()
    <VideoCapture object>	=	cv.VideoCapture(filename[, apiPreference]	)
    <VideoCapture object>	=	cv.VideoCapture(index[, apiPreference]	)
    
    • 1
    • 2
    • 3

    从上面的原型可以看出,第二种和第三种原型都有参数apiPreference,它用于选择视频的API接口规范。

    参数apiPreference的可选值比较多,官方文档大家可参考下面的链接:
    https://docs.opencv.org/4.1.2/d4/d15/group__videoio__flags__base.html#ga023786be1ee68a9105bf2e48c700294d

    这里昊虹君根据官方文档的描述,给大家介绍下各可选值的意义。

    CAP_ANY
    Python: cv.CAP_ANY

    CAP_ANY代表自动检测视频文件的API接口规范。

    CAP_VFW
    Python: cv.CAP_VFW

    官方描述:Video For Windows (obsolete, removed).
    CAP_VFW代表视频文件的API接口规范为Windows视频文件规范,不过这个规范已经被OpenCV淘汰废除。

    CAP_V4L
    Python: cv.CAP_V4L

    官方描述:V4L/V4L2 capturing support.
    V4L2是Video for linux2的简称,为linux中关于视频设备的内核驱动。

    CAP_V4L2
    Python: cv.CAP_V4L2

    CAP_V4L2和CAP_V4L 的意义一样。

    CAP_FIREWIRE
    Python: cv.CAP_FIREWIRE

    官方描述:IEEE 1394 drivers.
    CAP_FIREWIR代表视频文件的API接口规范为IEEE1394驱动规范。IEEE1394接口是苹果公司开发的串行标准,又称火线接口(firewire。
    IEEE1394支持外设热插拔,可为外设提供电源,省去了外设自带的电源,能连接多个不同设备,支持同步数据传输。

    CAP_FIREWARE
    Python: cv.CAP_FIREWARE

    CAP_FIREWARE和CAP_FIREWIRE的意义一样。

    CAP_IEEE1394
    Python: cv.CAP_IEEE1394

    CAP_IEEE1394和CAP_FIREWIRE的意义一样。

    CAP_DC1394
    Python: cv.CAP_DC1394

    CAP_DC1394和CAP_FIREWIRE的意义一样。

    CAP_CMU1394
    Python: cv.CAP_CMU1394

    CAP_CMU1394和CAP_FIREWIRE的意义一样。

    CAP_QT
    Python: cv.CAP_QT

    官方描述:QuickTime (obsolete, removed).
    QuickTime是苹果公司开发的多媒体技术架构,不过这是已经淘汰废除的参数取值。

    CAP_UNICAP
    Python: cv.CAP_UNICAP

    官方描述:Unicap drivers (obsolete, removed) .
    CAP_UNICAP是一个已经淘汰废除的参数取值,具体Unicap drivers是个什么东西,昊虹君也不知道。有知道的朋友可以给昊虹君说一下。

    CAP_DSHOW
    Python: cv.CAP_DSHOW

    官方描述:DirectShow (via videoInput).
    CAP_DSHOW的详细意义请参看本博文的原版,链接如下:
    https://www.hhai.cc/thread-132-1-1.html

    CAP_PVAPI
    Python: cv.CAP_PVAPI

    官方描述:PvAPI, Prosilica GigE SDK.
    Prosilica是一家加拿大的公司,是工业相机世界领导者,GigE是他制定的。GigE用来实现在机器视觉领域利用千兆以太网接口进行图像的高速传输。所以这个参数的意义是按工业相机GigE的标准获取视频。

    CAP_OPENNI
    Python: cv.CAP_OPENNI

    官方描述:OpenNI (for Kinect).
    OpenNI(开放自然交互)是一个多语言,跨平台的框架,它定义了编写应用程序,并利用其自然交互的API。OpenNI的主要目的是要形成一个标准的API,来搭建视觉和音频传感器与视觉和音频感知中间件通信的桥梁。
    Kinect是微软在2009年6月2日的E3大展上,正式公布的XBOX360体感周边外设。

    CAP_OPENNI2
    Python: cv.CAP_OPENNI2

    官方描述:OpenNI2 (for Kinect).
    明白了上面CAP_OPENNI 的意义,就应该明白这个的意义了,所以就不多说了。

    CAP_OPENNI_ASUS
    Python: cv.CAP_OPENNI_ASUS

    官方描述:OpenNI (for Asus Xtion).
    OpenNI(开放自然交互)是一个多语言,跨平台的框架,它定义了编写应用程序,并利用其自然交互的API。OpenNI的主要目的是要形成一个标准的API,来搭建视觉和音频传感器与视觉和音频感知中间件通信的桥梁。
    Asus Xtion是华硕公司的深度感知摄像头及其相关技术。

    CAP_OPENNI2_ASUS
    Python: cv.CAP_OPENNI2_ASUS

    官方描述:OpenNI2 (for Asus Xtion and Occipital Structure sensors).
    明白了上面CAP_OPENNI_ASUS 的意义,就知道了这个的意义了,所以就不多说了。

    CAP_ANDROID
    Python: cv.CAP_ANDROID

    官方描述:Android - not used.
    为安卓系统保留的参数,目前未启用。

    CAP_XIAPI
    Python: cv.CAP_XIAPI

    官方描述:XIMEA Camera API.
    XIMEA 是德国的一家公司,专业生成工业相机。

    CAP_AVFOUNDATION
    Python: cv.CAP_AVFOUNDATION

    官方描述:AVFoundation framework for iOS (OS X Lion will have the same API).
    AVFoundation是苹果在iOS和OS X系统中用于处理基于时间的媒体数据的框架。

    CAP_GIGANETIX
    Python: cv.CAP_GIGANETIX

    官方描述:Smartek Giganetix GigEVisionSDK.
    Smartek是一家生产工业相机的德国公司,Giganetix是其生产的一种工业相机的名称,GigEVisionSDK是这款工业相机的SDK。

    CAP_MSMF
    Python: cv.CAP_MSMF

    官方描述:Microsoft Media Foundation (via videoInput).
    Microsoft Media Foundation是微软公司的新一代多媒体开发平台,用以取代原来的Directshow,为了满足现在多媒体播放的高清晰,高品质,颜色管理,以及充分利用硬件加速等功能而建立的新一代开发平台。

    CAP_WINRT
    Python: cv.CAP_WINRT

    官方描述:Microsoft Windows Runtime using Media Foundation.
    微软实时窗口,技术基础是Microsoft Media Foundation 。

    CAP_INTELPERC
    Python: cv.CAP_INTELPERC

    官方描述:RealSense (former Intel Perceptual Computing SDK).
    Intel公司的RealSense深度摄像头产品,就是之前的英特尔感知计算SDK。

    CAP_REALSENSE
    Python: cv.CAP_REALSENSE

    官方描述:Synonym for CAP_INTELPERC.
    CAP_REALSENSE 和 CAP_INTELPERC的意义一样。

    CAP_GPHOTO2
    Python: cv.CAP_GPHOTO2

    官方描述:gPhoto2 connection.
    gPhoto2是一个免费软件,提供了在类Unix系统上通过终端来控制数码相机的功能。

    CAP_GSTREAMER
    Python: cv.CAP_GSTREAMER

    官方描述:GStreamer.
    Gstreamer是一个支持Windows,Linux,Android, iOS的跨平台的多媒体框架,应用程序可以通过管道(Pipeline)的方式,将多媒体处理的各个步骤串联起来,达到预期的效果。每个步骤通过元素(Element)基于GObject对象系统通过插件(plugins)的方式实现,方便了各项功能的扩展。

    CAP_FFMPEG
    Python: cv.CAP_FFMPEG

    官方描述:Open and record video file or stream using the FFMPEG library.
    使用FFMPEG library找开视频文件或记录视频流。

    CAP_IMAGES
    Python: cv.CAP_IMAGES

    官方描述:OpenCV Image Sequence (e.g. img_%02d.jpg).
    打开OpenCV的序列图像。

    CAP_ARAVIS
    Python: cv.CAP_ARAVIS

    官方描述:Aravis SDK.
    Aravis视觉平台是一款是基于Glib/Gobject的库,用于使用工业摄像机进行视频采集。目前,它实现了工业相机使用的千兆以太网和USB3.0协议。它还提供了基本的以太网摄像机模拟器和简单的视频查看器。用户可以通过我们现在常用的Linux操作系统来实现对于工业相机的操作。

    CAP_OPENCV_MJPEG
    Python: cv.CAP_OPENCV_MJPEG

    官方描述:Built-in OpenCV MotionJPEG codec.
    给OpenCV嵌入MotionJPEG编解码器。

    CAP_INTEL_MFX
    Python: cv.CAP_INTEL_MFX

    官方描述:Intel MediaSDK.
    英特尔媒体SDK。

    CAP_XINE
    Python: cv.CAP_XINE

    官方描述:XINE engine (Linux).
    XINE engine是什么鬼?昊虹君也不知道,有知道的朋友可以给昊虹君说一说。

    总结一下,这里面绝大部分都是与具体的某个规范有关的可选值,除去第一个自动检测,昊虹君觉得有两个值得注意,具体是哪两个,请大家参看本博文的原版,链接如下:
    https://www.hhai.cc/thread-132-1-1.html

  • 相关阅读:
    【js】【爬虫】fetch + json-server 快速搭建爬虫服务器环境及数据后续处理(突破session缓存大小限制)
    R语言安装与配置
    Java全栈开发第一阶段--01.Java语言基础(Java语言概述)
    使用docker搭建owncloud && Harbor && 构建镜像
    数据库多表查询 联合查询 增删改查
    [论文笔记]DSSM
    如何看待越来越多人报名参加软考?
    BIRCH算法全解析:从原理到实战
    40 行 Python 代码,写一个 CPU
    ideal连接mysql数据库时发生如下报错怎么办?
  • 原文地址:https://blog.csdn.net/wenhao_ir/article/details/127845276