LEARN OPENCV C++ in 4 HOURS: https://www.youtube.com/watch?v=2FYm3GOonhk

环境: Opencv 4.6.0 + Visual Studio 2017


基础

头文件

Opencv在C++只需包含3个头文件

#include <opencv2/imgcodecs.hpp> // 图像的编码和解码
#include <opencv2/highgui.hpp>   // 界面
#include <opencv2/imgproc.hpp>   // 图像处理

基本类型

  • Mat

由OpenCV引入的矩阵数据类型, 用来处理图像

显示图像

int showImage(string path) { // path为图片路径
    Mat img = imread(path); // 读取图像
    imshow("Image", img); // 显示图像
    waitKey(0); // 任意键结束
    return 0;
}

播放视频

视频播放实际上是将视频逐帧读取图像, 然后按固定时间间隔播放, 达到播放视频的目的

int showVideo(string path) { // 视频路径
    VideoCapture cap(path); // 读取视频
    Mat img;

    while (1)
    {
        if (!cap.read(img)) // 读取一帧图像
            break; // 读完即停
        imshow("Video", img); // 显示图像
        waitKey(20); // 播放间隔, 可自行调节
    }

    return 0;
}

播放网络摄像头

和播放视频差不多, 将图片路径换成摄像头id, 只有一个摄像头默认id为0

int showWebcams(int id)
{
    VideoCapture cap(0); // 读取摄像头图像
    Mat img;

    while (1)
    {
        if (!cap.read(img)) // 读取一帧图像
            break;
        imshow("Webcams", img); // 显示图像
        waitKey(1); // 间隔不宜太长
    }
    return 0;
}
说点什么
支持Markdown语法
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...