OpenCV使用cv:VideoCapture类打开和播放视频文件或视频流。
视频捕捉视频捕捉;//创建一个空对象实例//打开视频文件或流媒体VideoCaptureconstStringfilename,intapiPreference=CAP_ANY;//打开视频设备VideoCaptureintindex,intapiPreference=CAP_ANY;相应的参数可以让您直接打开要调用的视频文件或摄像机。
上述构造函数中参数的含义如下
filename代表要打开的视频文件的名称或网络摄像机的地址。
索引表示板载视频设备的编号,从0开始。
apiPreference,表示后端如何获取视频流,可以是cv:CAP_FFMPEG、cv:CAP_IMAGES、cv:CAP_DSHOW等,如下表所示。默认为0,表示自动检测获取视频流的方式。
如何从cv:VideoCapture类获取视频流
方法
价值
意义
CAP_ANY
0
自动检测视频流的格式。
CAP_V4L/CAP_V4L2
200
从Linux上的视频设备获取视频流
CAP_火线
300
要从IEEE1394视频采集卡设备获取视频数据,必须在编译时添加WITH_1394选项。
CAP_DSHOW
700
要从捕获卡获取视频流,请使用Windowsdirectshow组件。编译时必须添加WITH_DIRECTX选项。
CAP_PVAPI
800
从ProsilicaGigE机器视觉相机获取视频。GigE相机采用全局电子快门来提高高速运动物体的成像并使用千兆以太网来传输数据,广泛应用于智能交通和机器视觉领域。编译时必须添加WITH_PVAPI选项。
CAP_OPENNI
900
从Kinect摄像头获取数据。Kinect是微软公司开发的一款3D体感摄像头。编译时必须添加WITH_OPENNI选项。
CAP_XIAPI
1000
这是XIMEA公司生产的USB30相机。编译时必须添加WITH_XIMEA选项。
CAP_AVFOUNDATION
1200
iOS系统上的AVFoundation框架,用于获取视频流。
CAP_GIGANETIX
1300
Smartek的Giganetix机器视觉相机。
CAP_MSMF
1400
要获取数据,必须使用MicrosoftMediaFoundation并在编译时添加WITH_MSMF选项。MicrosoftMediaFoundation是Microsoft的下一代多媒体库,取代DirectShow。
CAP_INTELPERC
1500
英特尔实感深度摄像头从图像中获取深度数据。
CAP_GSTREAMER
1800
我们使用GStreamer框架来获取数据。GStreamer框架广泛应用于嵌入式设备中。编译时必须添加WITH_GSTREAMER选项。
CAP_FFMPEG
1900年
通过ffmpeg库打开和录制视频流。ffmpeg库具有强大的多媒体处理能力,可以完成视频采集、格式转换和视频采集。打开IP网络摄像机通常需要ffmpeg库的支持。编译时必须添加WITH_FFMPEG选项。
CAP_OPENCV_MJPEG
2200
以MotionJPEG格式捕获视频
CAP_INTEL_MFX
2300
使用IntelMediaSDK进行视频解码,可以充分利用IntelCPU集成显卡的GPU资源,显着降低视频解码时的CPU占用率。您需要添加WITH_MFX选项。
CAP_XINE
2400
Linux上使用XINE获取视频数据
上表列出了多种获取视频流的方法,但并未提供全部。cv:创建VideoCapture对象时,您通常可以使用默认的自动检测方法打开视频流。对于各种编码的视频文件或者直播流媒体,系统使用ffmpeg库来打开它们。
下面是使用cv:VideoCapture打开各种视频流的示例
1打开视频文件
VideoCapturecapture;//初始化VideoCapture实例Captureopen34;//34打开视频文件。2打开相机电源
VideoCaptureCapture0;//打开ID为0的摄像头capturerelease;//关闭摄像头3并打开网络直播流媒体
VideoCaptureCapture34;CAP_INTEL_MFX;使用RTSP协议打开网络摄像机。这里摄像机的登录名和密码都是admin,IP地址是192168064,这里使用IntelMediaSDK进行解码。视频可以使用Intel集成显卡资源,可以加快视频解码速度并降低CPU占用率。
4使用GStreamer打开视频
VideoCaptureCapture34;CAP_GSTREAMER;您可以使用GStreamer框架打开视频流。这里可以充分利用GPU资源辅助解码,提高解码速度,降低CPU占用率。此选项通常用在Nvidia的Jetson系列设备上来解码实时视频流。编译OpenCV时,需要添加WITH_GSTREAMER选项。
要在Linux上安装OpenCV,首先需要确保安装了CMake、GCC和其他必需的依赖项。
然后,从OpenCV下载源代码并解压。
在终端中,导航到解压缩的目录并创建一个构建文件夹。
进入build文件夹后,运行cmake命令配置编译选项。然后使用make命令编译并构建OpenCV。
最后,使用sudomakeinstall命令以管理员权限安装OpenCV。
确保安装完成后,您可以将OpenCV库引入到您的代码中以使用其功能。
在OpenCV中,可以通过设置视频编码器的参数来设置MJPG的帧率参数。
首先,您需要创建一个VideoWriter对象并将编码器类型指定为MJPG。
然后使用set-,函数设置帧率参数。示例writer-set-cv2-CAP_PROP_FPS,30,将帧速率设置为30帧/秒。
最后,我们使用write-,函数将帧写入视频文件。您可以通过以这种方式设置帧速率参数来控制MJPG视频的帧速率。请记住,实际帧速率可能受到硬件性能和视频文件大小的。
配置vs2010时,必须按项目配置,不能像vs2008那样统一配置。假设opencv安装路径为D:ProgramFiles,系统为32位。1-项目名称-gt;VC++目录-gt;包含目录和库目录D:ProgramFilesOpenCV2-3-1uildincludeD:ProgramFilesOpenCV2-3-1uildincludeopencvD:ProgramFilesOpenCV2-3-1uildincludeopencv2
D:ProgramFilesOpenCV2-3-1uildx86vc10lib2-环境变量设置将以下路径添加到环境变量中。
D:ProgramFilesOpenCV2-3-1uildx86vc10inD:ProgramFilesOpenCV2-3-1uildcommonbbia32vc103-请记住在构建项目后添加所需的任何其他依赖项。
项目名称->属性->链接器->输入。
本篇文章为大家介绍的无法打开文件opencv,以及无法打开文件opencv_world452d.lib相应的内容,就介绍到这里了,希望对各位网友有所帮助。
No Comment