Qt konfiguriert opencv, nutzt einige verwandte Kenntnisse von qt und testet ein kleines Projekt

1. Installieren Sie qt und die entsprechende Konfiguration

Qt-Installation, mein letzter Blog

Two.qt-Konfiguration opencv

1. Laden Sie opencv herunter , die Version ist angepasst, ich verwende die 4.5.4-Version von opencv für Windows, das Folgende ist die neue Version von opencv auf der offiziellen Website

 2. Konfiguration von Umgebungsvariablen

 Suchen Sie nach der Eingabe nach Path in der Systemvariablen

 Fügen Sie entsprechend Ihrem eigenen OpenCV- und QT-Pfad hinzu

3. Öffnen Sie qt Creator, um ein neues Projekt zu erstellen

 

 

 Der Name ist willkürlich, merken Sie sich ihn einfach selbst, und der Pfad wird von Ihnen selbst definiert und gespeichert

 Zu Beginn haben wir uns für qmake entschieden, das relativ einfach und leicht zu bedienen ist

Wählen Sie QWidget, das viele Funktionen bietet und angepasst werden kann

Dies ist die ausgewählte Komponente zum Herunterladen. Ich verwende jetzt MSVC (diese Komponente kann auch in Visionual Studio konfiguriert werden, was im nächsten Abschnitt besprochen wird). Ein weiterer Grund ist, dass MinGW opencv nicht unterstützt. Der Unterschied zwischen 32-Bit und 64-Bit ist: 32-Bit kann auf 32-Bit- und 64-Bit-Computer angewendet werden, und der 64-Bit-Beruf wird auf 64-Bit-Computer angewendet. Wir können 64-Bit auf unserem eigenen Computer wählen.

4. Fügen Sie opencv zum Projekt hinzu

Dies ist die neu erstellte Datei 

Öffnen Sie die Pro-Datei und fügen Sie den OpenCV-Pfad unterhalb der Datei hinzu

INCLUDEPATH +=E:\opencv\build\include\
              E:\opencv\build\include\
              E:\opencv\build\include\opencv2

LIBS +=E:\opencv\build\x64\vc15\lib\opencv_world454.lib

Fügen Sie entsprechend Ihrem eigenen Pfad hinzu

3. Testen Sie die Wiedergabe eines kleinen Projekts, halten Sie die Videowiedergabe an und stoppen Sie sie

Fügen Sie die OpenCV-Header-Datei in widget.cpp hinzu

#include <opencv2/opencv.hpp>

Doppelklicken Sie auf die Datei widget.ui, um das Schnittstellendesign aufzurufen, und legen Sie die Schaltfläche „Push Button“ unter den drei Schaltflächen fest, wie in der Abbildung gezeigt:

 Klicken Sie mit der rechten Maustaste auf die Schaltfläche, um zum Slot zu gelangen

Klicken Sie auf OK, um die Datei widget.cpp einzugeben und eine Slot-Funktion zu bilden, die der Schaltfläche, drei Schaltflächen und drei Funktionen entspricht

Hier ist die .h-Header-Datei (automatisch generiert)

Hier ist die Datei 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);
}




 

Vor dem Ausführen erstellen

 Unten ist mein Effekt

 Fehlerbehebung:

DirectShowPlayerService::doRender: Ungelöster Fehlercode 0x80040266 

Die meisten Videos und Töne können nicht abgespielt werden. Sie müssen den Decoder herunterladen. Sie können LAVFilters-0.65 herunterladen und unter der Datei installieren, in der Sie qt speichern

 Wenn Sie weitere Fragen haben, stellen Sie diese bitte in den Kommentaren

Ich denke du magst

Origin blog.csdn.net/jifanyyds/article/details/130462831
Empfohlen
Rangfolge