Add pattern match using openCV

This commit is contained in:
WarmUpTill
2021-09-04 02:45:11 +02:00
committed by WarmUpTill
parent 9ca2f4470b
commit 3d1c613f1c
4 changed files with 240 additions and 20 deletions

View File

@@ -12,6 +12,7 @@ enum class VideoCondition {
HAS_NOT_CHANGED,
HAS_CHANGED,
NO_IMAGE,
PATTERN,
};
class MacroConditionVideo : public MacroCondition {
@@ -32,8 +33,10 @@ public:
OBSWeakSource _videoSource;
VideoCondition _condition = VideoCondition::MATCH;
std::string _file = obs_module_text("AdvSceneSwitcher.enterPath");
double _threshold = 0.8;
private:
bool ScreenshotContainsPattern();
bool Compare();
std::unique_ptr<AdvSSScreenshotObj> _screenshotData = nullptr;
@@ -42,6 +45,25 @@ private:
static const std::string id;
};
class ThresholdSlider : public QWidget {
Q_OBJECT
public:
ThresholdSlider(QWidget *parent = 0);
void SetDoubleValue(double);
public slots:
void NotifyValueChanged(int value);
signals:
void DoubleValueChanged(double value);
private:
void SetDoubleValueText(double);
QLabel *_value;
QSlider *_slider;
double _scale = 100.0;
int _precision = 2;
};
class MacroConditionVideoEdit : public QWidget {
Q_OBJECT
@@ -66,6 +88,8 @@ private slots:
void ConditionChanged(int cond);
void FilePathChanged();
void BrowseButtonClicked();
void ThresholdChanged(double);
void ShowMatchClicked();
signals:
void HeaderInfoChanged(const QString &);
@@ -74,8 +98,11 @@ protected:
QComboBox *_condition;
QLineEdit *_filePath;
QPushButton *_browseButton;
ThresholdSlider *_threshold;
QPushButton *_showMatch;
std::shared_ptr<MacroConditionVideo> _entryData;
private:
void SetWidgetVisibility();
bool _loading = true;
};