国外有名的设计网站,wordpress 主题 欣赏,如何自己做推广,展示型网站建设流程图QT打开摄像头采集
今天好不容易把opencv的环境装好#xff0c;然后想学习一下人脸识别的功能#xff0c;但是在图书馆坐了4个多小时了#xff0c;屁股疼就先写个摄像头采集的功能#xff0c;明天继续学习吧#xff0c;废话不多#xff0c;嚼个奶片开始发车#xff01;然后想学习一下人脸识别的功能但是在图书馆坐了4个多小时了屁股疼就先写个摄像头采集的功能明天继续学习吧废话不多嚼个奶片开始发车
我们设计我们的UI界面
非常简单
UI界面设计
就这么简单我们在Widget里显示图像然后这个下拉框用来选择摄像头
然后我们来编写我们的代码
代码编写
widget.h文件
#include QWidget
#include QMouseEvent
class QCamera;
class QCameraViewfinder;
class QCameraImageCapture;
class QCameraInfo;
class QCameraViewfinderSettings;namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent 0);~Widget();private:Ui::Widget *ui;QCamera *camera; //相机QCameraViewfinder *viewfinder; //取景器QListQCameraInfo cameras; //相机列表
};widget.cpp文件
#include widget.h
#include ui_widget.h
#include QCamera
#include QCameraInfo
#include QCameraViewfinder
#include QDebugWidget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui-setupUi(this);// 获取所有可用的相机信息cameras QCameraInfo::availableCameras();if(cameras.count() 0) {// 如果有可用的相机则使用第一个相机创建QCamera实例camera new QCamera(cameras.at(0));}// 创建一个取景器QCameraViewfinder并设置其父对象为当前Widgetviewfinder new QCameraViewfinder(this);// 将取景器设置为相机的取景器camera-setViewfinder(viewfinder);// 设置取景器的大小viewfinder-resize(600, 350);// 启动相机camera-start();// 添加初始化的相机选项到下拉框for(const QCameraInfo cameraInfo:cameras) {ui-comboBox_cam-addItem(cameraInfo.description());}// 默认选择第一个相机ui-comboBox_cam-setCurrentIndex(0);// 连接下拉框camera的选择改变信号到槽函数用于更换相机connect(ui-comboBox_cam, QOverloadint::of(QComboBox::activated), [](int index){camera-stop();delete camera;camera new QCamera(cameras[index]);camera-setViewfinder(viewfinder);camera-start();});
}Widget::~Widget()
{delete ui;delete camera;
}// 移除了captureImage函数和相关的信号连接好嘞去吃饭去了再不去没饭了