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