-
Notifications
You must be signed in to change notification settings - Fork 0
/
noisemodel.h
66 lines (53 loc) · 1.6 KB
/
noisemodel.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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#ifndef NOISEMODEL_H
#define NOISEMODEL_H
#include "model.h"
#include "colorspaces/rgbcs.h"
#include "colorspaces/hlscs.h"
#include "colorspaces/yuvcs.h"
#include "filters/huefilter.h"
#include "filters/saturationfilter.h"
#include "filters/lightnessfilter.h"
#include "filters/additivenoise.h"
#include "filters/multinoise.h"
#include "filters/impulsenoise.h"
class NoiseModel : public Model
{
void init();
public:
NoiseModel();
NoiseModel(const QImage&);
void applyImpulseNoise(int blackRate);
void applyAdditionalNoise(int maxDiff);
void applyMultiNoise(int coef);
void applyGrayscaleFilter();
void applyBrightnessFilter(int diff);
void applyContrastFilter(int diff);
void applyGammaFilter(int diff);
void applyInverseFilter();
void applyEqualizeFilter();
void applyAutoLevelsFilter(int min, int max);
void applyAutoContrastFilter(int min, int max);
void applyAverageConvolution(const QString &);
void applyGeometricConvolution(const QString &);
void applyMedianConvolution(const QString &);
void applyAdditionalConvolution(const QString &);
void apply2DCleaner(const QString& mask, int threshold);
QImage hist();
void setRate(int rate);
void setFilterOffset(int offset);
void setCurrentChannel(Channel::Identifier channel);
void setDelta(float);
void setMSAD(float);
float getDelta();
float getMSAD();
float recalcDelta();
float recalcMSAD();
protected:
void reset();
float msad;
float delta;
int rate;
int filter_offset;
Channel::Identifier currentChannel;
};
#endif // NOISEMODEL_H