ImageD  v2_7_5 (24.06.22)
ImageD is an image processing software designed for rapid prototyping and implementing algorithms and solutions for science, research and teaching.
d_math.h
Go to the documentation of this file.
1 /************************************
2  * added: 11.02.2019 *
3  * author: David Eilenstein *
4  * contact: D.Eilenstein@gsi.de *
5  * project: ImageD *
6  * facility: GSI Darmstadt, Ger *
7  ************************************/
8 
9 #ifndef D_MATH_H
10 #define D_MATH_H
11 
12 //own
13 #include <d_enum.h>
14 
15 //general
16 #include <iostream>
17 #include <vector>
18 #include <algorithm>
19 #include <cmath>
20 #include <random>
21 #include <complex>
22 
23 //Qt
24 #include <QString>
25 #include <QDebug>
26 #include <QStringList>
27 
28 //openCV
29 #include <opencv2/core/core.hpp>
30 #include <opencv2/highgui/highgui.hpp>
31 #include <opencv2/imgproc/imgproc.hpp>
32 
33 //namespaces
34 using namespace std;
35 //using namespace cv; (prohibited because of abigous names with qtdatavisualization)
36 #include <d_opencv_typedefs.h>
37 
42 class D_Math
43 {
44 public:
45  //constructor (never call it)
46  D_Math();
47 
48  static function<double (double x)> Function_1D_to_1D (int type, double a = 1, double b = 0, double c = 0, double d = 0);
49  static function<double (double x, double y)> Function_2D_to_1D (int type, double a = 1, double b = 0, double c = 1, double d = 0, double e = 0, double f = 0, double nan_val = 0, double inf_val = 0);
50  static function<uchar (double x, double y)> Function_2D_to_1D_8bit (int type, double a = 1, double b = 0, double c = 1, double d = 0, double e = 0, double f = 0, uchar nan_val = 0, uchar inf_val = 0);
51  static function<complex<double> (complex<double> x, complex<double> y)> Function_2D_to_1D_Complex (int type, double sx, double ox, double sy, double oy, double a = 1, double b = 0, double c = 1, double d = 0, double e = 0, double f = 0, double nan_val = 0, double inf_val = 0);
52  static function<bool (double x, double y)> Condition_2D (int type, double a = 1, double b = 0, double c = 1, double d = 0, double e = 0, double f = 0, double g = 0, double h = 0);
53 
54  static function<double (double x, double y, double z, double t, double s, double p)> Function_6D_to_1D(int type, double sx, double ox, double sy, double oy, double sz, double oz, double st, double ot, double ss, double os, double sp, double op, double a = 1, double b = 0, double c = 1, double d = 0, double e = 0, double f = 0, double nan_val = 0, double inf_val = 0);
55  static function<double (double x, double a, double b, double c, double d, double e, double f)> Curve_Array(int prototype);
56 
57  static bool Compare (size_t compare_index, double v1, double v2);
58  static bool Smaller_3D (double x0, double x1, double x2, double y0, double y1, double y2);
59  static bool SmallerOrEqual_3D (double x0, double x1, double x2, double y0, double y1, double y2);
60  static bool Greater_3D (double x0, double x1, double x2, double y0, double y1, double y2);
61  static bool GreaterOrEqual_3D (double x0, double x1, double x2, double y0, double y1, double y2);
62 
63  static int Distance_Transformation_1D (vector<double> *v_edt, vector<double> v_line, double spacing = 1);
64 
65  //static double RandomNumberDistribution(int type, double min, double max, double a, double b, double c, double d, double e, double f);
66 
67  static double Binomial_Coefficient (double n, double k);
68  static double Distance (Point pt1, Point pt2);
69  static double Distance (Point2f pt1, Point pt2);
70  static double Distance (Point pt1, Point2f pt2);
71  static double Distance (Point2f pt1, Point2f pt2);
72  static double Distance (Point2d pt1, Point2d pt2);
73  static double Distance (Point2f pt, Rect r);
74  static double Distance (Point pt, Rect r);
75  static double AngleRad (Point2f pt1, Point2f pt2);
76  static double Pythagoras (double x, double y);
77  static Point2f Center (Point2f pt1, Point2f pt2);
78 
79  static double AreaCircle (double r);
80  static double AreaCircleSection_r_s (double r, double s);
81  static double AreaCircleSection_r_alpha (double r, double alpha);
82  static double AreaOverlapCircles (double r1, double r2, double d);
83 
84  static double Difference_AngleRad (double a1, double a2);
85  static double Distance_AngleRad_Shortest_Unsigned (double a1, double a2);
86  static double Distance_AngleRad_Shortest_Signed (double a1, double a2);
87  static double Sum_AngleRad (double a1, double a2);
88 
89  static double Complex_Real (complex<double> c) {return c.real();}
90  static double Complex_Imaginary (complex<double> c) {return c.imag();}
91  static double Complex_Absolute (complex<double> c) {return sqrt(c.real() * c.real() + c.imag() * c.imag());}
92  static double Complex_Absolute (double r, double i) {return sqrt(r * r + i * i);}
93  static double Complex_Phase (complex<double> c) {return atan2(c.imag(), c.real());}
94  static double Complex_Phase (double r, double i) {return atan2(i, r);}
95  static double Complex_Absolute_Square (complex<double> c) {double a = Complex_Absolute(c); return a * a;}
96  static double Complex_Absolute_Square (double r, double i) {double a = Complex_Absolute(r, i); return a * a;}
97  static complex<double> Complex_Conjugated (complex<double> c) {return complex<double>(c.real(), -c.imag());}
98  static complex<double> Complex_Conjugated (double r, double i) {return complex<double>(r, -i);}
99 
100  static function<double (double val_in)> CopyValue ();
101  static function<double (double val_in)> LimitRange (double min, double max);
102  static function<uchar (double val_in)> Spread_2_8bit (double min, double max, function<double (double val_in)> F);
103  static function<double (double val_in)> GammaCorrect_to01 (double min, double max, double gamma);
104  static function<double (double val_in)> Log_Centered (double center, double divisor);
105  static function<double (double val_in)> Log_Centered (double min, double max, double center, double divisor);
106 
107 
108  static bool Points_Are_Neighbors_8 (Point P0, Point P1);
109  static vector<Point> Line_Bresenham_8 (Point P0, Point P1);
110 private:
111  static vector<Point> Line_Bresenham_8_Low (int x0, int y0, int x1, int y1);
112  static vector<Point> Line_Bresenham_8_High (int x0, int y0, int x1, int y1);
113 public:
114  static int Close_Contour_Gaps_With_Lines_8 (vector<Point> *pvContour);
115  static int Close_Contour_Gaps_With_Lines_8 (vector<vector<Point>> *pvvContours);
116 
117  static Point Minimum_TrisectionInterval (function<double (double)> F, double start_border_low, double start_border_high, double resolution_needed);
118  static int MedianRunning (vector<uchar> *vDataOut, vector<uchar> vDataIn, size_t mask_size);
119  static int QuantilRunning (vector<uchar> *vDataOut, vector<uchar> vDataIn, size_t mask_size, double quantil_lower);
120  static int Maximum_Gil (vector<double> *vDataOut, vector<double> *vDataIn, size_t mask_size);
121 
122  static Mat Homogenious_2D (double x, double y);
123  static Mat Homogenious_2D (double u, double v, double w);
124  static Mat Homogenious_2D (Mat V_inhomo);
125  static Mat Homogenious_3D (double x, double y, double z);
126  static Mat Homogenious_3D (double u, double v, double w, double q);
127  static Mat Homogenious_3D (Mat V_inhomo);
128 
129  static Mat Inhomogenious_2D (double x, double y);
130  static Mat Inhomogenious_2D (double u, double v, double w);
131  static Mat Inhomogenious_2D (Mat V_homo);
132  static Mat Inhomogenious_3D (double x, double y, double z);
133  static Mat Inhomogenious_3D (double u, double v, double w, double q);
134  static Mat Inhomogenious_3D (Mat V_homo);
135 
136  static Mat Shift_2D_h (double shift_x, double shift_y);
137  static Mat Shift_3D_h (double shift_x, double shift_y, double shift_z);
138  static Mat Rotation_2D_i_deg (double angle);
139  static Mat Rotation_3D_i_deg (double angle_x, double angle_y, double angle_z);
140  static Mat Rotation_2D_i_rad (double angle);
141  static Mat Rotation_3D_i_rad (double angle_x, double angle_y, double angle_z);
142  static Mat Rotation_2D_h_deg (double angle);
143  static Mat Rotation_2D_h_deg (double angle, double center_x, double center_y);
144  static Mat Rotation_3D_h_deg (double angle_x, double angle_y, double angle_z);
145  static Mat Rotation_3D_h_deg (double angle_x, double angle_y, double angle_z, double center_x, double center_y, double center_z);
146  static Mat Rotation_2D_h_rad (double angle);
147  static Mat Rotation_2D_h_rad (double angle, double center_x, double center_y);
148  static Mat Rotation_3D_h_rad (double angle_x, double angle_y, double angle_z);
149  static Mat Rotation_3D_h_rad (double angle_x, double angle_y, double angle_z, double center_x, double center_y, double center_z);
150  static Mat Euclidean_2D_h_deg (double shift_x, double shift_y, double angle);
151  static Mat Euclidean_3D_h_deg (double shift_x, double shift_y, double shift_z, double angle_x, double angle_y, double angle_z);
152  static Mat Euclidean_2D_h_rad (double shift_x, double shift_y, double angle);
153  static Mat Euclidean_3D_h_rad (double shift_x, double shift_y, double shift_z, double angle_x, double angle_y, double angle_z);
154  static Mat Similarity_2D_h_deg (double shift_x, double shift_y, double angle, double scale);
155  static Mat Similarity_3D_h_deg (double shift_x, double shift_y, double shift_z, double angle_x, double angle_y, double angle_z, double scale);
156  static Mat Similarity_2D_h_rad (double shift_x, double shift_y, double angle, double scale);
157  static Mat Similarity_3D_h_rad (double shift_x, double shift_y, double shift_z, double angle_x, double angle_y, double angle_z, double scale);
158  static Mat Affinity_2D_h (double shift_x, double shift_y, double a11, double a12, double a21, double a22);
159  static Mat Affinity_3D_h (double shift_x, double shift_y, double shift_z, double a11, double a12, double a13, double a21, double a22, double a23, double a31, double a32, double a33);
160  static Mat Projektion_2D_h (double shift_x, double shift_y, double a11, double a12, double a21, double a22, double p1, double p2);
161  static Mat Projektion_3D_h (double shift_x, double shift_y, double shift_z, double a11, double a12, double a13, double a21, double a22, double a23, double a31, double a32, double a33, double p1, double p2, double p3);
162  static Mat Projektion_ND_h (Mat A, Mat t, Mat P);
163 
164 private:
165 
166 
167 };
168 
169 #endif // D_MATH_H
c_MATH_2D_TO_1D_STRIPES_RECT_X_Y
@ c_MATH_2D_TO_1D_STRIPES_RECT_X_Y
Definition: d_enum.h:1064
Mat
cv::Mat Mat
Definition: d_opencv_typedefs.h:28
D_Math::Curve_Array
static function< double(double x, double a, double b, double c, double d, double e, double f)> Curve_Array(int prototype)
Definition: d_math.cpp:1364
ER_okay
@ ER_okay
Definition: d_enum.h:133
c_MATH_2D_TO_1D_GAUSS
@ c_MATH_2D_TO_1D_GAUSS
Definition: d_enum.h:1056
c_E
const double c_E
Definition: d_enum.h:2543
D_Math::AreaCircle
static double AreaCircle(double r)
Definition: d_math.cpp:1613
D_Math::Function_2D_to_1D_8bit
static function< uchar(double x, double y)> Function_2D_to_1D_8bit(int type, double a=1, double b=0, double c=1, double d=0, double e=0, double f=0, uchar nan_val=0, uchar inf_val=0)
Definition: d_math.cpp:527
c_MATH_2D_TO_1D_X_divby_Y
@ c_MATH_2D_TO_1D_X_divby_Y
Definition: d_enum.h:1038
D_Math::Distance
static double Distance(Point pt1, Point pt2)
Definition: d_math.cpp:1511
D_Math::Euclidean_3D_h_rad
static Mat Euclidean_3D_h_rad(double shift_x, double shift_y, double shift_z, double angle_x, double angle_y, double angle_z)
Definition: d_math.cpp:2561
D_Math::Function_2D_to_1D_Complex
static function< complex< double >complex< double > x, complex< double > y)> Function_2D_to_1D_Complex(int type, double sx, double ox, double sy, double oy, double a=1, double b=0, double c=1, double d=0, double e=0, double f=0, double nan_val=0, double inf_val=0)
Definition: d_math.cpp:860
c_MATH_2D_TO_1D_Y_divby_X
@ c_MATH_2D_TO_1D_Y_divby_X
Definition: d_enum.h:1039
D_Math::Function_2D_to_1D
static function< double(double x, double y)> Function_2D_to_1D(int type, double a=1, double b=0, double c=1, double d=0, double e=0, double f=0, double nan_val=0, double inf_val=0)
Definition: d_math.cpp:88
D_Math::Difference_AngleRad
static double Difference_AngleRad(double a1, double a2)
Definition: d_math.cpp:1688
D_Math::Shift_3D_h
static Mat Shift_3D_h(double shift_x, double shift_y, double shift_z)
Definition: d_math.cpp:2417
c_MATH_2D_TO_1D_ELLIPSE
@ c_MATH_2D_TO_1D_ELLIPSE
Definition: d_enum.h:1065
D_Math::Function_1D_to_1D
static function< double(double x)> Function_1D_to_1D(int type, double a=1, double b=0, double c=0, double d=0)
Definition: d_math.cpp:16
D_Math::Complex_Real
static double Complex_Real(complex< double > c)
Definition: d_math.h:89
D_Math::Rotation_2D_i_deg
static Mat Rotation_2D_i_deg(double angle)
Definition: d_math.cpp:2429
d_math.h
D_Math::Distance_AngleRad_Shortest_Unsigned
static double Distance_AngleRad_Shortest_Unsigned(double a1, double a2)
Definition: d_math.cpp:1696
c_MATH_2D_TO_1D_SIN_X_Y
@ c_MATH_2D_TO_1D_SIN_X_Y
Definition: d_enum.h:1053
c_COND_INTERVALS_IN_INCL_XOR
@ c_COND_INTERVALS_IN_INCL_XOR
Definition: d_enum.h:1215
D_Math::Pythagoras
static double Pythagoras(double x, double y)
Definition: d_math.cpp:1601
c_MATH_1D_TO_1D_X_power_2
@ c_MATH_1D_TO_1D_X_power_2
Definition: d_enum.h:1009
Point2f
cv::Point2f Point2f
Definition: d_opencv_typedefs.h:37
c_MATH_2D_TO_1D_COMPLEX_X_PLUS_Y
@ c_MATH_2D_TO_1D_COMPLEX_X_PLUS_Y
Definition: d_enum.h:1115
D_Math::Similarity_3D_h_rad
static Mat Similarity_3D_h_rad(double shift_x, double shift_y, double shift_z, double angle_x, double angle_y, double angle_z, double scale)
Definition: d_math.cpp:2605
D_Math::Smaller_3D
static bool Smaller_3D(double x0, double x1, double x2, double y0, double y1, double y2)
Definition: d_math.cpp:1407
D_Math::Euclidean_3D_h_deg
static Mat Euclidean_3D_h_deg(double shift_x, double shift_y, double shift_z, double angle_x, double angle_y, double angle_z)
Definition: d_math.cpp:2542
PI_2_0
const double PI_2_0
Definition: d_enum.h:2537
c_MATH_2D_TO_1D_ZERNIKE_J
@ c_MATH_2D_TO_1D_ZERNIKE_J
Definition: d_enum.h:1067
c_COND_INTERVALS_IN_INCL_OR
@ c_COND_INTERVALS_IN_INCL_OR
Definition: d_enum.h:1213
c_MATH_2D_TO_1D_X_Y_atan2
@ c_MATH_2D_TO_1D_X_Y_atan2
Definition: d_enum.h:1052
D_Math::Complex_Absolute
static double Complex_Absolute(double r, double i)
Definition: d_math.h:92
c_MATH_6D_TO_1D_ASM_REAL
@ c_MATH_6D_TO_1D_ASM_REAL
Definition: d_enum.h:1144
D_Math::Homogenious_2D
static Mat Homogenious_2D(double x, double y)
Definition: d_math.cpp:2249
c_MATH_2D_TO_1D_X_times_Y
@ c_MATH_2D_TO_1D_X_times_Y
Definition: d_enum.h:1037
ER_size_missmatch
@ ER_size_missmatch
Definition: d_enum.h:141
D_Math::Rotation_3D_h_rad
static Mat Rotation_3D_h_rad(double angle_x, double angle_y, double angle_z)
Definition: d_math.cpp:2512
Rect
cv::Rect Rect
Definition: d_opencv_typedefs.h:65
c_MATH_2D_TO_1D_2SPHERES
@ c_MATH_2D_TO_1D_2SPHERES
Definition: d_enum.h:1058
c_COMPARE_EQUAL
@ c_COMPARE_EQUAL
Definition: d_enum.h:1235
D_Math::Distance_AngleRad_Shortest_Signed
static double Distance_AngleRad_Shortest_Signed(double a1, double a2)
Definition: d_math.cpp:1701
D_Math::Rotation_3D_i_rad
static Mat Rotation_3D_i_rad(double angle_x, double angle_y, double angle_z)
Definition: d_math.cpp:2452
D_Math::Condition_2D
static function< bool(double x, double y)> Condition_2D(int type, double a=1, double b=0, double c=1, double d=0, double e=0, double f=0, double g=0, double h=0)
Definition: d_math.cpp:944
c_MATH_2D_TO_1D_Y
@ c_MATH_2D_TO_1D_Y
Definition: d_enum.h:1033
Grad2Rad
const double Grad2Rad
Definition: d_enum.h:2542
PI
const double PI
Definition: d_enum.h:2534
c_MATH_2D_TO_1D_const_E
@ c_MATH_2D_TO_1D_const_E
Definition: d_enum.h:1031
c_MATH_1D_TO_1D_X
@ c_MATH_1D_TO_1D_X
Definition: d_enum.h:1008
c_MATH_2D_TO_1D_COMPLEX_CONST_E_iF
@ c_MATH_2D_TO_1D_COMPLEX_CONST_E_iF
Definition: d_enum.h:1113
c_MATH_1D_TO_1D_X_FACULTY
@ c_MATH_1D_TO_1D_X_FACULTY
Definition: d_enum.h:1011
c_CURVE_ARRAY_POLYNOM_DG_5
@ c_CURVE_ARRAY_POLYNOM_DG_5
Definition: d_enum.h:1278
D_Math::Distance_Transformation_1D
static int Distance_Transformation_1D(vector< double > *v_edt, vector< double > v_line, double spacing=1)
Definition: d_math.cpp:1260
c_MATH_2D_TO_1D_FOURIER_MATRIX_SINUS
@ c_MATH_2D_TO_1D_FOURIER_MATRIX_SINUS
Definition: d_enum.h:1060
c_MATH_2D_TO_1D_X_Y_norm
@ c_MATH_2D_TO_1D_X_Y_norm
Definition: d_enum.h:1051
c_COMPARE_GREATER_EQUAL
@ c_COMPARE_GREATER_EQUAL
Definition: d_enum.h:1239
D_Math::Center
static Point2f Center(Point2f pt1, Point2f pt2)
Definition: d_math.cpp:1606
D_Math::AreaCircleSection_r_s
static double AreaCircleSection_r_s(double r, double s)
Definition: d_math.cpp:1618
D_Math::Homogenious_3D
static Mat Homogenious_3D(double x, double y, double z)
Definition: d_math.cpp:2283
D_Math::Rotation_2D_h_deg
static Mat Rotation_2D_h_deg(double angle)
Definition: d_math.cpp:2471
D_Math::Spread_2_8bit
static function< uchar(double val_in)> Spread_2_8bit(double min, double max, function< double(double val_in)> F)
Definition: d_math.cpp:1745
c_MATH_6D_TO_1D_CYLINDER_3D
@ c_MATH_6D_TO_1D_CYLINDER_3D
Definition: d_enum.h:1143
D_Math::Rotation_3D_h_deg
static Mat Rotation_3D_h_deg(double angle_x, double angle_y, double angle_z)
Definition: d_math.cpp:2481
D_Math::Rotation_2D_i_rad
static Mat Rotation_2D_i_rad(double angle)
Definition: d_math.cpp:2439
D_Math::Close_Contour_Gaps_With_Lines_8
static int Close_Contour_Gaps_With_Lines_8(vector< vector< Point >> *pvvContours)
D_Math::Shift_2D_h
static Mat Shift_2D_h(double shift_x, double shift_y)
Definition: d_math.cpp:2406
c_COND_GREATER_EQUAL
@ c_COND_GREATER_EQUAL
Definition: d_enum.h:1208
D_Math::Euclidean_2D_h_rad
static Mat Euclidean_2D_h_rad(double shift_x, double shift_y, double angle)
Definition: d_math.cpp:2547
D_Math::Similarity_2D_h_rad
static Mat Similarity_2D_h_rad(double shift_x, double shift_y, double angle, double scale)
Definition: d_math.cpp:2591
c_MATH_2D_TO_1D_X_minus_Y
@ c_MATH_2D_TO_1D_X_minus_Y
Definition: d_enum.h:1035
Point
cv::Point Point
Definition: d_opencv_typedefs.h:35
c_MATH_6D_TO_1D_TEST_3D_Z_LAYERS
@ c_MATH_6D_TO_1D_TEST_3D_Z_LAYERS
Definition: d_enum.h:1147
c_MATH_2D_TO_1D_X_difference_Y_smaller_E_abs
@ c_MATH_2D_TO_1D_X_difference_Y_smaller_E_abs
Definition: d_enum.h:1049
c_MATH_2D_TO_1D_X
@ c_MATH_2D_TO_1D_X
Definition: d_enum.h:1032
c_MATH_6D_TO_1D_CUBOID_3D
@ c_MATH_6D_TO_1D_CUBOID_3D
Definition: d_enum.h:1142
D_Math::Inhomogenious_3D
static Mat Inhomogenious_3D(double x, double y, double z)
Definition: d_math.cpp:2364
D_Math::Sum_AngleRad
static double Sum_AngleRad(double a1, double a2)
Definition: d_math.cpp:1716
c_MATH_2D_TO_1D_SINC_ABS_X_Y
@ c_MATH_2D_TO_1D_SINC_ABS_X_Y
Definition: d_enum.h:1055
D_Math::LimitRange
static function< double(double val_in)> LimitRange(double min, double max)
Definition: d_math.cpp:1732
c_COND_INTERVALS_IN_INCL_AND
@ c_COND_INTERVALS_IN_INCL_AND
Definition: d_enum.h:1211
c_MATH_2D_TO_1D_X_difference_Y_equal_E_abs
@ c_MATH_2D_TO_1D_X_difference_Y_equal_E_abs
Definition: d_enum.h:1047
D_Math::Euclidean_2D_h_deg
static Mat Euclidean_2D_h_deg(double shift_x, double shift_y, double angle)
Definition: d_math.cpp:2537
D_Math::Complex_Phase
static double Complex_Phase(double r, double i)
Definition: d_math.h:94
c_COMPARE_SMALLER
@ c_COMPARE_SMALLER
Definition: d_enum.h:1236
c_MATH_2D_TO_1D_FOURIER_MATRIX_COSINUS
@ c_MATH_2D_TO_1D_FOURIER_MATRIX_COSINUS
Definition: d_enum.h:1059
c_COMPARE_SMALLER_EQUAL
@ c_COMPARE_SMALLER_EQUAL
Definition: d_enum.h:1237
c_COMPARE_NOT_EQUAL
@ c_COMPARE_NOT_EQUAL
Definition: d_enum.h:1240
D_Math::Maximum_Gil
static int Maximum_Gil(vector< double > *vDataOut, vector< double > *vDataIn, size_t mask_size)
Definition: d_math.cpp:2145
c_MATH_1D_TO_1D_BINOMIAL_X_OUTOF_D
@ c_MATH_1D_TO_1D_BINOMIAL_X_OUTOF_D
Definition: d_enum.h:1012
c_MATH_2D_TO_1D_X_difference_Y_equal_E
@ c_MATH_2D_TO_1D_X_difference_Y_equal_E
Definition: d_enum.h:1043
D_Math::Minimum_TrisectionInterval
static Point Minimum_TrisectionInterval(function< double(double)> F, double start_border_low, double start_border_high, double resolution_needed)
D_Math::Minimum_TrisectionInterval use trisection of interval to determin the minimum of a convex fun...
Definition: d_math.cpp:1978
D_Math::GreaterOrEqual_3D
static bool GreaterOrEqual_3D(double x0, double x1, double x2, double y0, double y1, double y2)
Definition: d_math.cpp:1443
c_COND_INTERVALS_IN_EXCL_AND
@ c_COND_INTERVALS_IN_EXCL_AND
Definition: d_enum.h:1210
D_Math::AreaOverlapCircles
static double AreaOverlapCircles(double r1, double r2, double d)
D_Math::AreaOverlapCircles.
Definition: d_math.cpp:1653
c_MATH_6D_TO_1D_PRODUCT
@ c_MATH_6D_TO_1D_PRODUCT
Definition: d_enum.h:1141
c_MATH_2D_TO_1D_COMPLEX_LOGISTIC_MAP
@ c_MATH_2D_TO_1D_COMPLEX_LOGISTIC_MAP
Definition: d_enum.h:1121
c_MATH_2D_TO_1D_COMPLEX_X_MINUS_Y
@ c_MATH_2D_TO_1D_COMPLEX_X_MINUS_Y
Definition: d_enum.h:1116
c_MATH_2D_TO_1D_X_plus_Y
@ c_MATH_2D_TO_1D_X_plus_Y
Definition: d_enum.h:1034
D_Math::Rotation_2D_h_rad
static Mat Rotation_2D_h_rad(double angle)
Definition: d_math.cpp:2491
c_COND_EQUAL
@ c_COND_EQUAL
Definition: d_enum.h:1204
c_MATH_2D_TO_1D_X_difference_Y_smaller_E
@ c_MATH_2D_TO_1D_X_difference_Y_smaller_E
Definition: d_enum.h:1045
D_Math::Similarity_3D_h_deg
static Mat Similarity_3D_h_deg(double shift_x, double shift_y, double shift_z, double angle_x, double angle_y, double angle_z, double scale)
Definition: d_math.cpp:2586
D_Math::QuantilRunning
static int QuantilRunning(vector< uchar > *vDataOut, vector< uchar > vDataIn, size_t mask_size, double quantil_lower)
Definition: d_math.cpp:2038
D_Math::Log_Centered
static function< double(double val_in)> Log_Centered(double center, double divisor)
Definition: d_math.cpp:1780
c_COND_SMALLER
@ c_COND_SMALLER
Definition: d_enum.h:1205
c_MATH_2D_TO_1D_SIN_X_Y_PI
@ c_MATH_2D_TO_1D_SIN_X_Y_PI
Definition: d_enum.h:1054
c_MATH_1D_TO_1D_GAMMA
@ c_MATH_1D_TO_1D_GAMMA
Definition: d_enum.h:1013
c_MATH_2D_TO_1D_X_greater_Y
@ c_MATH_2D_TO_1D_X_greater_Y
Definition: d_enum.h:1041
D_Math::Affinity_2D_h
static Mat Affinity_2D_h(double shift_x, double shift_y, double a11, double a12, double a21, double a22)
Definition: d_math.cpp:2625
D_Math::Inhomogenious_2D
static Mat Inhomogenious_2D(double x, double y)
Definition: d_math.cpp:2325
c_COMPARE_GREATER
@ c_COMPARE_GREATER
Definition: d_enum.h:1238
c_MATH_2D_TO_1D_X_difference_Y_smaller_F_greater_E
@ c_MATH_2D_TO_1D_X_difference_Y_smaller_F_greater_E
Definition: d_enum.h:1046
D_Math
The D_Math class Mathematic functionalities.
Definition: d_math.h:43
D_Math::Binomial_Coefficient
static double Binomial_Coefficient(double n, double k)
Definition: d_math.cpp:1490
c_MATH_2D_TO_1D_X_minus_Y_abs
@ c_MATH_2D_TO_1D_X_minus_Y_abs
Definition: d_enum.h:1036
D_Math::Greater_3D
static bool Greater_3D(double x0, double x1, double x2, double y0, double y1, double y2)
Definition: d_math.cpp:1431
D_Math::Compare
static bool Compare(size_t compare_index, double v1, double v2)
Definition: d_math.cpp:1395
c_MATH_2D_TO_1D_COMPLEX_X_TIMES_Y
@ c_MATH_2D_TO_1D_COMPLEX_X_TIMES_Y
Definition: d_enum.h:1117
D_Math::CopyValue
static function< double(double val_in)> CopyValue()
Definition: d_math.cpp:1724
Point2d
cv::Point2d Point2d
Definition: d_opencv_typedefs.h:38
c_MATH_6D_TO_1D_ASM_IMAG
@ c_MATH_6D_TO_1D_ASM_IMAG
Definition: d_enum.h:1145
D_Math::Affinity_3D_h
static Mat Affinity_3D_h(double shift_x, double shift_y, double shift_z, double a11, double a12, double a13, double a21, double a22, double a23, double a31, double a32, double a33)
Definition: d_math.cpp:2636
d_opencv_typedefs.h
D_Math::SmallerOrEqual_3D
static bool SmallerOrEqual_3D(double x0, double x1, double x2, double y0, double y1, double y2)
Definition: d_math.cpp:1419
D_Math::AreaCircleSection_r_alpha
static double AreaCircleSection_r_alpha(double r, double alpha)
Definition: d_math.cpp:1639
D_Math::Complex_Imaginary
static double Complex_Imaginary(complex< double > c)
Definition: d_math.h:90
c_MATH_2D_TO_1D_X_smaller_Y
@ c_MATH_2D_TO_1D_X_smaller_Y
Definition: d_enum.h:1042
c_MATH_2D_TO_1D_COMPLEX_X_iY
@ c_MATH_2D_TO_1D_COMPLEX_X_iY
Definition: d_enum.h:1114
c_MATH_2D_TO_1D_ZERNIKE_NM
@ c_MATH_2D_TO_1D_ZERNIKE_NM
Definition: d_enum.h:1066
D_Math::Complex_Phase
static double Complex_Phase(complex< double > c)
Definition: d_math.h:93
D_Math::D_Math
D_Math()
Definition: d_math.cpp:11
c_MATH_2D_TO_1D_X_equals_Y
@ c_MATH_2D_TO_1D_X_equals_Y
Definition: d_enum.h:1040
d_enum.h
D_Math::MedianRunning
static int MedianRunning(vector< uchar > *vDataOut, vector< uchar > vDataIn, size_t mask_size)
Definition: d_math.cpp:2029
D_Math::Similarity_2D_h_deg
static Mat Similarity_2D_h_deg(double shift_x, double shift_y, double angle, double scale)
Definition: d_math.cpp:2581
D_Math::Complex_Absolute
static double Complex_Absolute(complex< double > c)
Definition: d_math.h:91
c_MATH_2D_TO_1D_COMPLEX_X_DIV_Y
@ c_MATH_2D_TO_1D_COMPLEX_X_DIV_Y
Definition: d_enum.h:1118
c_COND_INTERVALS_IN_EXCL_OR
@ c_COND_INTERVALS_IN_EXCL_OR
Definition: d_enum.h:1212
ER_parameter_bad
@ ER_parameter_bad
Definition: d_enum.h:142
D_Math::Function_6D_to_1D
static function< double(double x, double y, double z, double t, double s, double p)> Function_6D_to_1D(int type, double sx, double ox, double sy, double oy, double sz, double oz, double st, double ot, double ss, double os, double sp, double op, double a=1, double b=0, double c=1, double d=0, double e=0, double f=0, double nan_val=0, double inf_val=0)
Definition: d_math.cpp:1066
c_MATH_2D_TO_1D_BINOMIAL_XoutofE_times_YoutofF_normed
@ c_MATH_2D_TO_1D_BINOMIAL_XoutofE_times_YoutofF_normed
Definition: d_enum.h:1062
c_MATH_2D_TO_1D_X_difference_Y_greater_E
@ c_MATH_2D_TO_1D_X_difference_Y_greater_E
Definition: d_enum.h:1044
c_MATH_2D_TO_1D_COMPLEX_X_POW_Y
@ c_MATH_2D_TO_1D_COMPLEX_X_POW_Y
Definition: d_enum.h:1119
D_Math::Projektion_3D_h
static Mat Projektion_3D_h(double shift_x, double shift_y, double shift_z, double a11, double a12, double a13, double a21, double a22, double a23, double a31, double a32, double a33, double p1, double p2, double p3)
Definition: d_math.cpp:2659
c_MATH_2D_TO_1D_LN_GAUSS
@ c_MATH_2D_TO_1D_LN_GAUSS
Definition: d_enum.h:1057
D_Math::Complex_Absolute_Square
static double Complex_Absolute_Square(double r, double i)
Definition: d_math.h:96
c_MATH_6D_TO_1D_const_E
@ c_MATH_6D_TO_1D_const_E
Definition: d_enum.h:1140
c_MATH_6D_TO_1D_TEST_3D_CHESS
@ c_MATH_6D_TO_1D_TEST_3D_CHESS
Definition: d_enum.h:1146
D_Math::Complex_Absolute_Square
static double Complex_Absolute_Square(complex< double > c)
Definition: d_math.h:95
c_MATH_1D_TO_1D_A_times_X
@ c_MATH_1D_TO_1D_A_times_X
Definition: d_enum.h:1010
c_COND_SMALLER_EQUAL
@ c_COND_SMALLER_EQUAL
Definition: d_enum.h:1206
D_Math::Rotation_3D_i_deg
static Mat Rotation_3D_i_deg(double angle_x, double angle_y, double angle_z)
Definition: d_math.cpp:2434
c_COND_NOT_EQUAL
@ c_COND_NOT_EQUAL
Definition: d_enum.h:1209
D_Math::Complex_Conjugated
static complex< double > Complex_Conjugated(double r, double i)
Definition: d_math.h:98
D_Math::Close_Contour_Gaps_With_Lines_8
static int Close_Contour_Gaps_With_Lines_8(vector< Point > *pvContour)
D_Math::Close_Contour_Gaps_With_Lines_8 closes the gaps in between contour points with straight lines...
Definition: d_math.cpp:1916
c_MATH_1D_TO_1D_LOG_CENTERED
@ c_MATH_1D_TO_1D_LOG_CENTERED
Definition: d_enum.h:1014
c_MATH_2D_TO_1D_BINOMIAL_XoutofE_times_YoutofF
@ c_MATH_2D_TO_1D_BINOMIAL_XoutofE_times_YoutofF
Definition: d_enum.h:1061
c_MATH_2D_TO_1D_X_difference_Y_greater_E_abs
@ c_MATH_2D_TO_1D_X_difference_Y_greater_E_abs
Definition: d_enum.h:1048
c_MATH_2D_TO_1D_X_difference_Y_smaller_F_greater_E_abs
@ c_MATH_2D_TO_1D_X_difference_Y_smaller_F_greater_E_abs
Definition: d_enum.h:1050
D_Math::Points_Are_Neighbors_8
static bool Points_Are_Neighbors_8(Point P0, Point P1)
Definition: d_math.cpp:1810
c_MATH_2D_TO_1D_COMPLEX_LOGISTIC_MAP_SIMPLE
@ c_MATH_2D_TO_1D_COMPLEX_LOGISTIC_MAP_SIMPLE
Definition: d_enum.h:1120
D_Math::Projektion_ND_h
static Mat Projektion_ND_h(Mat A, Mat t, Mat P)
Definition: d_math.cpp:2671
D_Math::Complex_Conjugated
static complex< double > Complex_Conjugated(complex< double > c)
Definition: d_math.h:97
D_Math::AngleRad
static double AngleRad(Point2f pt1, Point2f pt2)
Definition: d_math.cpp:1594
D_Math::Projektion_2D_h
static Mat Projektion_2D_h(double shift_x, double shift_y, double a11, double a12, double a21, double a22, double p1, double p2)
Definition: d_math.cpp:2648
c_COND_INTERVALS_IN_EXCL_XOR
@ c_COND_INTERVALS_IN_EXCL_XOR
Definition: d_enum.h:1214
c_COND_GREATER
@ c_COND_GREATER
Definition: d_enum.h:1207
D_Math::Line_Bresenham_8
static vector< Point > Line_Bresenham_8(Point P0, Point P1)
Definition: d_math.cpp:1815
ER_empty
@ ER_empty
Definition: d_enum.h:135
D_Math::GammaCorrect_to01
static function< double(double val_in)> GammaCorrect_to01(double min, double max, double gamma)
Definition: d_math.cpp:1764