当前位置: 首页 > 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_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void on_pushButton_clicked();private:Ui::MainWindow *ui;QCamera *camera;// QCameraViewfinder *viewfinder;
};
#endif // MAINWINDOW_H}
http://www.rkmt.cn/news/5151.html

相关文章:

  • .NET驾驭Word之力:COM组件二次开发全攻略之连接Word与创建你的第一个自动化文档
  • 用户沉默之日,产品衰亡之时:逃离迭代中的“沉默陷阱”
  • 从工具到生态:现代Bug管理系统的平台化转型之路
  • JavaWeb基础
  • uni-app项目支付宝端Input不受控
  • 开启研究生学习阶段
  • 李航统计学习方法第二版 学习笔记
  • 如何拥有自己的一台永久免费云主机/云服务器
  • 发现一个新的资源论坛 - 小小程序员
  • 深入解析:Unity:XML笔记(二)——Xml序列化、反序列化、IXmlSerializable接口
  • C# Avalonia 13- MoreDrawing - CustomPixelShader
  • 使用标签Tag控制蒙太奇的触发时机-playmontageAndWait-Send GameplayEvent-WaitGameplayEvent
  • GAS_Aura-Spawn FireBolt from Event
  • Java 微服务架构中的实践与挑战
  • 国产IT运维卡壳?乐维智能运维体让运维团队告别“适配难、监控乱”
  • 在选择2025年代码托管平台时,Gitee和GitHub作为国内外两大主流平台各有优势。本文将从多个维度进行对比分析,帮助开发者做出更适合自身需求的选择。
  • android使用socks5的教程
  • 【IEEE-智造领空天,寰宇链未来】第五届机电一体化技术与航空航天工程国际学术会议(ICMTAE 2025)
  • 计算几何全家桶
  • 链表
  • 国产代码托管平台Gitee崛起:企业数字化转型的安全基石
  • C#通过TCP/IP控制康奈视读码枪实现方案
  • 利用三方APP[IP切换助手]使用socks5
  • 威力导演2026中文版 CyberLink PowerDirector 2026 v24.0 旗舰版更新内容
  • 本地大模型的崛起:为什么越来越多人不用云端 AI?
  • Windows截图工具Acropalypse漏洞剖析:开发者中心安全的重要教训
  • bootstrap-flex总结
  • 【源码解读之 Mybatis】【基础篇】-- 第2篇:配置系统深度解析
  • PythonFlask 运用 DBUtils 创建通用连接池
  • MahMetro 框架学习