 |
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.
9 #ifndef D_MAKRO_CURVEFITTING_H
10 #define D_MAKRO_CURVEFITTING_H
22 #include <QMainWindow>
23 #include <QFileDialog>
25 #include <QFileInfoList>
29 #include <QCloseEvent>
30 #include <QResizeEvent>
31 #include <QInputDialog>
33 #include <QDoubleSpinBox>
34 #include <QPlainTextEdit>
48 #include <opencv2/core/core.hpp>
49 #include <opencv2/highgui/highgui.hpp>
50 #include <opencv2/imgproc/imgproc.hpp>
69 void closeEvent(QCloseEvent *event);
70 void resizeEvent(QResizeEvent *event);
75 void Populate_CB_Single(QComboBox *CB, QStringList QSL,
int index_init);
77 void ParamInitUiVectors();
78 void DataInitUiVectors();
83 void DataWeightsRead();
84 void ParametersRead();
85 void ParametersCount();
86 void ParameterSpaceInit();
88 void ParameterSpaceShow();
89 void ParameterSpaceWrite(
int i_d1,
int i_w1,
int i_d2,
int i_w2,
double val);
96 void on_doubleSpinBox_step_d1_valueChanged(
double arg1);
98 void on_doubleSpinBox_step_w1_valueChanged(
double arg1);
100 void on_doubleSpinBox_step_d2_valueChanged(
double arg1);
102 void on_doubleSpinBox_step_w2_valueChanged(
double arg1);
105 void on_doubleSpinBox_range_t_max_valueChanged(
double arg1);
107 void on_doubleSpinBox_range_a_max_valueChanged(
double arg1);
109 void on_spinBox_VisDispPlane_d1_valueChanged(
int arg1);
111 void on_spinBox_VisDispPlane_w1_valueChanged(
int arg1);
113 void on_spinBox_VisDispPlane_d2_valueChanged(
int arg1);
115 void on_spinBox_VisDispPlane_w2_valueChanged(
int arg1);
117 void on_comboBox_VisDispPlane_Plane_currentIndexChanged(
int index);
120 Ui::D_MAKRO_CurveFitting *ui;
122 bool ClosingPossible =
false;
124 bool state_function_selected =
false;
125 bool state_data_read =
false;
126 bool state_parameters_read =
false;
132 vector<vector<vector<double>>> vvv_Data_Set_TA;
133 vector<int> v_number_of_points;
134 vector<double> v_data_score_weights;
135 vector<QSpinBox*> v_data_score_weights_ui;
136 vector<QPlainTextEdit*> v_Data_ui;
141 vector<QLabel*> v_param_cur_ui;
142 vector<QLabel*> v_param_opt_ui;
143 vector<QDoubleSpinBox*> v_param_min_ui;
144 vector<QDoubleSpinBox*> v_param_max_ui;
145 vector<QDoubleSpinBox*> v_param_step_ui;
146 vector<double> v_param_cur;
147 vector<double> v_param_min;
148 vector<double> v_param_max;
149 vector<double> v_param_step;
150 vector<double> v_param_opt;
151 vector<int> v_param_count;
152 int param_space_size = 0;
157 Mat MA_ParamSpaceSlice;
162 long double Test_Combi(
long double t,
long double w1,
long double d1,
long double w2,
long double d2,
int set);
163 long double Test_F3_Pb(
long double t,
long double w1,
long double d1,
long double w2,
long double d2);
164 long double Test_F4_Bi(
long double t,
long double w1,
long double d1,
long double w2,
long double d2);
167 long double Franzi_Combi(
long double t,
long double w1,
long double d1,
long double w2,
long double d2,
int set,
bool past);
168 long double Franzi_Pb_Combi(
long double t,
long double w1,
long double d1,
long double w2,
long double d2);
169 long double Franzi_Bi_Combi(
long double t,
long double w1,
long double d1,
long double w2,
long double d2);
172 long double Franzi_n1_Rn_pre60min(
long double t,
long double ld);
173 long double Franzi_n2_Po_pre60min(
long double t,
long double ld);
174 long double Franzi_n3_Pb_pre60min(
long double t,
long double ld);
175 long double Franzi_n4_Bi_pre60min(
long double t,
long double ld);
178 long double Franzi_n1_Rn_past60min(
long double t,
long double ld,
long double n10);
179 long double Franzi_n2_Po_past60min(
long double t,
long double ld,
long double n10,
long double n20);
180 long double Franzi_n3_Pb_past60min(
long double t,
long double ld,
long double n10,
long double n20,
long double n30);
181 long double Franzi_n4_Bi_past60min(
long double t,
long double ld,
long double n10,
long double n20,
long double n30,
long double n40);
183 long double Franzi_n1_Rn_past60min_single(
long double t,
long double ld);
184 long double Franzi_n2_Po_past60min_single(
long double t,
long double ld);
185 long double Franzi_n3_Pb_past60min_single(
long double t,
long double ld);
186 long double Franzi_n4_Bi_past60min_single(
long double t,
long double ld);
189 long double Franzi_n10_Rn_60min(
long double w1,
long double d1,
long double w2,
long double d2);
190 long double Franzi_n20_Po_60min(
long double w1,
long double d1,
long double w2,
long double d2);
191 long double Franzi_n30_Pb_60min(
long double w1,
long double d1,
long double w2,
long double d2);
192 long double Franzi_n40_Bi_60min(
long double w1,
long double d1,
long double w2,
long double d2);
194 long double Franzi_n10_Rn_60min_single(
long double ld);
195 long double Franzi_n20_Po_60min_single(
long double ld);
196 long double Franzi_n30_Pb_60min_single(
long double ld);
197 long double Franzi_n40_Bi_60min_single(
long double ld);
202 QChartView *pChartView;
206 void ERR(
int err, QString func =
"not specified", QString detail =
"not specified");
209 const double t_fix = 60;
210 const double t_min = 0;
212 double a_display_min_max = 2000;
213 const double l1 = log(2) / (3.80 * 60.0 * 24.0);
214 const double l2 = log(2) / (3.10);
215 const double l3 = log(2) / (26.80);
216 const double l4 = log(2) / (19.80);
241 QStringList QSL_DataSet =
258 const QStringList QSL_PlanesDW =
269 #endif // D_MAKRO_CURVEFITTING_H
cv::Mat Mat
Definition: d_opencv_typedefs.h:28
void set_dir_M_RadonCurveFit(QString path)
Definition: d_storage.h:111
void Update_View()
D_Viewer::Update_View Starts the workflow to show an image.
Definition: d_viewer.cpp:2096
static double Optimize_Init(int opt_type)
Definition: d_stat.cpp:4185
void Populate_CB_Single(QComboBox *CB, QStringList QSL, int index_init)
Definition: d_makro_curvefitting.cpp:100
void set_size_X(int X)
Definition: d_visdat_dim.h:90
void Populate_CB()
Definition: d_makro_curvefitting.cpp:109
The D_Viewer class Display images (Mat) in QGraphicsView in the user interface.
Definition: d_viewer.h:58
The D_Storage class Used for storing data. There is only one instance in D_MainWindow .
Definition: d_storage.h:49
void Update_Image(Mat *MA_new)
D_Viewer::Update_Image Set and show image.
Definition: d_viewer.cpp:2079
static int Read_2D_Plane(Mat *pMA_Out, D_VisDat_Obj *pVD_In, D_VisDat_Slice_2D InPlane)
Definition: d_visdat_proc.cpp:2946
const QStringList QSL_Optimize_1D
Definition: d_enum.h:963
void Set_Transformation_Mode(bool smooth)
D_Viewer::Set_Transformation_Mode Set transformation mode to fit an image to a viewer of different si...
Definition: d_viewer.cpp:2213
@ c_OPT_1D_MINIMUM
Definition: d_enum.h:957
void UpdateUi()
Definition: d_makro_curvefitting.cpp:92
The D_VisDat_Dim class Represents a 6D volume.
Definition: d_visdat_dim.h:49
void set_size_P(int P)
Definition: d_visdat_dim.h:95
void ERR(int err, QString sender, QString func, QString detail)
D_Error_Handler::ERR pops an error message if an error occured and/or streams it to a csv file.
Definition: d_error_handler.cpp:23
Definition: d_makro_curvefitting.h:62
void ParamInitUiVectors()
Definition: d_makro_curvefitting.cpp:116
The D_VisDat_Obj class Represents a 6D image.
Definition: d_visdat_obj.h:51
Mat * pMA_full()
Definition: d_visdat_obj.h:61
void set_ClosingPossible(bool closeable)
Definition: d_makro_curvefitting.h:71
static bool Optimize(double val, double *opt, int opt_type)
Definition: d_stat.cpp:4140
void set_size_Y(int Y)
Definition: d_visdat_dim.h:91
static int Plot_XY_Fit(QChartView *pChartView, vector< vector< vector< double >>> vvv_XY_Data_Measure, vector< vector< vector< double >>> vvv_XY_Data_Fit, QString name_title, QStringList qsl_name_series, QString name_x, QString name_y)
Definition: d_plot.cpp:3307
The D_Error_Handler class takes error codes from D_ERROR_ENUM and shows a popup if an error occures.
Definition: d_error_handler.h:38
~D_MAKRO_CurveFitting()
Definition: d_makro_curvefitting.cpp:67
void set_size_T(int T)
Definition: d_visdat_dim.h:93
QDir * dir_M_RadonCurveFit()
Definition: d_storage.h:83
void DataInitUiVectors()
Definition: d_makro_curvefitting.cpp:173
The D_VisDat_Slice_2D class Represents a 2D slice through a D_VisDat_Obj.
Definition: d_visdat_slice_2d.h:18
QString Info_Dims()
Definition: d_visdat_obj.cpp:216
void set_GV(QGraphicsView *GV_ui)
Definition: d_viewer.cpp:49
static int Plot_Empty(QChartView *pChartView, QString QS_Text="No_Additional_Information")
Definition: d_plot.cpp:16
void set_size_Z(int Z)
Definition: d_visdat_dim.h:92
void set_size_S(int S)
Definition: d_visdat_dim.h:94
Definition: d_analysiswindow.h:58
@ c_DIM_NUMBER_OF
Definition: d_enum.h:241
const QStringList QSL_StatList2D
Definition: d_enum.h:877
QString Save_Image()
D_Viewer::Save_Image Saves the image at FI_LastSaved.
Definition: d_viewer.cpp:2157
D_MAKRO_CurveFitting(D_Storage *pStorage, QWidget *parent=0)
Definition: d_makro_curvefitting.cpp:12
cv::Vec< T, N > Vec
Definition: d_opencv_typedefs.h:44
@ c_STAT_2D_DIFF_REL_MEAN
Definition: d_enum.h:866
void closeEvent(QCloseEvent *event)
Definition: d_makro_curvefitting.cpp:72
void resizeEvent(QResizeEvent *event)
Definition: d_makro_curvefitting.cpp:86
static int Calc_Stats_2D(vector< double > *v_stats, vector< double > v_data_x, vector< double > v_data_y)
Definition: d_stat.cpp:348