24 #ifndef DIGIKAM_REFOCUS_MATRIX_H
25 #define DIGIKAM_REFOCUS_MATRIX_H
98 static void fill_matrix(
CMat*
const matrix,
const int m,
double f(
const int,
const int,
const double),
const double fun_arg);
101 double f(
const int,
const int,
const double,
const double),
102 const double fun_arg1,
const double fun_arg2);
111 const double gamma,
const double noise_factor,
112 const double musq,
const bool symmetric);
119 static double mat_elt(
const Mat*
const mat,
const int r,
const int c);
120 static inline double c_mat_elt(
const CMat*
const mat,
const int col,
const int row);
124 static Mat* allocate_matrix(
int nrows,
int ncols);
125 static CMat* allocate_c_mat(
const int radius);
127 static double* mat_eltptr(
Mat*
const mat,
const int r,
const int c);
129 static inline double* c_mat_eltptr(
CMat*
const mat,
const int col,
const int row);
131 static void convolve_mat(
CMat*
const result,
const CMat*
const mata,
const CMat*
const matb);
133 static int as_idx(
const int k,
const int l,
const int m);
134 static int as_cidx(
const int k,
const int l);
136 static Mat* make_s_matrix(
CMat*
const mat,
int m,
double noise_factor);
137 static Mat* make_s_cmatrix(
CMat*
const mat,
int m,
double noise_factor);
139 static double correlation(
const int x,
const int y,
const double gamma,
const double musq);
141 static Mat* copy_vec(
const CMat*
const mat,
const int m);
142 static Mat* copy_cvec(
const CMat*
const mat,
const int m);
143 static CMat* copy_cvec2mat(
const Mat*
const cvec,
const int m);
144 static CMat* copy_vec2mat(
const Mat*
const cvec,
const int m);
145 static CMat* compute_g(
const CMat*
const convolution,
const int m,
const double gamma,
146 const double noise_factor,
const double musq,
const bool symmetric);
148 static double circle_integral(
const double x,
const double radius);
149 static double circle_intensity(
const int x,
const int y,
const double radius);
Definition: refocusmatrix.h:94
static void init_c_mat(CMat *const mat, const int radius)
Definition: refocusmatrix.cpp:147
static void convolve_star_mat(CMat *const result, const CMat *const mata, const CMat *const matb)
Definition: refocusmatrix.cpp:213
static void fill_matrix(CMat *const matrix, const int m, double f(const int, const int, const double), const double fun_arg)
Definition: refocusmatrix.cpp:497
static double c_mat_elt(const CMat *const mat, const int col, const int row)
Definition: refocusmatrix.cpp:178
static void finish_c_mat(CMat *const mat)
Definition: refocusmatrix.cpp:165
static CMat * compute_g_matrix(const CMat *const convolution, const int m, const double gamma, const double noise_factor, const double musq, const bool symmetric)
Definition: refocusmatrix.cpp:462
static void make_circle_convolution(const double radius, CMat *const convolution, const int m)
Definition: refocusmatrix.cpp:661
static void fill_matrix2(CMat *const matrix, const int m, double f(const int, const int, const double, const double), const double fun_arg1, const double fun_arg2)
Definition: refocusmatrix.cpp:513
static void finish_and_free_matrix(Mat *const mat)
Definition: refocusmatrix.cpp:125
static void make_gaussian_convolution(const double alpha, CMat *const convolution, const int m)
Definition: refocusmatrix.cpp:529
static void finish_matrix(Mat *const mat)
Definition: refocusmatrix.cpp:120
static double mat_elt(const Mat *const mat, const int r, const int c)
Definition: refocusmatrix.cpp:139
MetaEngineRotation matrix(MetaEngineRotation::TransformationAction action)
Definition: metaengine_rotation.cpp:81
Definition: datefolderview.cpp:43
Definition: refocusmatrix.h:45
int radius
Definition: refocusmatrix.h:49
int row_stride
Definition: refocusmatrix.h:53
double * data
Definition: refocusmatrix.h:57
double * center
Definition: refocusmatrix.h:61
Definition: refocusmatrix.h:75
int cols
Definition: refocusmatrix.h:83
int rows
Definition: refocusmatrix.h:79
double * data
Definition: refocusmatrix.h:87