使用Qt显示摄像头图像
1、在*.pro文件中添加多媒体模块
QT += multimedia multimediawidgets
2、使用QCamera`和`QCameraViewfinder实现捕捉和显示摄像头图像
2.1 头文件mainwindow.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QCamera> class QCamera; class QCameraInfo; class QCameraViewfinder; QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: Ui::MainWindow *ui; QCamera *m_camera; QCameraViewfinder *m_viewfinder; }; #endif // MAINWINDOW_H
2.2 源文件mainwindow.cpp
#include <QCameraInfo> #include <QCameraViewfinder> #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); m_viewfinder = new QCameraViewfinder(); m_viewfinder->setStyleSheet(tr("background-color:black")); m_viewfinder->setAspectRatioMode(Qt::AspectRatioMode::IgnoreAspectRatio); m_viewfinder->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); m_camera = new QCamera(QCameraInfo::defaultCamera()); m_camera->setViewfinder(m_viewfinder); m_camera->start(); setCentralWidget(m_viewfinder); } MainWindow::~MainWindow() { delete ui; delete m_camera; }

浙公网安备 33010602011771号