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

相关推荐
Python图像识别2 小时前
43-【2027毕设】YOLO11暴力检测识别系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·qt·课程设计
richard_yuu12 小时前
OpenCV 实战第 9 篇:Template Matching vs 特征匹配,ROI 定位该选哪个
opencv
bug和崩溃我都要12 小时前
QT 开发的专业截图录屏工具 - macOS版 / Windows版
windows·qt·mac·录屏·截屏
研來如此14 小时前
OpenCV官方下载界面下载opencv库
人工智能·opencv·计算机视觉
Python图像识别15 小时前
40-【2027毕设】YOLO11面部口罩检测识别系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·qt·课程设计
Python图像识别15 小时前
39-【2027毕设】YOLO11行人摔倒检测系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·qt·课程设计
程序人生88821 小时前
PDF 转 Word 版式错乱、表格丢失?DocConverter Web 格式互转引擎的保真实践
前端·人工智能·opencv·机器学习·pdf·word
HUANGZHENXUAN1231 天前
代码解析(一):从 `opencv_basics/` 说起
opencv
Quz1 天前
QML PathView:直线路径与曲线路径
qt·动画·qml
扶尔魔ocy1 天前
【qt openGL入门笔记】OSG实现飞机模型在网格图上飞行
qt·opengl·osg