/
visionfilter.h
49 lines (32 loc) · 1012 Bytes
/
visionfilter.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#ifndef VISIONFILTER_H
#define VISIONFILTER_H
#include "compositeview.h"
#include <opencv2/core/core.hpp>
#include <QObject>
#include <QHash>
namespace Ui {
class MirrorWindow;
}
namespace Mirror {
class VisionFilter : public QObject
{
Q_OBJECT
public:
explicit VisionFilter(Mirror::CompositeView * canvas, QObject *parent = 0);
virtual void configureGUI(Ui::MirrorWindow *) {}
const QList<QString> slotsOrder() const { return m_slotsOrder; }
signals:
public slots:
void incomingFrame(const cv::Mat& frame);
void setVisibleSlot(const QString& slot) { Q_ASSERT( m_slots.contains(slot)); m_visibleSlot = slot; }
protected:
virtual void filter(const cv::Mat& frame) = 0;
void appendVideoSlot(const QString& name, const cv::Mat * slot);
CompositeView * m_canvas;
QGraphicsPixmapItem * m_videoLayer;
QList<QString> m_slotsOrder;
QHash<QString, const cv::Mat * > m_slots;
QString m_visibleSlot;
};
} // namespace Mirror
#endif // VISIONFILTER_H