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;
}

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

相关推荐
CoovallyAIHub2 分钟前
语音AI Agent编排框架!Pipecat斩获10K+ Star,60+集成开箱即用,亚秒级对话延迟接近真人反应速度!
深度学习·算法·计算机视觉
JVM跑得快24 分钟前
Python 基础语法 × Java 对比
人工智能
AI攻城狮30 分钟前
Kimi Bot + OpenClaw 完整配置指南:5 步实现本地 AI Agent 集成
人工智能·云原生·aigc
货拉拉技术1 小时前
货拉拉海豚平台-大模型推理加速工程化实践
人工智能·后端·架构
掘金安东尼1 小时前
国内大模型真实格局:用户规模 vs API调用量(v2026.3.6)
人工智能
前端一课2 小时前
OpenClaw 项目全面架构分析报告
前端·人工智能
小姐姐味道2 小时前
1万美金的账单,烧麻了!bull这个skills让数据推理质量更好,更省!
人工智能
苍何2 小时前
再见 Openclaw,桌面端 Agent 起飞了!
人工智能
雮尘2 小时前
让 AI Agent 高效并行开发的命令-git worktree
人工智能·git·agent
Ray Liang3 小时前
AI基于Spec开发是巨坑?
人工智能·架构设计·mindx