QT6打开摄像头和QT5有一些区别
1、包含模块:
QT += multimedia multimediawidgets
2、设计界面中拖入Widget控件,通过提示控件,提升为QVideoWidget类型
3、包含头文件
#include <QCamera> //摄像头
#include <QMediaCaptureSession> //管理摄像头的类
#include <QImageCapture> //截图用的类
4、代码初始化打开
//摄像头
QCamera *camera;
//计时器,用来刷新摄像头和截屏用的,帧率保持在10左右
QTimer *cameraTimer;
//管理摄像头
QMediaCaptureSession capture;
//截图摄像头
QImageCapture *ic;
camera = new QCamera;
ic = new QImageCapture;
cameraTimer = new QTimer(this);
capture.setCamera(camera);
capture.setVideoOutput(ui->widget_self);
capture.setImageCapture(ic);
//截图的槽函数
connect(ic,SIGNAL(imageCaptured(int,QImage)),this,SLOT(getCameraImg(int,QImage)));
//计时器启动计时器隔多久截图一次
connect(cameraTimer,SIGNAL(timeout()),ic,SLOT(capture()));
camera->start();
cameraTimer->start(200);
5、getCameraImg函数自己实现实现一下就可以了,里面不用做任何事情,通过形参就能得到图片是QImage个数,int是第几张图片
6、需要注意,很有可能打开摄像头之后画面是黑的,那么就需要自己在安装目录中D:\QT6.6.1\6.6.1\mingw_64\plugins 这个目录中的multimedia 文件夹复制到exe所在的位置就可以了