iVS3D v2.0.0
Loading...
Searching...
No Matches
blur.h
1#ifndef BLUR_H
2#define BLUR_H
3
11#include <QComboBox>
12#include <QCoreApplication>
13#include <QDoubleSpinBox>
14#include <QGridLayout>
15#include <QLabel>
16#include <QLayout>
17#include <QMap>
18#include <QObject>
19#include <QString>
20#include <QTranslator>
21#include <QWidget>
22#include <algorithm>
23#include <opencv2/video.hpp>
24
25#include "ialgorithm.h"
26#include "reader.h"
27#include "sequentialreader.h"
28#include "logfile.h"
29
30#include "BlurAlgorithm.h"
31#include "blurlaplacian.h"
32#include "blursobel.h"
33#include "blurtenengrad.h"
34
35#define DESCRIPTION_STYLE \
36 "color: rgb(58, 58, 58); border-left: 6px solid rgb(58, 58, 58); " \
37 "border-top-right-radius: 5px; border-bottom-right-radius: 5px; " \
38 "background-color: lightblue;"
39#define WINDOW_SIZE "Window size"
40#define LOCAL_DEVIATION "Local deviation"
41#define USED_BLUR "Blur"
42
56class Blur : public IAlgorithm {
57 Q_OBJECT
58 Q_PLUGIN_METADATA(IID "iVS3D.IAlgorithm") // implement interface as plugin,
59 // use the iid as identifier
60 Q_INTERFACES(
61 IAlgorithm) // declare this as implementation of IAlgorithm interface
62
63 public:
68 Blur();
69 ~Blur() {}
76 QWidget *getSettingsWidget(QWidget *parent) override;
103 std::vector<uint> sampleImages(const std::vector<unsigned int> &imageList,
104 Progressable *receiver,
105 volatile bool *stopped, bool useCuda,
106 LogFileParent *logFile) override;
111 QString getName() const override;
119 void initialize(Reader *reader, QMap<QString, QVariant> buffer,
120 signalObject *sigObj) override;
125 void setSettings(QMap<QString, QVariant> settings) override;
137 QMap<QString, QVariant> generateSettings(Progressable *receiver,
138 bool useCuda,
139 volatile bool *stopped) override;
144 QMap<QString, QVariant> getSettings() override;
145
146 public slots:
151 void slot_blurAlgoChanged(const QString &name);
156 void slot_wsChanged(int ws);
161 void slot_ldChanged(int ld);
167 void slot_selectedImageIndex(uint index);
168
169 private:
170 Reader *m_reader = nullptr;
171 QMap<QString, QVariant> m_buffer;
172 signalObject *m_sigObj = nullptr;
173 QWidget *m_settingsWidget = nullptr;
174 QComboBox *m_comboBoxBlur = nullptr;
175 QSpinBox *m_spinBoxWS = nullptr;
176 QSpinBox *m_spinBoxLD = nullptr;
177 QLabel *m_infoLabel = nullptr;
178 BlurAlgorithm *m_usedBlur = nullptr;
179 int m_windowSize;
180 double m_localDeviation;
181 std::vector<BlurAlgorithm *> m_blurAlgorithms = {};
182 std::vector<double> m_blurValues = {};
183 LogFileParent *m_logFile = nullptr;
184
185 void createSettingsWidget(QWidget *parent);
186 std::vector<double> splitDoubleString(QString string);
187 std::vector<uint> sampleKeyframes(Reader *reader, Progressable *receiver,
188 volatile bool *stopped,
189 std::vector<uint> sharpImages);
190 QString progressMessage(int curr, int total);
191 void computeBuffer();
192};
193
194#endif // BLUR_H
The BlurAlgorithm interface provides an interface for different algorithms calculating blur values fo...
Definition BlurAlgorithm.h:27
The Blur class is responsible for selecting they keyframes based on the blu values calculated by a Bl...
Definition blur.h:56
QString getName() const override
getName Returns the plugin Name
Definition blur.cpp:74
QMap< QString, QVariant > getSettings() override
getter for plugin's settings
Definition blur.cpp:141
void slot_wsChanged(int ws)
[slot] slot_wsChanged updates the windowsize.
Definition blur.cpp:158
std::vector< uint > sampleImages(const std::vector< unsigned int > &imageList, Progressable *receiver, volatile bool *stopped, bool useCuda, LogFileParent *logFile) override
sampleImages selects keyframes based on their bluriness. It differs between a calulation on all image...
Definition blur.cpp:42
QMap< QString, QVariant > generateSettings(Progressable *receiver, bool useCuda, volatile bool *stopped) override
generateSettings tries to generate the best settings for the current input
Definition blur.cpp:132
Q_INTERFACES(IAlgorithm) public ~Blur()
Blur Constructor which creates an instance of every BlurAlgorithm and stets standard values (WindowSi...
Definition blur.h:69
QWidget * getSettingsWidget(QWidget *parent) override
getSettingsWidget Returns the settings widget where BlurAlgorithm, WindowSizw and LocalDeviation can ...
Definition blur.cpp:35
void setSettings(QMap< QString, QVariant > settings) override
setter for plugin's settings
Definition blur.cpp:113
void slot_blurAlgoChanged(const QString &name)
[slot] slot_blurAlgoChanged selects the algorithm identified by name.
Definition blur.cpp:149
void slot_selectedImageIndex(uint index)
[slot] slot_selectedImageIndex changes currently displayed info (blur value of current image)
Definition blur.cpp:162
void slot_ldChanged(int ld)
[slot] slot_ldChanged updates local deviation.
Definition blur.cpp:160
void initialize(Reader *reader, QMap< QString, QVariant > buffer, signalObject *sigObj) override
initialize Blur doesn't use this currently
Definition blur.cpp:88
The IAlgorithm interface is used to include plugin implementations for different sampling algorithms....
Definition ialgorithm.h:35
The LogFileParent class logs progress as well as information about a process (e.g....
Definition LogFileParent.h:30
The Progressable interface is used to by multithreaded actions such as sampling or exporting to repor...
Definition progressable.h:18
The Reader interface defines functions which are used for reading and parsing the import.
Definition reader.h:23
Definition signalobject.h:10