 |
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_CEREBRALORGANOIDS_H
10 #define D_MAKRO_CEREBRALORGANOIDS_H
24 #include <QMainWindow>
25 #include <QFileDialog>
27 #include <QFileInfoList>
31 #include <QCloseEvent>
32 #include <QResizeEvent>
33 #include <QInputDialog>
49 #include <opencv2/core/core.hpp>
50 #include <opencv2/highgui/highgui.hpp>
51 #include <opencv2/imgproc/imgproc.hpp>
70 void closeEvent(QCloseEvent *event);
71 void resizeEvent(QResizeEvent *event);
75 void Populate_CB_Single(QComboBox *CB, QStringList QSL,
int index_init = 0);
76 void Populate_CB_Init();
77 bool Populate_CB_LoadExp();
82 void UpdateView_Proc();
83 void UpdateView_Vis();
85 void UpdateImage_Proc();
86 void UpdateImage_Vis();
90 void UpdateProc_Stack();
92 void UpdateImgProc(
int step_start);
93 void UpdateImgProc_Step(
int step);
95 bool Calc_Single_All();
96 bool Calc_Single_Feats();
97 bool Calc_Single_Stats();
99 void Calc_Stack_All();
100 void Calc_Stack_TD_Comps();
101 void Calc_Stack_Flask_Stats();
102 void Calc_Stack_TD_Stats();
104 void UpdateResults();
105 void UpdateResults_Visualization();
106 void UpdateResults_Flask();
107 void UpdateResults_TD();
108 void UpdateResults_Exp();
109 void UpdateTable_Flask_Comp();
110 void UpdateTable_Flask_Stat();
111 void UpdateTable_TD_Comp();
112 void UpdateTable_TD_Stat();
113 void UpdatePlot_Exp_Stat_Line();
114 void UpdatePlot_Exp_Stat_Line_Errors();
116 void Save_Image(
D_Viewer *pViewer, QString name_default);
117 void Save_Plot(QChartView *pCV_Save, QString name_default);
118 void Save_Table(
D_Table *pTable, QString name_default);
119 void Save_Image_Processing();
120 void Save_Image_Visualization();
121 void Save_Table_Flask();
122 void Save_Table_TD();
123 void Save_Plot_Experiment();
125 bool Save_Analysis_DoAgainQuestion();
126 void Save_Analysis();
127 void Save_Analysis_Save();
128 void Save_Analysis_Update();
132 void Update_SettingsMM();
134 void on_comboBox_Data_Time_currentIndexChanged(
int index);
135 void on_comboBox_Data_Dose_currentIndexChanged(
int index);
136 void on_comboBox_Data_Flask_currentIndexChanged(
int index);
138 void on_doubleSpinBox_ProcSet_PixelSize_valueChanged(
double arg1);
140 void on_spinBox_ProcSet_BlurSize_valueChanged(
int arg1);
142 void on_doubleSpinBox_ProcSet_BlurSigma_valueChanged(
double arg1);
144 void on_spinBox_ProcSet_ColorSelect_H_Min_valueChanged(
int arg1);
146 void on_spinBox_ProcSet_ColorSelect_H_Max_valueChanged(
int arg1);
148 void on_spinBox_ProcSet_ColorSelect_S_Min_valueChanged(
int arg1);
150 void on_spinBox_ProcSet_ColorSelect_S_Max_valueChanged(
int arg1);
152 void on_spinBox_ProcSet_ColorSelect_V_Min_valueChanged(
int arg1);
154 void on_spinBox_ProcSet_ColorSelect_V_Max_valueChanged(
int arg1);
156 void on_spinBox_ProcSet_ClosingSize_valueChanged(
int arg1);
158 void on_spinBox_ProcSet_OpeningSize_valueChanged(
int arg1);
160 void on_doubleSpinBox_ProcSet_SelectArea_Min_valueChanged(
double arg1);
162 void on_doubleSpinBox_ProcSet_SelectArea_Max_valueChanged(
double arg1);
164 void on_doubleSpinBox_ProcSet_SelectRoundness_Min_valueChanged(
double arg1);
166 void on_doubleSpinBox_ProcSet_SelectRoundness_Max_valueChanged(
double arg1);
168 void on_tabWidget_Results_currentChanged(
int index);
170 void on_comboBox_ResFlask_Mode_currentIndexChanged(
int index);
172 void on_comboBox_ResTD_Mode_currentIndexChanged(
int index);
174 void on_comboBox_ResExp_Mode_currentIndexChanged(
int index);
176 void on_doubleSpinBox_ProcSet_Thresh_valueChanged(
double arg1);
178 void on_spinBox_ProcSet_ROI_Close_valueChanged(
int arg1);
180 void on_spinBox_ProcSet_ROI_Open_valueChanged(
int arg1);
182 void on_spinBox_ProcSet_ROI_Area_valueChanged(
int arg1);
184 void on_spinBox_ProcSet_ROI_Dilate_valueChanged(
int arg1);
187 Ui::D_MAKRO_CerebralOrganoids *ui;
188 bool ClosingPossible =
false;
203 QChartView *pChartView;
210 vector<QDir> vDIR_Times;
211 QStringList QSL_Times;
212 vector<double> vVAL_Times;
214 vector<vector<QDir>> vvDIR_Dose;
215 vector<QStringList> vQSL_Dose;
216 vector<vector<double>> vvVAL_Dose;
218 vector<vector<vector<QFileInfo>>> vvvFI_Flask;
219 vector<vector<QStringList>> vvQSL_Flask;
221 QFileInfo FIL_Reference;
225 QDir DIR_Save_Images;
226 QDir DIR_Save_Tables;
229 vector<vector<ofstream>> vvOS_stats;
236 QString StyleDefault;
240 bool state_exp_loaded =
false;
241 bool state_img_loaded_current =
false;
242 bool state_img_proc_up2date_current =
false;
243 bool state_stack_analysed =
false;
244 bool state_stack_processing =
false;
245 bool state_calced_stack =
false;
246 bool state_calced_stack_comps =
false;
247 bool state_calced_stack_stats =
false;
248 bool state_calced_current =
false;
249 bool state_calced_current_feats =
false;
250 bool state_calced_current_stats =
false;
253 vector<vector<double>> vvFeatComp_current;
254 vector<vector<double>> vvFeatStat_current;
255 vector<vector<vector<vector<vector<double>>>>> vvvvvTimeDoseFlaskFeatComp;
256 vector<vector<vector<vector<vector<double>>>>> vvvvvTimeDoseFlaskFeatStat;
257 vector<vector<vector<vector<double>>>> vvvvTimeDoseFeatComp;
258 vector<vector<vector<vector<double>>>> vvvvTimeDoseFeatStat;
264 vector<Mat> vMA_ProcSteps;
265 vector<vector<int>> vvProcSteps_up2date;
275 void ERR(
int err, QString func =
"not specified", QString detail =
"not specified");
288 STEP_OBJ_SELECT_AREA,
289 STEP_OBJ_SELECT_ROUNDNESS,
296 STEP_ROI_CONVEX_HULL,
297 STEP_OBJECTS_ACCEPTED,
300 const QStringList QSL_ProcStep = {
305 "04 Color Saturation",
308 "07 Objects Closing",
309 "08 Objects Opening",
310 "09 Objects Select by Area",
311 "10 Objects Select by Roundness",
318 "17 Roi Convex Hull",
319 "18 Objects Accepted",
324 FEAT_CUSTOM_NUMBER_OF
326 const QStringList QSL_FeatCustom = {
329 QStringList QSL_FeatAll;
340 enum RES_TYPE_FLASK {
343 RES_TYPE_FLASK_NUMBER_OF
345 const QStringList QSL_ResType_Flask = {
346 "Features of Components in Flask",
347 "Statistics of Features in Components in Flask"
353 RES_TYPE_TD_NUMBER_OF
355 const QStringList QSL_ResType_TD = {
356 "Features of Components at Time and Dose",
357 "Statistics of Features in Components at Time and Dose"
361 RES_TYPE_EXP_STATS_LINE_ERR,
362 RES_TYPE_EXP_STATS_LINE,
363 RES_TYPE_EXP_NUMBER_OF
365 const QStringList QSL_ResType_Exp = {
366 "Statistics of Features vs Time and Dose with Errors",
367 "Statistics of Features vs Time and Dose"
371 #endif // D_MAKRO_CEREBRALORGANOIDS_H
cv::Mat Mat
Definition: d_opencv_typedefs.h:28
void closeEvent(QCloseEvent *event)
Definition: d_makro_cerebralorganoids.cpp:94
@ ER_okay
Definition: d_enum.h:133
static int Fill_Holes(Mat *pMA_Out, Mat *pMA_In)
Definition: d_img_proc.cpp:12257
~D_MAKRO_CerebralOrganoids()
Definition: d_makro_cerebralorganoids.cpp:89
void Update_View()
D_Viewer::Update_View Starts the workflow to show an image.
Definition: d_viewer.cpp:2096
@ c_STAT_SEM_ABS_TOTAL
Definition: d_enum.h:789
const QStringList QSl_AlphabetAll
Definition: d_enum.h:2263
size_t size()
Definition: d_component_list.h:94
static int Feature_Select(Mat *pMA_Out, Mat *pMA_In, int feature, double f_min, double f_max, int connectivity=4)
Definition: d_img_proc.cpp:15710
static int Load_From_Path(Mat *pMA_Out, QFileInfo FI_path)
Definition: d_img_proc.cpp:16
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 set_data_d_2D_qsl_count(vector< vector< double >> vv_data, QStringList qsl_col_names)
Definition: d_table.cpp:98
void Update_Image(Mat *MA_new)
D_Viewer::Update_Image Set and show image.
Definition: d_viewer.cpp:2079
QString Save_Table()
Definition: d_table.cpp:186
static int Labeling(Mat *pMA_Out, Mat *pMA_In, int connectivity, int out_depth)
Definition: d_img_proc.cpp:12350
void set_TW(QTableWidget *TW)
Definition: d_table.cpp:16
void set_dir_M_CerebralOrganoids(QString path)
Definition: d_storage.h:113
const QStringList QSL_FeatureList
Definition: d_enum.h:1457
QString Save_Image_Dialog()
D_Viewer::Save_Image_Dialog Opens a dialog to save the show image (generated default path)
Definition: d_viewer.cpp:2105
const int MORPH_CLOSE
Definition: d_opencv_typedefs.h:92
static int Mask(Mat *pMA_Out, Mat *pMA_In, Mat *pMA_Mask)
Definition: d_img_proc.cpp:14098
@ c_FEAT_ROUNDNESS
Definition: d_enum.h:1322
@ c_STAT_STAN_DEV_TOTAL
Definition: d_enum.h:750
const int MORPH_RECT
Definition: d_opencv_typedefs.h:86
The D_Table class Display tables in QTableWidget in the user interface.
Definition: d_table.h:42
static int Draw_Label_Numbers_LUT(Mat *pMA_Out, Mat *pMA_In, Mat *pMA_Label, vector< double > v_LUT, bool border, double scale, double thickness, bool center, int precision, uchar r=0, uchar g=0, uchar b=0)
Definition: d_img_proc.cpp:18727
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
static int Split(Mat *pMA_Out, Mat *pMA_In, unsigned int channel)
Definition: d_img_proc.cpp:4007
static int Plot_Line_XY_Multi(QChartView *pChartView, vector< vector< double >> vv_XY_Data, QString name_title, QString name_series, QString name_x, QString name_y, int x_trans=c_AXE_TRANS_LIN, int y_trans=c_AXE_TRANS_LIN, bool dots_visible=false, bool heat_color=false, bool heat_color_AllColors=false, Qt::Alignment legend_pos=Qt::AlignTop)
void set_data_d_2D_qsl_qsl(vector< vector< double >> vv_data, QStringList qsl_col_names, QStringList qsl_row_names)
Definition: d_table.cpp:74
const int MORPH_OPEN
Definition: d_opencv_typedefs.h:91
QDir * dir_M_CerebralOrganoids()
Definition: d_storage.h:85
const int MORPH_DILATE
Definition: d_opencv_typedefs.h:88
@ c_FEAT_LABEL
Definition: d_enum.h:1314
static int Color_Grab(Mat *pMA_Out, Mat *pMA_In, int color_space, int out_mode, vector< uchar > min, vector< uchar > max)
Definition: d_img_proc.cpp:6950
void resizeEvent(QResizeEvent *event)
Definition: d_makro_cerebralorganoids.cpp:108
void set_GV(QGraphicsView *GV_ui)
Definition: d_viewer.cpp:49
int set_Mat(Mat *pMA_BinaryOrLabel, int connectivity=8)
Definition: d_component_list.cpp:22
Definition: d_analysiswindow.h:58
static int Morphology_Elemental(Mat *pMA_Out, Mat *pMA_In, int morph_type, int elem_type, unsigned int elem_size_X, unsigned int elem_size_Y, int border_type, unsigned int iterations)
Definition: d_img_proc.cpp:7041
The D_Component_List class is a list of D_Component representing the blobs in a binary image.
Definition: d_component_list.h:46
void set_ClosingPossible(bool closeable)
Definition: d_makro_cerebralorganoids.h:72
@ c_COL2MONO_GRAY
Definition: d_enum.h:651
const int MORPH_ELLIPSE
Definition: d_opencv_typedefs.h:87
@ c_GEO_CONVEX_HULL
Definition: d_enum.h:2054
D_MAKRO_CerebralOrganoids(D_Storage *pStorage, QWidget *parent=0)
Definition: d_makro_cerebralorganoids.cpp:12
static int Convert_Color(Mat *pMA_Out, Mat *pMA_In, int cvt_mode)
Definition: d_img_proc.cpp:2524
void connect_Zoom(D_Viewer *viewer)
Definition: d_viewer.cpp:128
const QStringList QSL_StatList
Definition: d_enum.h:797
double get_Feature(int comp, int feat)
Definition: d_component_list.h:60
static int Reduce_Geometric(Mat *pMA_Out, Mat *pMA_In, int geometric, int connectivity=8, int thickness=1, uchar value=255)
Definition: d_img_proc.cpp:16215
QString Save_Image()
D_Viewer::Save_Image Saves the image at FI_LastSaved.
Definition: d_viewer.cpp:2157
Definition: d_makro_cerebralorganoids.h:63
static int Math_Add(Mat *pMA_Out, Mat *pMA_In1, double summand)
Definition: d_img_proc.cpp:12364
const int BORDER_DEFAULT
Definition: d_opencv_typedefs.h:78
QString Save_Table_Dialog()
Definition: d_table.cpp:158
Mat * get_Adress(size_t pos)
Definition: d_storage.h:54
static int Filter_Gauss(Mat *pMA_Out, Mat *pMA_In, int size_x, int size_y, int border, double sigma_x, double sigma_y)
Definition: d_img_proc.cpp:9083
static int Convert_Color_RGBA(Mat *pMA_Out, Mat *pMA_In, double r, double g, double b, double a, double range_rgba=255.0)
Definition: d_img_proc.cpp:2552
static int Convert_Color2Mono(Mat *pMA_Out, Mat *pMA_In, int col2mono_code)
Definition: d_img_proc.cpp:2662
static int Calc_Stats(vector< double > *v_stats, vector< double > v_data, bool calc_sorted)
Definition: d_stat.cpp:16
@ c_FEAT_NUMBER_OF_FEATS
Definition: d_enum.h:1455
static int Threshold_Absolute(Mat *pMA_Out, Mat *pMA_In, double thres_abs)
Definition: d_img_proc.cpp:6440
@ c_FEAT_AREA
Definition: d_enum.h:1347
@ c_STAT_MEAN_ARITMETIC
Definition: d_enum.h:740