12#include <QCoreApplication>
13#include <QDoubleSpinBox>
23#include <opencv2/video.hpp>
25#include "ialgorithm.h"
27#include "sequentialreader.h"
30#include "BlurAlgorithm.h"
31#include "blurlaplacian.h"
33#include "blurtenengrad.h"
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"
58 Q_PLUGIN_METADATA(IID
"iVS3D.IAlgorithm")
103 std::vector<uint>
sampleImages(
const std::vector<unsigned int> &imageList,
105 volatile bool *stopped,
bool useCuda,
111 QString
getName()
const override;
125 void setSettings(QMap<QString, QVariant> settings)
override;
139 volatile bool *stopped)
override;
170 Reader *m_reader =
nullptr;
171 QMap<QString, QVariant> m_buffer;
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;
180 double m_localDeviation;
181 std::vector<BlurAlgorithm *> m_blurAlgorithms = {};
182 std::vector<double> m_blurValues = {};
185 void createSettingsWidget(QWidget *parent);
186 std::vector<double> splitDoubleString(QString
string);
188 volatile bool *stopped,
189 std::vector<uint> sharpImages);
190 QString progressMessage(
int curr,
int total);
191 void computeBuffer();
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