一.安装qt及相应配置
qt的安装,我的上一个博客
二.qt配置opencv
1.下载opencv,版本自定,我用的是windows的4.5.4版本的opencv,下面是官网的新版本opencv
2.环境变量的配置
进入后在系统变量中找到Path
按照自己的opencv和qt的路径添加
3.打开qt creator 新建项目
名称随意,自己记住就好,路径自己定义存放
我们刚开始用就选qmake,比较简单 容易操作
选择QWidget,功能多、可定制
这是下载是所选择的组件,我现在使用的是MSVC(这个组件也可以配置在Visionual Studio,下节会讲) 还有一个原因是MinGW不支持opencv。32位和64位的区别在于:32位可以应用于32位和64位的计算机上,而64位职业那个应用于64位的计算机上。在我们自己用的电脑上就可以选择64位的。
4.项目中添加opencv
这是新建后的文件
打开pro文件,在文件下方添加opencv的路径
INCLUDEPATH +=E:\opencv\build\include\
E:\opencv\build\include\
E:\opencv\build\include\opencv2
LIBS +=E:\opencv\build\x64\vc15\lib\opencv_world454.lib
根据自己的路径添加
三.测试-小项目 播放视频 播放 暂停与停止
在widget.cpp中添加opencv的头文件
#include <opencv2/opencv.hpp>
双击widget.ui这个文件,进入界面设计,并设置三个Buttons中的Push Button按键,如图:
鼠标放在按键上右键点击转到槽
点确定会进入到widget.cpp文件,形成一个与按键对应的槽函数,三个按键三个函数
这是.h头文件(自动生成)
这是widget.cpp文件
#include "widget.h"
#include "ui_widget.h"
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
//添加类
class QMediaPlayer;
QMediaPlayer* player;
class QVideoWidget;
QVideoWidget* videoWidget;
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{ //在构造函数中添加此代码
ui->setupUi(this);
player=new QMediaPlayer(this);
videoWidget=new QVideoWidget(this);
videoWidget->resize(600,300);
player->setVideoOutput(videoWidget);
player->setMedia(QUrl::fromLocalFile("C:/Users/le/Desktop/test_traffic.mp4"));
player->play();
//player->setVideoOutput(ui->videoWidget);
//修改自己的视频路径
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_pushButton_clicked()
{ //播放
connect(ui->pushButton, &QPushButton::clicked, player, &QMediaPlayer::play);
}
void Widget::on_pushButton_2_clicked()
{ //暂停
connect(ui->pushButton_2, &QPushButton::clicked, player, &QMediaPlayer::pause);
}
void Widget::on_pushButton_3_clicked()
{ //停止
connect(ui->pushButton_3, &QPushButton::clicked, player, &QMediaPlayer::stop);
}
先构建在运行
下面是我的效果
报错解决:
DirectShowPlayerService::doRender: Unresolved error code 0x80040266
大多是视频声音无法播放需要下载解码器,可以下载 LAVFilters-0.65安装在自己存放qt的文件下
如有其他问题可评论处问