当前位置: 首页 > news >正文

Qt-捕获摄像头画面

在qt中捕获摄像头画面,在ui界面上添加一个comboBox控件、label标签和一个pushButton按钮,comboBox用于显示摄像头的设备,按钮用于开启摄像头,label用于显示摄像头捕获的画面。

//需要在.pro文件中加上multimedia multimediawidgets QT += core gui multimedia multimediawidgets
//mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include<QCameraInfo> #include<QCameraViewfinder> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); //获取当前系统的摄像头设备列表 const QList<QCameraInfo> cameras = QCameraInfo::availableCameras(); for(const QCameraInfo &cameraInfo:cameras){ qDebug()<<cameraInfo.deviceName().toLocal8Bit().data(); ui->comboBox->addItem(cameraInfo.deviceName().toUtf8().data()); } } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { //创建摄像头对象(把系统中的摄像头路径给QCamera对象) camera = new QCamera(ui->comboBox->currentText().toUtf8()); //创建取景器对象,也就是用于显示摄像头画面的控件,并给对象一个父指针 QCameraViewfinder *viewfinder = new QCameraViewfinder(ui->label); //根据label大小设置取景器的大小 viewfinder->resize(ui->label->size()); //把取景器显示在ui中 viewfinder->show(); //绑定摄像头和摄像头画面控件 camera->setViewfinder(viewfinder); //打开摄像头 camera->start(); //mainwindow.H #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QCamera> #include <QCameraViewfinder> #include <QMainWindow> QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private slots: void on_pushButton_clicked(); private: Ui::MainWindow *ui; QCamera *camera; // QCameraViewfinder *viewfinder; }; #endif // MAINWINDOW_H }
http://www.jsqmd.com/news/1109156/

相关文章:

  • Python 行情数据留痕:symbol、timestamp、字段和 raw_snapshot 怎么记录
  • 用例优先架构:面向LLM自动开发工业软件的代码幻觉与虚假实现抑制框架
  • Caddy服务器加密ClientHello(ECH)配置实战:原理、部署与排障指南
  • STM32与IS31FL3731打造可编程LED矩阵系统
  • 原神帧率解锁技术解析:从原理到实践的完整指南
  • 如何在Blender中无缝导入Rhino 3DM文件:终极指南
  • 米联客F22-COM3-7EV Linux出厂开机完整测试教程(全网最细零基础)
  • 【会议征稿通知 | 新加坡科技设计大学主办 | ACM出版 | EI 、Scopus稳定检索】第三届边缘计算与并行、分布式计算国际学术会议(ECPDC 2026)
  • 【BUG已解决】Could not connect to Redis at 127.0.0.1:6379: Connection refused 解决方案
  • 遗传算法求解N皇后问题:Python实战与工程调参指南
  • MuleSoft+LLM企业级AI编排:构建可审计、可治理的智能集成中枢
  • 抓包,就是网络世界的“行车记录仪”:一次 tcpdump 实战找回“丢失”的响应
  • 【Springboot毕设全套源码+文档】基于springboot线上超市购物管理系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • PIC18F86J11与DS28EC20的1-Wire EEPROM存储方案设计
  • 程序员就业:换个角度,从简历表达讲到项目复盘
  • 分布式分账系统架构实践:一个社交电商级差算法引擎的设计与实现
  • Si4731收音机芯片与PIC32MZ2048EFH144微控制器开发指南
  • ASM330LHH与STM32F732IE运动跟踪系统设计与优化
  • STM32F765ZI驱动WS2812灯带:硬件配置与光效实现
  • 别再被骗了!2026海外网络代理服务避坑指南:教你识别真实住宅类IP资源
  • 【官方原创】如何使用STM32CubeMX2生成适配IAR的工程代码
  • 《UNIX 网络编程-卷1》 服务类型
  • 重庆避暑房实测横评:云澜栖 vs 仙女山 vs 黄水,夏季均温、湿度、PM2.5数据对比
  • PCF8591与PIC18F85K90的嵌入式信号处理方案
  • MAA明日方舟智能助手:5分钟掌握全日常自动化解决方案
  • 原神120帧解锁工具:突破60帧限制的完整指南
  • 别再瞎折腾了,这一篇帮你把 Gemini 3.5 的功能榨干!怎么选与实战教程
  • 【会议征稿通知 | 上海市浦东新区计算机协会主办 | ACM出版 | EI 、Scopus稳定检索】第三届人工智能与自然语言处理国际学术会议(AINLP 2026)
  • 嵌入式开发必掌握:指针与内存管理的底层原理
  • 优必选打起“感情牌”,赛博情感陪伴是一门好生意吗?