OpenCV摄像头捕获、视频读取与保存

在计算机视觉和图像处理领域,视频处理是非常常见的任务。无论是实时监控、视频分析,还是数据采集与存储,OpenCV 都提供了简单易用的接口。本文将详细介绍如何使用 OpenCV C++ 实现以下功能:

摄像头捕获与显示:利用摄像头实时获取视频流并显示到窗口上。

实时视频保存:将捕获的视频实时写入文件。

视频读取与播放:从保存的视频文件中读取并显示视频内容。

下面我们将逐步讲解这些操作的原理、主要函数及示例代码。 过多API参考官方文档opencv API文档

1. 摄像头捕获与显示

利用 OpenCV 中的 cv::VideoCapture 类,可以方便地从摄像头(或其它视频源)中读取视频帧。常用步骤如下:

创建 VideoCapture 对象:通过设备索引(例如 0 表示默认摄像头)打开摄像头。

循环读取视频帧:使用 read 或 >> 操作符获取每一帧图像。

显示视频帧:利用 imshow 函数在窗口中实时显示视频内容。

退出条件:一般通过检测按键(例如 ESC 键)实现退出循环。

#include

#include

using namespace cv;

using namespace std;

int main() {

// 打开默认摄像头(设备索引为 0)

VideoCapture cap(0);

if (!cap.isOpened()) {

cerr << "无法打开摄像头!" << endl;

return -1;

}

// 设置摄像头分辨率(可选)

cap.set(CAP_PROP_FRAME_WIDTH, 640);

cap.set(CAP_PROP_FRAME_HEIGHT, 480);

Mat frame;

while (true) {

// 读取当前帧

cap >> frame;

if (frame.empty()) {

cerr << "读取帧失败!" << endl;

break;

}

// 显示当前帧

imshow("摄像头实时视频", frame);

Copyright © 2088 0762网游争霸活动中心 All Rights Reserved.
友情链接