学生作业网站,wordpress门户网站,网站的规划,wordpress 别名排序操作系统#xff1a;ubuntu22.04 OpenCV版本#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言#xff1a;C11
算法描述
用于从视频文件、图像序列或摄像头捕获视频的类。 该类提供了用于从摄像头捕获视频或读取视频文件和图像序列的 C API。 以下是该类的使用方法ubuntu22.04 OpenCV版本OpenCV4.9 IDE:Visual Studio Code 编程语言C11
算法描述
用于从视频文件、图像序列或摄像头捕获视频的类。 该类提供了用于从摄像头捕获视频或读取视频文件和图像序列的 C API。 以下是该类的使用方法
#include opencv2/core.hpp
#include opencv2/videoio.hpp
#include opencv2/highgui.hpp
#include iostream
#include stdio.h
using namespace cv;
using namespace std;
int main(int, char**)
{Mat frame;//--- INITIALIZE VIDEOCAPTUREVideoCapture cap;// open the default camera using default API// cap.open(0);// OR advance usage: select any API backendint deviceID 0; // 0 open default cameraint apiID cv::CAP_ANY; // 0 autodetect default API// open selected camera using selected APIcap.open(deviceID, apiID);// check if we succeededif (!cap.isOpened()) {cerr ERROR! Unable to open camera\n;return -1;}//--- GRAB AND WRITE LOOPcout Start grabbing endl Press any key to terminate endl;for (;;){// wait for a new frame from camera and store it into framecap.read(frame);// check if we succeededif (frame.empty()) {cerr ERROR! blank frame grabbed\n;break;}// show live and wait for a key with timeout long enough to show imagesimshow(Live, frame);if (waitKey(5) 0)break;}// the camera will be deinitialized automatically in VideoCapture destructorreturn 0;
}注意 在 C API 中使用黑盒结构 CvCapture 代替 VideoCapture。
(C) 使用 VideoCapture 接口的基本示例可以在 OPENCV_SOURCE_CODE/samples/cpp/videocapture_starter.cpp 找到。(Python) 使用 VideoCapture 接口的基本示例可以在 OPENCV_SOURCE_CODE/samples/python/video.py 找到。(Python) 多线程视频处理的示例可以在 OPENCV_SOURCE_CODE/samples/python/video_threaded.py 找到。(Python) 展示 Video4Linux2 后端部分特性的 VideoCapture 示例可以在 OPENCV_SOURCE_CODE/samples/python/video_v4l2.py 找到。
构造函数1
默认构造函数
cv::VideoCapture::VideoCapture ( ) 构造函数2
使用 API 优先级打开视频文件、捕获设备或 IP 视频流以进行视频捕获。 这是一个重载成员函数为方便而提供。它与上述函数的不同之处仅在于它接受的参数
cv::VideoCapture::VideoCapture
(const String filename,int apiPreference CAP_ANY
) 参数2
参数filename 它可以是 视频文件的名称例如video.avi图像序列例如img_%02d.jpg这将读取如 img_00.jpg、img_01.jpg、img_02.jpg 等样的样本视频流的 URL例如protocol://host:port/script_name?script_params|auth在使用 GStreamer 作为后端的情况下GStreamer pipeline 字符串gst-launch 工具格式。请注意每个视频流或 IP 摄像头馈送都有自己的 URL 方案。请参考源流的文档以了解正确的 URL。 参数apiPreference 首选的捕获 API 后端。可以在多个可用的情况下强制使用特定的读取器实现例如cv::CAP_FFMPEG 或 cv::CAP_IMAGES 或 cv::CAP_DSHOW。
构造函数3
使用 API 优先级和参数打开视频文件、捕获设备或 IP 视频流以进行视频捕获。 这是一个重载成员函数为方便而提供。它与上述函数的不同之处仅在于它接受的参数。params 参数允许指定以成对形式编码的额外参数.paramId_1, paramValue_1, paramId_2, paramValue_2, …。参见 [cv::VideoCaptureProperties](https://docs.opencv.org/4.9.0/d4/d15/group__videoio__flags__base.html#gaeb8dd9c89c10a5c63c139bf7c4f5704d)。
cv::VideoCapture::VideoCapture
(const String filename,int apiPreference,const std::vector int params
) 构造函数4
打开摄像头以进行视频捕获。 这是一个重载成员函数为方便而提供。它与上述函数的不同之处仅在于它接受的参数。 cv::VideoCapture::VideoCapture
(int index,int apiPreference CAP_ANY
) 参数4
参数index 要打开的视频捕获设备的 ID。为了使用默认后端打开默认摄像头只需传递 0。为了向后兼容在 apiPreference 为 CAP_ANY 时使用 camera_id domain_offset (CAP_*) 是有效的参数apiPreference 首选的捕获 API 后端。可以在多个可用的情况下强制使用特定的读取器实现例如cv::CAP_DSHOW 或 cv::CAP_MSMF 或 cv::CAP_V4L。
构造函数5
使用 API 优先级和参数打开摄像头以进行视频捕获。 这是一个重载成员函数为方便而提供。它与上述函数的不同之处仅在于它接受的参数。params 参数允许指定以成对形式编码的额外参数paramId_1, paramValue_1, paramId_2, paramValue_2, …。参见 cv::VideoCaptureProperties。 cv::VideoCapture::VideoCapture
(int index,int apiPreference,const std::vector int params
)