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 )

Python:

<VideoCapture object>  =  cv.VideoCapture()
<VideoCapture object> =  cv.VideoCapture(filename[, apiPreference]   )
<VideoCapture object> =  cv.VideoCapture(index[, apiPreference]  )

从上面的原型可以看出,第二种和第三种原型都有参数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

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

  1. php构造函数里抛出异常_php-在类的构造函数中返回值

    php-在类的构造函数中返回值 到目前为止,我有一个带有构造函数的29447791671682017201728类 public function __construct ($identifier = ...

  2. C++对象模型4——多重继承的对象内存模型、vptr与vtbl的创建与重置的时机、不要在含有虚函数的类的构造函数中调用memset

    一.多重继承的对象内存模型 class Base1 { public:virtual void f() {cout << "base1::f()" << e ...

  3. PHP调用类函数定义位置,OOP PHP – 如何有选择地调用类的构造函数中定义的特定方法?...

    我正在学习用OOP方式编写Wordpress Multisite,因为我现在对OOP很新,我现在处于一种我似乎无法自己解决的问题. 具体来说,我正在创建一些类来使用OOP方法创建管理页面(在网络和子网 ...

  4. Bitmap类getPixels()方法中参数stride理解

    转载自:http://blog.csdn.net/jie_qing/article/details/7259520 在学习Graphics中遇到位图(Bitmap)中getPixels()方法,对该方 ...

  5. java调用构造函数中某一个值_Java如何在枚举的构造函数中调用另一个枚举值

    Java中的枚举(enum)是一种存储一组常量值的数据类型.您可以使用枚举来存储固定值,例如一周中的天,一年中的月等. 您可以使用关键字 enum定义枚举,后跟枚举的名称为-enum Days { S ...

  6. numpy.max中参数axis的取值问题

    np.max(a, axis=None, out=None, keepdims=False) 求序列的最值 最少接收一个参数 axis:默认为列方向,即axis=0 一般为二维数组,用来表示行和列的信 ...

  7. OpenCV中使用类VideoCapture加载视频和打开摄像头

    先直接上示例代码,然后对代码进行讲解. #!/usr/bin/env python # -*- coding: utf-8 -*- # 图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 248 ...

  8. C++中基类与派生类的构造函数和析构函数

    1.Cpp中的基类与派生类的构造函数 基类的成员函数可以被继承,可以通过派生类的对象访问,但这仅仅指的是普通的成员函数,类的构造函数不能被继承.构造函数不能被继承是有道理的,因为即使继承了,它的名字和 ...

  9. 基类成员的public访问权限在派生类中变为_C++ 派生类的构造函数(学习笔记:第7章 06)...

    派生类的构造函数[1] 默认情况 基类的构造函数不被继承; 派生类需要定义自己的构造函数. C++11规定 可用using语句继承基类构造函数. 但是只能初始化从基类继承的成员. 派生类新增成员可以通 ...

最新文章

  1. java模拟器未载入,由于“活页夹线程池”,应用程序未在模拟器上运行
  2. python篇第6天【数据类型】
  3. android mysql 图片_android sqlite添加图片到数据库
  4. LeetCode 1201. 丑数 III(最小公倍数+二分查找)
  5. Spring组件之一 JDBC Template
  6. SAP License:SAP S/4 HANA模块功能介绍
  7. 求二叉树左右子树高度差_LeetCode刷题实战110:平衡二叉树
  8. Spring IOC(依赖注入的三种方式)
  9. 网站建设中常见的21个漏洞及预防方法
  10. c3p0数据库连接池使用步骤c3p0配置报错处理
  11. matlab二次求导函数,原来可以这样求导函数,再复杂的函数求导不再话下!
  12. linux node安装菜鸟教程,Docker 安装 Node.js
  13. 用excel制作,出入库信息管理表,动态库存表
  14. fat32文件系统格式在linux,FAT32文件系统的存储组织结构(一)
  15. 模型及贴图的细节及优化
  16. 钢铁侠材质制作——3、基础光照模型实现
  17. 创建一个简单的workflow工作流(WF4)
  18. Ubuntu安装Google Chrome,报NSS version的错误
  19. 【图像语义分割】Large Kernel Maters--Improved Semantic Segmentation by Global ConvNet
  20. 微信小程序源码反编译

热门文章

  1. 带动画的点击可展开TextView
  2. 神经网络中的Attention机制 pytorch 代码
  3. 50个怪异的世界纪录
  4. 神经网络:GRU基础学习
  5. 机械师创物者16评测 怎么样
  6. 计算机网络的发展与基本概念
  7. python用动态规划求最短路径_动态规划之最短路径问题详解
  8. Redis(一)数据类型、常用命令
  9. git reject 报错
  10. React v6路由表