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_img_proc_3dfactory.h
Go to the documentation of this file.
1 /************************************
2  * added: 05.07.2019 *
3  * author: David Eilenstein *
4  * contact: D.Eilenstein@gsi.de *
5  * project: ImageD *
6  * facility: GSI Darmstadt, Ger *
7  ************************************/
8 
9 #ifndef D_IMG_PROC_3DFACTORY_H
10 #define D_IMG_PROC_3DFACTORY_H
11 
12 //own
13 #include <d_enum.h>
14 #include <d_img_proc_3d.h>
15 #include <d_stat.h>
16 #include <d_component.h>
17 #include <d_component_list.h>
19 
20 //general
21 #include <iostream>
22 #include <vector>
23 #include <fstream>
24 #include <sstream>
25 #include <thread>
26 
27 //Qt
28 #include <QMainWindow>
29 #include <QImage>
30 #include <QPainter>
31 #include <QPen>
32 #include <QColor>
33 #include <QFileInfo>
34 #include <QDir>
35 #include <QString>
36 #include <QDebug>
37 
38 //openCV
39 #include <opencv2/core/core.hpp>
40 #include <opencv2/highgui/highgui.hpp>
41 #include <opencv2/imgproc/imgproc.hpp>
42 
43 //namespaces
44 using namespace std;
45 //using namespace cv; (prohibited because of abigous names with qtdatavisualization)
46 #include <d_opencv_typedefs.h>
47 
53 {
54 public:
56 
57  static function<int (Mat *, Mat *)> Duplicate ();
58  static function<int (Mat *, Mat *)> Pad_Border (int border_size_x, int border_size_y, int border_size_z, int border_type = BORDER_CONSTANT, double border_val = 0);
59 
60  static function<int (Mat *, Mat *, Mat*)> Filter_Function (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);
61  static function<int (Mat *, Mat *, Mat*)> Filter_Function_8bit (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);
62 
63 
64  static function<int (Mat *, Mat *)> Filter_Median (int size_x = 3, int size_y = 3, int size_z = 3);
65  static function<int (Mat *, Mat *)> Filter_Eilenstein_Greater_Sum (int size_x = 3, int size_y = 3, int size_z = 3);
66 
67  static function<int (Mat *, Mat *)> Morphology_Dilation (int size_x = 3, int size_y = 3, int size_z = 3);
68  static function<int (Mat *, Mat *)> Morphology_Erosion (int size_x = 3, int size_y = 3, int size_z = 3);
69 
70  static function<int (Mat *, Mat *)> Neighborhood_Configs ();
71  static function<int (Mat *, Mat *)> Euler_Number (double *euler_number);
72 
73  static function<int (Mat *, Mat *)> Distance_Transformation_EDT (double spacing_x = 1, double spacing_y = 1, double spacing_z = 1);
74 
75  static function<int (Mat *)> InterferometerMichelson (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);
76 
77 
78 };
79 
80 #endif // D_IMG_PROC_3DFACTORY_H
Mat
cv::Mat Mat
Definition: d_opencv_typedefs.h:28
BORDER_CONSTANT
const int BORDER_CONSTANT
Definition: d_opencv_typedefs.h:77
d_component.h
D_Img_Proc_3dFactory::D_Img_Proc_3dFactory
D_Img_Proc_3dFactory()
Definition: d_img_proc_3dfactory.cpp:12
D_Img_Proc_3dFactory::Filter_Function
static function< int(Mat *, Mat *, Mat *)> Filter_Function(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_3dfactory.cpp:44
d_value_distribution_list.h
D_Img_Proc_3D::Neighborhood_Configs
static int Neighborhood_Configs(Mat *pMA_Out, Mat *pMA_In)
Definition: d_img_proc_3d.cpp:1821
D_Img_Proc_3D::Morphology_Erosion
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
d_img_proc_3dfactory.h
D_Img_Proc_3dFactory::Morphology_Erosion
static function< int(Mat *, Mat *)> Morphology_Erosion(int size_x=3, int size_y=3, int size_z=3)
Definition: d_img_proc_3dfactory.cpp:122
D_Img_Proc_3dFactory::Distance_Transformation_EDT
static function< int(Mat *, Mat *)> Distance_Transformation_EDT(double spacing_x=1, double spacing_y=1, double spacing_z=1)
Definition: d_img_proc_3dfactory.cpp:159
D_Img_Proc_3dFactory::Filter_Median
static function< int(Mat *, Mat *)> Filter_Median(int size_x=3, int size_y=3, int size_z=3)
Definition: d_img_proc_3dfactory.cpp:80
D_Img_Proc_3dFactory::Pad_Border
static function< int(Mat *, Mat *)> Pad_Border(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_3dfactory.cpp:28
D_Img_Proc_3D::InterferometerMichelson
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
D_Img_Proc_3D::Filter_Function
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
D_Img_Proc_3dFactory::Duplicate
static function< int(Mat *, Mat *)> Duplicate()
Definition: d_img_proc_3dfactory.cpp:17
D_Img_Proc_3D::Pad_Border
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
D_Img_Proc_3dFactory::Morphology_Dilation
static function< int(Mat *, Mat *)> Morphology_Dilation(int size_x=3, int size_y=3, int size_z=3)
Definition: d_img_proc_3dfactory.cpp:108
D_Img_Proc_3dFactory::Filter_Function_8bit
static function< int(Mat *, Mat *, Mat *)> Filter_Function_8bit(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_3dfactory.cpp:62
d_component_list.h
D_Img_Proc_3D::Duplicate
static int Duplicate(Mat *pMA_Out, Mat *pMA_In)
Definition: d_img_proc_3d.cpp:16
D_Img_Proc_3dFactory::Euler_Number
static function< int(Mat *, Mat *)> Euler_Number(double *euler_number)
Definition: d_img_proc_3dfactory.cpp:147
D_Img_Proc_3D::Distance_Transformation_EDT
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
D_Img_Proc_3dFactory::InterferometerMichelson
static function< int(Mat *)> InterferometerMichelson(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_3dfactory.cpp:173
D_Img_Proc_3D::Filter_Function_8bit
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
D_Img_Proc_3D::Filter_Median
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
D_Img_Proc_3D::EulerNumber
static int EulerNumber(double *euler_number, Mat *pMA_In)
Definition: d_img_proc_3d.cpp:2028
D_Img_Proc_3dFactory
The D_Img_Proc_3dFactory class Factory that turns methods from D_Img_Proc_3D into function objects.
Definition: d_img_proc_3dfactory.h:53
d_opencv_typedefs.h
d_enum.h
D_Img_Proc_3dFactory::Neighborhood_Configs
static function< int(Mat *, Mat *)> Neighborhood_Configs()
Definition: d_img_proc_3dfactory.cpp:136
D_Img_Proc_3D::Morphology_Dilation
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
D_Img_Proc_3dFactory::Filter_Eilenstein_Greater_Sum
static function< int(Mat *, Mat *)> Filter_Eilenstein_Greater_Sum(int size_x=3, int size_y=3, int size_z=3)
Definition: d_img_proc_3dfactory.cpp:94
D_Img_Proc_3D::Filter_Eilenstein_Greater_Sum
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
d_img_proc_3d.h
d_stat.h