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

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

相关推荐
一切皆是因缘际会3 小时前
AI数字分身的底层原理:破解意识、自我与人格复刻的核心难题
大数据·人工智能·ai·架构
翔云1234563 小时前
vLLM全解析:定义、用途与竞品对比
人工智能·ai·大模型
ASKED_20193 小时前
KDD Cup 2026 腾讯算法广告大赛赛题解读: UNI-REC (统一序列建模与特征交叉)
人工智能
fpcc4 小时前
AI和大模型——Fine-tuning
人工智能·深度学习
爱问的艾文4 小时前
八周带你手搓AI应用-Day4-赋予你的AI“记忆力”
人工智能
ACP广源盛139246256734 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
向量引擎4 小时前
向量引擎接入 GPT Image 2 和 deepseek v4:一个 api key 把热门模型串起来,开发者终于不用深夜修接口了
人工智能·gpt·计算机视觉·aigc·api·ai编程·key
努力努力再努力FFF4 小时前
医生对AI辅助诊断感兴趣,作为临床人员该怎么了解和学习?
人工智能·学习
AI医影跨模态组学4 小时前
如何将纵向MRI深度学习特征与局部晚期直肠癌新辅助放化疗后的免疫微环境建立关联,并解释其对pCR及预后的机制
人工智能·深度学习·论文·医学·医学影像·影像组学
Empty-Filled4 小时前
AI生成测试用例功能怎么测:一个完整实战案例
网络·人工智能·测试用例