C++结合OpenCV实现视频播放器

1. 导入OpenCV库和相关头文件。

#include <opencv2/opencv.hpp>

#include <iostream>

2. 创建一个窗口,用于显示视频帧。

cv::namedWindow("Video Player", cv::WINDOW_NORMAL);

3. 打开视频文件。

cv::VideoCapture cap("video.mp4"); // 替换为你的视频文件路径

if (!cap.isOpened()) {

    std::cout << "Error opening video file" << std::endl;

    return -1;

}

4. 循环读取视频帧并显示在窗口中。

while (true) {

    cv::Mat frame;

    cap >> frame; // 读取一帧图像

    if (frame.empty()) {

        break; // 如果读取失败,跳出循环

    }

    cv::imshow("Video Player", frame); // 显示图像

    if (cv::waitKey(30) >= 0) { // 等待用户按键,如果按下任意键则退出循环

        break;

    }

}

5. 释放资源并关闭窗口。

cap.release(); // 释放视频文件资源

cv::destroyAllWindows(); // 关闭所有窗口

完整的代码如下所示:

#include <opencv2/opencv.hpp>

#include <iostream>

 

int main()

{

    cv::namedWindow("Video Player", cv::WINDOW_NORMAL);

    cv::VideoCapture cap("video.mp4"); // 替换为你的视频文件路径

    if (!cap.isOpened())

{

        std::cout << "Error opening video file" << std::endl;

        return -1;

    }

    while (true) {

        cv::Mat frame;

        cap >> frame; // 读取一帧图像

        if (frame.empty()) {

            break; // 如果读取失败,跳出循环

        }

        cv::imshow("Video Player", frame); // 显示图像

        if (cv::waitKey(30) >= 0) { // 等待用户按键,如果按下任意键则退出循环

            break;

        }

    }

    cap.release(); // 释放视频文件资源

    cv::destroyAllWindows(); // 关闭所有窗口

    return 0;

}

 

相关推荐

  1. C++结合OpenCV实现视频播放器

    2024-02-01 10:02:04       46 阅读
  2. 使用opencv + ffmpeg 开发视频播放器Demo

    2024-02-01 10:02:04       44 阅读
  3. 音乐播放器-C#实现

    2024-02-01 10:02:04       38 阅读
  4. 计算机视觉——OpenCV C++实现凸包

    2024-02-01 10:02:04       24 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-01 10:02:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-01 10:02:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-01 10:02:04       87 阅读
  4. Python语言-面向对象

    2024-02-01 10:02:04       96 阅读

热门阅读

  1. python查询xml类别

    2024-02-01 10:02:04       48 阅读
  2. C++ 万能函数接口

    2024-02-01 10:02:04       48 阅读
  3. 1697. 检查边长度限制的路径是否存在

    2024-02-01 10:02:04       59 阅读
  4. 算法总结归纳(第十二天)(剩余的图论)

    2024-02-01 10:02:04       59 阅读
  5. centos7 arm服务器配置深度学习环境之cuda安装

    2024-02-01 10:02:04       66 阅读
  6. 制作ubuntu-base-23.10-base-armhf的根文件系统rootfs

    2024-02-01 10:02:04       59 阅读
  7. OpenGL查询对象 Query Objects

    2024-02-01 10:02:04       38 阅读
  8. C# 泛型类型详解:编写更安全、可重用的代码

    2024-02-01 10:02:04       47 阅读
  9. 【pip安装加速】pip 更换清华源

    2024-02-01 10:02:04       52 阅读
  10. hyperf 二十四 模型缓存

    2024-02-01 10:02:04       61 阅读