-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathlib.h
78 lines (78 loc) · 1.66 KB
/
lib.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
67
68
69
70
71
72
73
74
75
76
77
78
#include <cmath>
#include <ctime>
#include <omp.h>
class dbCart{
public:
float x;
float y;
dbCart(float,float);
};
class dbGrad{
public:
float n;
float dx;
float dy;
};
class dbRGB{
public:
float R;
float G;
float B;
dbRGB(float,float,float);
dbRGB(float);
dbRGB();
friend dbRGB operator+(const dbRGB &, const dbRGB &);
friend dbRGB operator-(const dbRGB &, const dbRGB &);
friend dbRGB operator*(const dbRGB &, const dbRGB &);
friend dbRGB operator/(const dbRGB &, const dbRGB &);
static float abs(dbRGB);
static dbRGB round(dbRGB);
static dbRGB max(float,dbRGB);
static dbRGB min(float,dbRGB);
};
class NormalDist{
private:
float* N;
const static long int MAX = 10000000;
int position;
public:
NormalDist();
float Next();
~NormalDist();
};
class dbImage
{
public:
float* A;
int Width;
int Height;
size_t getWidth();
size_t getHeight();
float* getArray();
dbImage();
dbImage(size_t,size_t);
dbImage(float*,size_t,size_t);
float& operator()(int,int);
float operator()(float,float);
~dbImage();
dbGrad grad(float,float,float);
};
class dbImageRGB
{
public:
dbRGB* A;
int Width;
int Height;
size_t getWidth();
size_t getHeight();
dbRGB* getArray();
dbImageRGB();
dbImageRGB(size_t,size_t);
dbImageRGB(dbRGB*,size_t,size_t);
dbRGB& operator()(int,int);
dbRGB operator()(float,float);
~dbImageRGB();
dbGrad grad(float,float,float);
};
double PSNR(dbImageRGB&, dbImageRGB&);
double PSNR(dbImage&, dbImage&);