OpenCV 视频文件读取

一、知识点
1、VideoCapture类

(1)、用于从视频文件、摄像机或图像序列中捕获视频帧。

(2)、构造函数 VideoCapture(const String & filename, int apiPreference = CAP_ANY)

a、filename可以是视频文件的名称(例如"video.avi"),可以是图像序列(例如"img%02.jpg", 它将读取"img00.jpg"、"img01.jpg"、"img02.jpg"等),还可以是URL。

b、apiPreference是实际执行捕获的API后端,VideoCaptureAPIs枚举值,如: CAP_ANY、CAP_FFMPEG、CAP_IMAGES等。

(3)、构造函数 VideoCapture(int index, int apiPreference = CAP_ANY)

a、打开摄像头进行视频拍摄。

b、index是视频捕获设备的索引,默认摄像头传递0。

c、apiPreference是实际执行捕获的API后端,VideoCaptureAPIs枚举值,如: CAP_ANY、CAP_FFMPEG、CAP_IMAGES等。

(4)、成员函数 virtual bool read(OutputArray image)

a、抓取、解码并返回一个视频帧。

b、image为返回的视频帧。 如果没有抓取任何帧,则图像为空,返回false。

(5)、成员函数 virtual void release();

a、关闭视频文件或捕获设备。

二、示例代码

cpp 复制代码
#include <iostream>
#include <opencv2/opencv.hpp>


int main()
{
    cv::VideoCapture capture("../images/video.mp4");
    cv::Mat frame;

    while (true)
    {
        capture.read(frame);
        if (frame.empty())
        {
            break;
        }

        //此处可以对frame做各种处理...

        cv::imshow("frame sequence", frame);

        int c = cv::waitKey(1);
        if (c == 27)
        {
            break;
        }
    }

    capture.release();
    
    system("pause");
    return 0;
}

++下一章,讲解视频处理与保存。++

相关推荐
bmxy小明同学几秒前
2026-09-18-embedding选型
人工智能
superxxd3 分钟前
基于rust的多平台原生GIS引擎
人工智能·物联网·实时音视频
就叫你天选之人啦5 分钟前
安装torch+vllm+flash_attn的prompt
人工智能·pytorch·python
音视频牛哥12 分钟前
从 LLM、VLA、LLA、SLIM 到实时音视频感知底座:具身智能真正需要的不只是大模型
人工智能·llm·机器人视觉·slam·vla·多模态感知·机器人音视频
code2cat20 分钟前
【随笔】从聊天到调用工具:理解MCP在AI应用中的位置
java·人工智能
东离与糖宝23 分钟前
元数据知识库
人工智能
我是小邵33 分钟前
长对话先收口:用“工作记忆 vs 长期记忆“管理 AI 上下文
人工智能·ai·llm·长期记忆·中间迷失·上下文收口
广州宏帝箱包34 分钟前
出口背包的包装有没有防潮、防摔的加固处理
大数据·人工智能
jimmyleeee35 分钟前
大模型安全之二十八:Agent 权限与策略控制:从最小权限到多层监督
人工智能·安全
仙魁XAN40 分钟前
【WorkBuddy·基础入门】第 8 篇 :从材料到汇报:用 WorkBuddy 制作第一份 PPT
人工智能·workbuddy·workbuddy 基础入门·ppt 自动生成