思路
1.在传统OpenCV编程中,播放视频和摄像头图像时都需要使用waitKey()
来实现延时。在Qt框架下,可以使用QTime
类来代替,然后将其中的timeout()
函数作为信号。
2.OpenCV的Mat
类要转换成Qt的QImage
,注意通道BGR(Mat)转换成RGB(QImage)。
界面
控件:
1.label
:用于显示视频图像;
2.comboBox
:用于选择视频输入还是摄像头输入;
3.pushButton
(2):作为播放和停止按钮。
效果
视频输入:
摄像头输入:
代码
main.cpp
#include "videodisplayinqt.h"
#include <QtWidgets/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
videodisplayinqt w;
w.show();
return a.exec();
}
videodisplayinqt.h
#pragma once
#include <QtWidgets/QMainWindow>