 |
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.
|
Go to the documentation of this file.
10 #ifndef D_IMG_PROC_3D_H
11 #define D_IMG_PROC_3D_H
29 #include <QMainWindow>
40 #include <opencv2/core/core.hpp>
41 #include <opencv2/highgui/highgui.hpp>
42 #include <opencv2/imgproc/imgproc.hpp>
59 static int Duplicate (
Mat *pMA_Out,
Mat *pMA_In);
61 static int Convert_Uchar_1C (
Mat *pMA_Out,
Mat *pMA_In);
62 static int Convert_Double_1C (
Mat *pMA_Out,
Mat *pMA_In);
63 static int Convert_Double (
Mat *pMA_Out,
Mat *pMA_In);
65 static int Pad_Border (
Mat *pMA_Out,
Mat *pMA_In,
int border_size_x,
int border_size_y,
int border_size_z,
int border_type =
BORDER_CONSTANT,
double border_val = 0);
67 static int Filter_Function (
Mat *pMA_Out,
Mat *pMA_In,
Mat *pMA_Mask,
function<
double (
double cur,
double nei)> F1_CenterImage,
function<
double (
double f1r,
double msk)> F2_f1mask,
function<
double (vector<double> vf2r)> F3_Combine,
function<
double (
double f3r,
double cen)> F4_f3center,
int border_type =
BORDER_CONSTANT,
bool DoNonZeroMaskOnly =
false);
68 static int Filter_Function_1C (
Mat *pMA_Out,
Mat *pMA_In,
Mat *pMA_Mask,
function<
double (
double cur,
double nei)> F1_CenterImage,
function<
double (
double f1r,
double msk)> F2_f1mask,
function<
double (vector<double> vf2r)> F3_Combine,
function<
double (
double f3r,
double cen)> F4_f3center,
int border_type =
BORDER_CONSTANT,
int thread_number = 8,
bool DoNonZeroMaskOnly =
false);
69 static int Filter_Function_1C_Thread (
Mat *pMA_Out,
Mat *pMA_In,
Mat *pMA_Mask,
function<
double (
double cur,
double nei)> F1_CenterImage,
function<
double (
double f1r,
double msk)> F2_f1mask,
function<
double (vector<double> vf2r)> F3_Combine,
function<
double (
double f3r,
double cen)> F4_f3center,
int z_start,
int z_end,
int y_start,
int y_end,
int x_start,
int x_end,
bool DoNonZeroMaskOnly =
false);
70 static int Filter_Function_8bit (
Mat *pMA_Out,
Mat *pMA_In,
Mat *pMA_Mask,
function<uchar (
double cur,
double nei)> F1_CenterImage,
function<uchar (
double f1r,
double msk)> F2_f1mask,
function<uchar (vector<double> vf2r)> F3_Combine,
function<uchar (
double f3r,
double cen)> F4_f3center,
int border_type =
BORDER_CONSTANT,
bool DoNonZeroMaskOnly =
false);
71 static int Filter_Function_8bit_1C (
Mat *pMA_Out,
Mat *pMA_In,
Mat *pMA_Mask,
function<uchar (
double cur,
double nei)> F1_CenterImage,
function<uchar (
double f1r,
double msk)> F2_f1mask,
function<uchar (vector<double> vf2r)> F3_Combine,
function<uchar (
double f3r,
double cen)> F4_f3center,
int border_type =
BORDER_CONSTANT,
int thread_number = 8,
bool DoNonZeroMaskOnly =
false);
72 static int Filter_Function_8bit_1C_Thread (
Mat *pMA_Out,
Mat *pMA_In,
Mat *pMA_Mask,
function<uchar (
double cur,
double nei)> F1_CenterImage,
function<uchar (
double f1r,
double msk)> F2_f1mask,
function<uchar (vector<double> vf2r)> F3_Combine,
function<uchar (
double f3r,
double cen)> F4_f3center,
int z_start,
int z_end,
int y_start,
int y_end,
int x_start,
int x_end,
bool DoNonZeroMaskOnly =
false);
74 static int Filter_Median (
Mat *pMA_Out,
Mat *pMA_In,
int size_x = 3,
int size_y = 3,
int size_z = 3);
75 static int Filter_Eilenstein_Greater_Sum (
Mat *pMA_Out,
Mat *pMA_In,
int size_x = 3,
int size_y = 3,
int size_z = 3);
77 static int Morphology_Dilation (
Mat *pMA_Out,
Mat *pMA_In,
int size_x = 3,
int size_y = 3,
int size_z = 3);
78 static int Morphology_Erosion (
Mat *pMA_Out,
Mat *pMA_In,
int size_x = 3,
int size_y = 3,
int size_z = 3);
80 static int Neighborhood_Configs (
Mat *pMA_Out,
Mat *pMA_In);
82 static int Distance_Transformation_EDT (
Mat *pMA_Out,
Mat *pMA_In,
double spacing_x = 1,
double spacing_y = 1,
double spacing_z = 1);
84 static int EulerNumber (
double *euler_number,
Mat *pMA_In);
85 static int EulerNumber (
double *euler_number,
Mat *pMA_Out,
Mat *pMA_In);
87 static int Calc_Hist_8bit_1C (vector<double> *v_hist,
Mat *pMA_In,
bool uniform,
bool accum);
89 static int InterferometerMichelson (
Mat *pMA_Out,
int scene_size_x_px,
int scene_size_y_px,
int scene_size_z_px,
double scale_px2um,
double wavelength_um,
double dist_source_um,
double dist_detector_um,
double dist_mirror1_um,
double dist_mirror2_um,
double angle_mirror1_x,
double angle_mirror1_y,
double angle_mirror2_x,
double angle_mirror2_y,
bool intensity_notfield,
bool beam_atSO_SO,
bool beam_atSO_M1_SO,
bool beam_atSO_SP_M2_SP_SO,
bool beam_atM1_SO,
bool beam_atM1_M1_SO,
bool beam_atM2_SP_SO,
bool beam_atM2_M2_SP_SO,
bool beam_atDE_SP_M1_SO,
bool beam_atDE_M2_SP_SO);
93 #endif // D_IMG_PROC_3D_H
cv::Mat Mat
Definition: d_opencv_typedefs.h:28
@ ER_okay
Definition: d_enum.h:133
static QString Type_of_Mat(Mat *pMA_In)
Definition: d_img_proc.cpp:363
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
const int BORDER_CONSTANT
Definition: d_opencv_typedefs.h:77
static int Convert_Uchar_1C(Mat *pMA_Out, Mat *pMA_In)
Definition: d_img_proc_3d.cpp:26
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
static Mat Shift_3D_h(double shift_x, double shift_y, double shift_z)
Definition: d_math.cpp:2417
static int Filter_Function_8bit_1C(Mat *pMA_Out, Mat *pMA_In, Mat *pMA_Mask, function< uchar(double cur, double nei)> F1_CenterImage, function< uchar(double f1r, double msk)> F2_f1mask, function< uchar(vector< double > vf2r)> F3_Combine, function< uchar(double f3r, double cen)> F4_f3center, int border_type=BORDER_CONSTANT, int thread_number=8, bool DoNonZeroMaskOnly=false)
Definition: d_img_proc_3d.cpp:1297
static int Filter_Function_8bit_1C_Thread(Mat *pMA_Out, Mat *pMA_In, Mat *pMA_Mask, function< uchar(double cur, double nei)> F1_CenterImage, function< uchar(double f1r, double msk)> F2_f1mask, function< uchar(vector< double > vf2r)> F3_Combine, function< uchar(double f3r, double cen)> F4_f3center, int z_start, int z_end, int y_start, int y_end, int x_start, int x_end, bool DoNonZeroMaskOnly=false)
Definition: d_img_proc_3d.cpp:1414
@ c_STAT_MINIMUM
Definition: d_enum.h:754
@ ER_channel_missmatch
Definition: d_enum.h:145
@ c_MATH_2D_TO_1D_X_times_Y
Definition: d_enum.h:1037
@ ER_size_missmatch
Definition: d_enum.h:141
static Mat Rotation_3D_h_rad(double angle_x, double angle_y, double angle_z)
Definition: d_math.cpp:2512
static int Neighborhood_Configs(Mat *pMA_Out, Mat *pMA_In)
Definition: d_img_proc_3d.cpp:1821
static int Morphology_Erosion(Mat *pMA_Out, Mat *pMA_In, int size_x=3, int size_y=3, int size_z=3)
Definition: d_img_proc_3d.cpp:1748
@ c_MATH_2D_TO_1D_Y
Definition: d_enum.h:1033
const double PI
Definition: d_enum.h:2534
static int Distance_Transformation_1D(vector< double > *v_edt, vector< double > v_line, double spacing=1)
Definition: d_math.cpp:1260
const double PI_0_5
Definition: d_enum.h:2538
@ c_STAT_MAXIMUM
Definition: d_enum.h:774
static function< double(vector< double >)> Function_SingleStat(int stat)
Definition: d_stat.cpp:683
static Mat Homogenious_3D(double x, double y, double z)
Definition: d_math.cpp:2283
static int Filter_Function_1C_Thread(Mat *pMA_Out, Mat *pMA_In, Mat *pMA_Mask, function< double(double cur, double nei)> F1_CenterImage, function< double(double f1r, double msk)> F2_f1mask, function< double(vector< double > vf2r)> F3_Combine, function< double(double f3r, double cen)> F4_f3center, int z_start, int z_end, int y_start, int y_end, int x_start, int x_end, bool DoNonZeroMaskOnly=false)
Definition: d_img_proc_3d.cpp:977
The D_Img_Proc_3D class static 3D image processing functions.
Definition: d_img_proc_3d.h:55
@ ER_bitdepth_bad
Definition: d_enum.h:138
@ c_MATH_2D_TO_1D_X
Definition: d_enum.h:1032
@ ER_parameter_missmatch
Definition: d_enum.h:143
static Mat Inhomogenious_3D(double x, double y, double z)
Definition: d_math.cpp:2364
static int InterferometerMichelson(Mat *pMA_Out, int scene_size_x_px, int scene_size_y_px, int scene_size_z_px, double scale_px2um, double wavelength_um, double dist_source_um, double dist_detector_um, double dist_mirror1_um, double dist_mirror2_um, double angle_mirror1_x, double angle_mirror1_y, double angle_mirror2_x, double angle_mirror2_y, bool intensity_notfield, bool beam_atSO_SO, bool beam_atSO_M1_SO, bool beam_atSO_SP_M2_SP_SO, bool beam_atM1_SO, bool beam_atM1_M1_SO, bool beam_atM2_SP_SO, bool beam_atM2_M2_SP_SO, bool beam_atDE_SP_M1_SO, bool beam_atDE_M2_SP_SO)
Definition: d_img_proc_3d.cpp:2217
@ c_STAT_MEDIAN
Definition: d_enum.h:764
@ ER_type_bad
Definition: d_enum.h:136
const int BORDER_REPLICATE
Definition: d_opencv_typedefs.h:82
@ ER_channel_bad
Definition: d_enum.h:144
static int Filter_Function(Mat *pMA_Out, Mat *pMA_In, Mat *pMA_Mask, function< double(double cur, double nei)> F1_CenterImage, function< double(double f1r, double msk)> F2_f1mask, function< double(vector< double > vf2r)> F3_Combine, function< double(double f3r, double cen)> F4_f3center, int border_type=BORDER_CONSTANT, bool DoNonZeroMaskOnly=false)
Definition: d_img_proc_3d.cpp:656
static int Pad_Border(Mat *pMA_Out, Mat *pMA_In, int border_size_x, int border_size_y, int border_size_z, int border_type=BORDER_CONSTANT, double border_val=0)
Definition: d_img_proc_3d.cpp:312
cv::Scalar Scalar
Definition: d_opencv_typedefs.h:30
static function< uchar(vector< double >)> Function_SingleStat_8bit(int stat)
Definition: d_stat.cpp:1779
@ c_STAT_SUM
Definition: d_enum.h:737
static int Convert_Double(Mat *pMA_Out, Mat *pMA_In)
Definition: d_img_proc_3d.cpp:202
@ ER_size_bad
Definition: d_enum.h:140
static int Duplicate(Mat *pMA_Out, Mat *pMA_In)
Definition: d_img_proc_3d.cpp:16
@ c_MATH_2D_TO_1D_X_greater_Y
Definition: d_enum.h:1041
static int Distance_Transformation_EDT(Mat *pMA_Out, Mat *pMA_In, double spacing_x=1, double spacing_y=1, double spacing_z=1)
Definition: d_img_proc_3d.cpp:1884
static int Calc_Hist_8bit_1C(vector< double > *v_hist, Mat *pMA_In, bool uniform, bool accum)
Definition: d_img_proc_3d.cpp:2187
static int Filter_Function_8bit(Mat *pMA_Out, Mat *pMA_In, Mat *pMA_Mask, function< uchar(double cur, double nei)> F1_CenterImage, function< uchar(double f1r, double msk)> F2_f1mask, function< uchar(vector< double > vf2r)> F3_Combine, function< uchar(double f3r, double cen)> F4_f3center, int border_type=BORDER_CONSTANT, bool DoNonZeroMaskOnly=false)
Definition: d_img_proc_3d.cpp:1109
static int Filter_Median(Mat *pMA_Out, Mat *pMA_In, int size_x=3, int size_y=3, int size_z=3)
Definition: d_img_proc_3d.cpp:1547
static int EulerNumber(double *euler_number, Mat *pMA_In)
Definition: d_img_proc_3d.cpp:2028
static double FieldStrength(Mat Position, Mat Source, double fieldstrength, double phaseoffset_rad, double wavelength_m)
Definition: d_physics.cpp:8
static int Filter_Function_1C(Mat *pMA_Out, Mat *pMA_In, Mat *pMA_Mask, function< double(double cur, double nei)> F1_CenterImage, function< double(double f1r, double msk)> F2_f1mask, function< double(vector< double > vf2r)> F3_Combine, function< double(double f3r, double cen)> F4_f3center, int border_type=BORDER_CONSTANT, int thread_number=8, bool DoNonZeroMaskOnly=false)
Definition: d_img_proc_3d.cpp:863
cv::Vec< T, N > Vec
Definition: d_opencv_typedefs.h:44
@ ER_parameter_bad
Definition: d_enum.h:142
const int BORDER_DEFAULT
Definition: d_opencv_typedefs.h:78
D_Img_Proc_3D()
Definition: d_img_proc_3d.cpp:11
static int Morphology_Dilation(Mat *pMA_Out, Mat *pMA_In, int size_x=3, int size_y=3, int size_z=3)
Definition: d_img_proc_3d.cpp:1675
@ ER_dim_3D_only
Definition: d_enum.h:165
static int Filter_Eilenstein_Greater_Sum(Mat *pMA_Out, Mat *pMA_In, int size_x=3, int size_y=3, int size_z=3)
Definition: d_img_proc_3d.cpp:1629
static int Convert_Double_1C(Mat *pMA_Out, Mat *pMA_In)
Definition: d_img_proc_3d.cpp:114
@ ER_empty
Definition: d_enum.h:135