Opencv VideoCapture

  1. 头文件

#include <opencv2/opencv.hpp>

using namespace cv;

  1. 打开摄像头

/*

Windows:

0 笔记本自带摄像头

1 是 第一个usb摄像头

Linux可填 /dev/video0

*/

//方式一:

VideoCapture m_cap(0);

//方式二:

VideoCapture m_cap;

m_cap.open(0);

  1. 打开本地视频文件

方式一:

VideoCapture m_cap("test.mp4");

方式二:

VideoCapture m_cap;

m_cap.open("test.mp4");

  1. 打开网络流

方式一:

VideoCapture m_cap("rtsp:://xxxx/stream");

方式二:

VideoCapture m_cap;

m_cap.open("rstp:://xxxx/stream");

  1. 判断是否打开成功

m_cap.isOpened()

  1. 读取一帧画像

Mat frame;

方式一:

m_cap.read(frame);

方式二:

m_cap >> frame;

  1. 判断是否读到末尾

frame.empty();

  1. 释放资源

m_cap.release();

示例代码:

cpp 复制代码
//放到线程执行
VideoCapture m_cap;

m_cap.open(0);

Mat frame;

while(m_cap.read(frame)){
    
    cv::flip(frame, frame, 1);
    cvtColor(frame, frame, COLOR_BGR2RGB);

    QImage img = QImage((const unsigned char*)frame.data, frame.cols, frame.rows, static_cast<int>(frame.step), QImage::Format_RGB888));
    emit sendImg(img);
    QThread::msleep(33);    // 控制帧率,防止CPU占有率过高
    
}

// UI线程
ui->lable->setPixmap(QPixmap::fromImage(img));
  1. 获取视频属性 .get(propid)

    cap.get(CAP_PROP_FRAME_WIDTH); // 宽度
    cap.get(CAP_PROP_FRAME_HEIGHT); // 高度
    cap.get(CAP_PROP_FPS); // 帧率
    cap.get(CAP_PROP_FRAME_COUNT); // 总帧数(视频文件)
    cap.get(CAP_PROP_POS_FRAMES); // 当前帧号

  2. 设置摄像头参数 .set(propId, value)

    // 设置分辨率 640*480
    cap.set(CAP_PROP_FRAME_WIDTH, 640);
    cap.set(CAP_PROP_FRAME_HEIGHT, 480);
    // 设置帧率
    cap.set(CAP_PROP_FPS, 30);

相关推荐
江畔柳前堤5 小时前
字节跳动·大模型应用知识手册
前端·人工智能·深度学习·opencv·目标检测·重构·transformer
江湖人称菠萝包5 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter9-Qt Charts
笔记·qt·qt5
扶尔魔ocy5 小时前
【QT android】环境安装及第一个QT项目
qt·andriod开发
江湖人称菠萝包7 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter10-Data Visualization
笔记·qt·qt5
Cx330❀12 小时前
Qt 常用控件属性与底层机制详解:从窗口半透明、浮点数陷阱到 QSS 与焦点策略
qt·ui·图形渲染
Quz12 小时前
QML DelegateChooser:多条件组合与按列选择委托
qt
Quz13 小时前
QML DelegateChooser:按角色选择委托与按索引选择委托
qt
棣廷13 小时前
初识OpenCV——Dlib CNN人脸检测
人工智能·深度学习·opencv
zx_7414848113 小时前
【计算机视觉入门】基于 dlib 与 OpenCV 的三大案例:人脸检测、年龄性别预测与疲劳检测
opencv·计算机视觉·dnn
yyk3332413 小时前
OpenCV中的表情识别
opencv