汕头网站建设制作报价,wordpress 手机访问不了,做网站公司费用,东莞阳光网站投诉平台操作系统#xff1a;ubuntu22.04 OpenCV版本#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言#xff1a;C11
算法描述
为视频捕获打开一个视频文件、捕获设备或 IP 视频流。 这是一个重载成员函数#xff0c;提供给用户方便使用。它与上述函数的不同之处仅在于它所… 操作系统ubuntu22.04 OpenCV版本OpenCV4.9 IDE:Visual Studio Code 编程语言C11
算法描述
为视频捕获打开一个视频文件、捕获设备或 IP 视频流。 这是一个重载成员函数提供给用户方便使用。它与上述函数的不同之处仅在于它所接受的参数。 参数与构造函数 VideoCapture(const String filename, int apiPreference CAP_ANY) 相同。
open() 函数是 OpenCV 中 VideoCapture 类的一个成员函数用于初始化视频捕获设备或打开一个视频文件。这个函数允许你在创建 VideoCapture 对象后动态地打开一个视频文件或设备。
函数原型1
virtual bool cv::VideoCapture::open
(const String filename,int apiPreference CAP_ANY
) 参数1
参数filename (const String) 描述指定要打开的视频文件路径或网络流地址。示例“video.mp4” 或 “rtsp://username:passwordipaddress:port/stream” apiPreference (int, 可选) 描述指定用于打开视频文件或设备的后端标识符。默认值CAP_ANY 表示任何可用的后端示例CAP_FFMPEG, CAP_V4L2, 等
返回值
如果文件已成功打开则返回 true。
该方法首先调用 VideoCapture::release() 来关闭已打开的文件或相机。
代码示例 #include iostream
#include opencv2/opencv.hppint main()
{// 创建一个 VideoCapture 对象cv::VideoCapture cap;// 定义视频文件路径std::string filename video.mp4;// 尝试打开视频文件if ( !cap.open( filename ) ){std::cout Failed to open video file: filename std::endl;return -1;}// 检查是否成功打开了视频文件if ( !cap.isOpened() ){std::cout Error opening video file: filename std::endl;return -1;}// 循环读取并显示视频帧while ( true ){// 从视频流中读取下一帧cv::Mat frame;cap frame; // 或者使用 cap.read(frame);// 如果没有读取到帧则退出循环if ( frame.empty() ){std::cout No frame grabbed. std::endl;break;}// 显示视频帧cv::imshow( Video Stream, frame );// 按 q 键退出循环if ( cv::waitKey( 1 ) q ){break;}}// 释放资源cap.release();cv::destroyAllWindows();return 0;
}函数原型2
为视频捕获打开一个视频文件、捕获设备或 IP 视频流并带有 API 偏好和参数。
这是一个重载成员函数提供给用户方便使用。它与上述函数的不同之处仅在于它所接受的参数。
params 参数允许指定额外的参数这些参数编码为成对的形式paramId_1, paramValue_1, paramId_2, paramValue_2, …。参见 cv::VideoCaptureProperties。
virtual bool cv::VideoCapture::open
(const String filename,int apiPreference,const std::vector int params
) 参数2
filename (const String) 描述指定要打开的视频文件路径或网络流地址。示例“video.mp4” 或 “rtsp://username:passwordipaddress:port/stream” apiPreference (int, 可选) 描述指定用于打开视频文件或设备的后端标识符。默认值CAP_ANY 表示任何可用的后端示例CAP_FFMPEG, CAP_V4L2, 等 params (const std::vector, 可选) 描述允许指定额外的参数这些参数编码为成对的形式paramId_1, paramValue_1, paramId_2, paramValue_2, …。默认值空向量表示不使用额外参数
返回值
类型bool 描述返回值指示是否成功初始化了视频捕获。如果返回 true则表示成功初始化如果返回 false则表示初始化失败。
函数原型3
为视频捕获打开一个摄像头。
这是一个重载成员函数提供给用户方便使用。它与上述函数的不同之处仅在于它所接受的参数。
参数与构造函数 VideoCapture(int index, int apiPreference CAP_ANY) 相同。
virtual bool cv::VideoCapture::open
(int index,int apiPreference CAP_ANY
) 参数3
index (int) 描述指定要打开的摄像头设备的索引。通常索引 0 表示系统中的第一个摄像头索引 1 表示第二个摄像头以此类推。示例0表示第一个摄像头设备1表示第二个摄像头设备 apiPreference (int, 可选) 描述指定用于打开视频设备的后端标识符。默认值CAP_ANY 表示任何可用的后端示例CAP_FFMPEG, CAP_V4L2, 等
返回值3
类型bool 描述返回值指示是否成功初始化了视频捕获。如果返回 true则表示成功初始化如果返回 false则表示初始化失败。
代码示例 #include iostream
#include opencv2/opencv.hppint main()
{// 创建一个 VideoCapture 对象cv::VideoCapture cap;// 定义摄像头设备索引int cameraIndex 0; // 第一个摄像头设备// 尝试打开摄像头设备if ( !cap.open( cameraIndex, cv::CAP_ANY ) ){std::cout Failed to open camera at index: cameraIndex std::endl;return -1;}// 检查是否成功打开了摄像头设备if ( !cap.isOpened() ){std::cout Error opening camera at index: cameraIndex std::endl;return -1;}// 循环读取并显示视频帧while ( true ){// 从视频流中读取下一帧cv::Mat frame;cap frame; // 或者使用 cap.read(frame);// 如果没有读取到帧则退出循环if ( frame.empty() ){std::cout No frame grabbed. std::endl;break;}// 显示视频帧cv::imshow( Camera Stream, frame );// 按 q 键退出循环if ( cv::waitKey( 1 ) q ){break;}}// 释放资源cap.release();cv::destroyAllWindows();return 0;
}函数原型4
为视频捕获打开一个摄像头带有 API 偏好和参数。
这是一个重载成员函数提供给用户方便使用。它与上述函数的不同之处仅在于它所接受的参数。
params 参数允许指定额外的参数这些参数编码为成对的形式paramId_1, paramValue_1, paramId_2, paramValue_2, …。参见 cv::VideoCaptureProperties。
virtual bool cv::VideoCapture::open
(int index,int apiPreference,const std::vector int params
)
参数4
index (int) 描述指定要打开的摄像头设备的索引。通常索引 0 表示系统中的第一个摄像头索引 1 表示第二个摄像头以此类推。示例0表示第一个摄像头设备1表示第二个摄像头设备 apiPreference (int, 可选) 描述指定用于打开视频设备的后端标识符。默认值CAP_ANY 表示任何可用的后端示例CAP_FFMPEG, CAP_V4L2, 等 params (const std::vector, 可选) 描述允许指定额外的参数这些参数编码为成对的形式paramId_1, paramValue_1, paramId_2, paramValue_2, …。默认值空向量表示不使用额外参数
返回值
类型bool 描述返回值指示是否成功初始化了视频捕获。如果返回 true则表示成功初始化如果返回 false则表示初始化失败。