Qt配置opencv及使用qt一些相关知识,并测试一个小项目

一.安装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的文件下

 如有其他问题可评论处问

猜你喜欢

转载自blog.csdn.net/jifanyyds/article/details/130462831
今日推荐