преобразование из VlcMedia в Mat и наоборот

я пытаюсь подключитьсяVLC-кварта«до»OpenCV«Я читаю IP-камеру, используя VlcInstance а также VlcMedia .

насколько я знаю, чтобы opencv работал, нужно поместить видео в формате Mat:

videoCapture cap;
Mat frame ;
cap >> frame ;

но у меня это есть VlcMedia формат. Есть ли способ преобразовать это в формат Mat (или в качестве источника для видеозахвата), а затем преобразовать его обратно в VlcMedia, чтобы иметь возможность показать его в VlcMediaPlayer.
Мне нужно, чтобы это было быстро (на самом деле быстро в реальном времени: D).

это мой код (я использую Qt в visual studio):

мой заголовочный файл:

#ifndef QT_VLC_OPENCV1_H
#define QT_VLC_OPENCV1_H

#include <QtWidgets/QMainWindow>
#include "ui_qt_vlc_opencv1.h"
#include <VLCQtCore\Instance.h>
#include <VLCQtCore\Media.h>
#include <VLCQtCore\MediaPlayer.h>

class qt_vlc_opencv1 : public QMainWindow
{
Q_OBJECT

public:
qt_vlc_opencv1(QWidget *parent = 0);
~qt_vlc_opencv1();
private slots:
void on_btnOpenFile_clicked();

private:
Ui::qt_vlc_opencv1Class ui;

VlcInstance *_instance;
VlcMedia *_media;
VlcMediaPlayer *_player;
};

#endif // QT_VLC_OPENCV1_H

и мой файл cpp:

#include "qt_vlc_opencv1.h"
#include <VLCQtCore\Common.h>
#include <qinputdialog.h>

#include <opencv2/highgui/highgui.hpp>
#include <cv.h>
using namespace cv;

qt_vlc_opencv1::qt_vlc_opencv1(QWidget *parent)
: QMainWindow(parent), _media(0)
{
ui.setupUi(this);

_instance = new VlcInstance(VlcCommon::args(), this);
_player = new VlcMediaPlayer(_instance);
_player->setVideoWidget(ui.video);

ui.video->setMediaPlayer(_player);
}

qt_vlc_opencv1::~qt_vlc_opencv1()
{
delete _player;
delete _media;
delete _instance;
}

void qt_vlc_opencv1::on_btnOpenFile_clicked()
{
QString file = QInputDialog::getText(this,tr("Open File"),tr("Enter a file path or a Url"));
if (file.isEmpty())
return;

_media = new VlcMedia(file, true, _instance);
_player->open(_media);
}

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]