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_makro_megafoci.h
Go to the documentation of this file.
1 /************************************
2  * added: ??.03.2020 *
3  * author: David Eilenstein *
4  * contact: D.Eilenstein@gsi.de *
5  * project: ImageD *
6  * facility: GSI Darmstadt, Ger *
7  ************************************/
8 
9 #ifndef D_MAKRO_MEGAFOCI_H
10 #define D_MAKRO_MEGAFOCI_H
11 
12 //own
13 #include <d_enum.h>
14 #include <d_error_handler.h>
15 #include <d_visdat_proc.h>
16 #include <d_plot.h>
17 #include <d_stat.h>
18 #include <d_viewer.h>
19 #include <d_viewer_3d.h>
20 #include <d_storage.h>
21 #include <d_table.h>
22 #include <d_popup_listedit.h>
23 #include <d_videowriter.h>
24 #include <d_finishtimeprognosis.h>
25 #include <d_bio_nucleuspedigree.h>
26 #include <d_bio_nucleusimage.h>
27 #include <d_imagerewardsystem.h>
28 
29 //Qt
30 #include <QMainWindow>
31 #include <QFileDialog>
32 #include <QFileInfo>
33 #include <QFileInfoList>
34 #include <QDir>
35 #include <QDateTime>
36 #include <QComboBox>
37 #include <QStackedWidget>
38 #include <QCloseEvent>
39 #include <QResizeEvent>
40 #include <QInputDialog>
41 #include <qplaintextedit.h>
42 #include <QColorDialog>
43 #include <QLabel>
44 #include <d_popup_rangeselector.h>
45 #include <QPushButton>
46 #include <QCheckBox>
47 #include <QGroupBox>
48 
49 //Qt::Charts
50 #include <QChartView>
51 #include <QChart>
52 
53 //general
54 #include <iostream>
55 #include <sstream>
56 #include <fstream>
57 #include <vector>
58 #include <algorithm>
59 #include <thread>
60 
61 //openCV
62 #include <opencv2/core/core.hpp>
63 #include <opencv2/highgui/highgui.hpp>
64 #include <opencv2/imgproc/imgproc.hpp>
65 
66 //namespaces
67 using namespace std;
68 //using namespace cv; (prohibited because of abigous names with qtdatavisualization)
69 #include <d_opencv_typedefs.h>
70 
71 namespace Ui {
72 class D_MAKRO_MegaFoci;
73 }
74 
75 class D_MAKRO_MegaFoci : public QMainWindow
76 {
77  Q_OBJECT
78 
79 public:
80  explicit D_MAKRO_MegaFoci(D_Storage *pStorage, QWidget *parent = nullptr);
82 
83  //overloaded events
84  void closeEvent(QCloseEvent *event);
85  void resizeEvent(QResizeEvent *event);
86  void set_ClosingPossible(bool closeable) {ClosingPossible = closeable;}
87 
88 private slots:
89 
90  //show and update (images)
91  void Update_Ui();
92  void Update_Views();
93  void Update_Images();
94  void Update_Images_Proc();
95  void Update_Images_OverviewSmall();
96  void Update_Images_OverviewBig();
97 
98  //image processing
99  void Update_ImageProcessing_CurrentImage();
100  void Update_ImageProcessing_StepFrom(size_t step_start);
101  void Update_ImageProcessing_StepFrom_MS1(size_t step_start);
102  void Update_ImageProcessing_StepSingle(size_t step);
103  void Update_ImageProcessing_StepSingle_MS1(size_t step);
104 
105  //image Decomp
106  void ImageDecomp_Init();
107  void Update_ImageDecomposition();
108 
109  //stack processing
110  void Stack_Process_All();
111  void Stack_Porcess_Single_XYT_Viewport();
112 
113  //populate ui
114  void Populate_CB_AtStart();
115  void Populate_CB_Single(QComboBox *CB, QStringList QSL, int init_index = 0);
116 
117  //connectors
118  void ConnectViewersVisTrafo(D_Viewer* view);
119 
120  bool Load_Dataset();
121  bool Params_Load_CurrentDir();
122  bool Params_Load();
123  bool Params_Load(QString QS_FileName);
124  void Params_Save();
125  void Overview_Init();
126  void Overview_Update();
127 
128  //set dims
129  void set_dataset_dim_x(int x);
130  void set_dataset_dim_y(int y);
131  void set_dataset_dim_t(int t);
132  void set_dataset_dim_z(int z);
133  void set_LoadButton_FilelistSize();
134 
135  //indices
136  bool Update_PagesConfig(bool give_2nd_try = true);
137 
138  //status info to statius panel
139  void StatusSet(QString NewStatus);
140 
141  //vis trafo
142  void on_comboBox_VisTrafo_CropMode_currentIndexChanged(int index);
143  void on_comboBox_VisTrafo_TransformationMode_currentIndexChanged(int index);
144  void on_comboBox_VisTrafo_AnchorMode_currentIndexChanged(int index);
145  void on_comboBox_VisTrafo_RangeMode_currentIndexChanged(int index);
146 
147  void on_comboBox_ImgProc_StepShow_currentIndexChanged(int index);
148 
149  void on_spinBox_Viewport_P_valueChanged(int arg1);
150 
151  void on_tabWidget_Control_currentChanged(int index);
152 
153  //img proc prepare
154  void on_doubleSpinBox_ImgProc_Stitch_Border_valueChanged(double arg1);
155  void on_spinBox_ImgProc_Pre_Blur_Size_valueChanged(int arg1);
156  void on_doubleSpinBox_ImgProc_Pre_Blur_Sigma_valueChanged(double arg1);
157  void on_comboBox_ImgProc_ProjectZ_Stat_currentIndexChanged(int index);
158 
159  //visualize
160  void on_spinBox_ImgProc_Vis_Other_Min_valueChanged(int arg1);
161  void on_spinBox_ImgProc_Vis_Other_Max_valueChanged(int arg1);
162  void on_doubleSpinBox_ImgProc_Vis_Other_Gamma_valueChanged(double arg1);
163  void on_spinBox_ImgProc_Vis_GFP_Min_valueChanged(int arg1);
164  void on_spinBox_ImgProc_Vis_GFP_Max_valueChanged(int arg1);
165  void on_doubleSpinBox_ImgProc_Vis_GFP_Gamma_valueChanged(double arg1);
166  void on_spinBox_ImgProc_Vis_RFP_Min_valueChanged(int arg1);
167  void on_spinBox_ImgProc_Vis_RFP_Max_valueChanged(int arg1);
168  void on_doubleSpinBox_ImgProc_Vis_RFP_Gamma_valueChanged(double arg1);
169 
170  //img proc nuclei
171  //SEEK
172  void on_doubleSpinBox_ImgProc_Seg0A_BaseBin_FilterRadius_valueChanged(double arg1);
173  void on_doubleSpinBox_ImgProc_Seg0A_BaseBin_Quantil_valueChanged(double arg1);
174  void on_doubleSpinBox_ImgProc_Seg0A_BaseBin_ThresHysteresis_valueChanged(double arg1);
175  void on_doubleSpinBox_ImgProc_Seg0A_BaseBin_ThresIndicator_valueChanged(double arg1);
176  void on_doubleSpinBox_ImgProc_Seg0A_Blur_GaussSigma_valueChanged(double arg1);
177  void on_doubleSpinBox_ImgProc_Seg0A_Blur_GaussSize_valueChanged(double arg1);
178  void on_spinBox_ImgProc_Seg0A_ClosingSize_valueChanged(int arg1);
179  void on_comboBox_ImgProc_Seg0A_IgnoreDirt_Stat_currentIndexChanged(int index);
180  void on_doubleSpinBox_ImgProc_Seg0A_IgnoreDirt_Thres_valueChanged(double arg1);
181 
182  void on_doubleSpinBox_ImgProc_Seg0B_BaseBin_FilterRadius_valueChanged(double arg1);
183  void on_doubleSpinBox_ImgProc_Seg0B_BaseBin_Quantil_valueChanged(double arg1);
184  void on_doubleSpinBox_ImgProc_Seg0B_BaseBin_ThresHysteresis_valueChanged(double arg1);
185  void on_doubleSpinBox_ImgProc_Seg0B_BaseBin_ThresIndicator_valueChanged(double arg1);
186  void on_doubleSpinBox_ImgProc_Seg0B_Blur_GaussSigma_valueChanged(double arg1);
187  void on_doubleSpinBox_ImgProc_Seg0B_Blur_GaussSize_valueChanged(double arg1);
188  void on_spinBox_ImgProc_Seg0B_ClosingSize_valueChanged(int arg1);
189  void on_comboBox_ImgProc_Seg0B_IgnoreDirt_Stat_activated(int index);
190  void on_doubleSpinBox_ImgProc_Seg0B_IgnoreDirt_Thres_valueChanged(double arg1);
191 
192  void on_spinBox_ImgProc_Seg0_CloseGaps_Size_valueChanged(int arg1);
193  void on_doubleSpinBox_ImgProc_Seg0_GetSmall_Area_Min_valueChanged(double arg1);
194  void on_doubleSpinBox_ImgProc_Seg0_GetSmall_Area_Max_valueChanged(double arg1);
195  void on_doubleSpinBox_ImgProc_ConnectSmall_CloseSize_valueChanged(double arg1);
196  void on_doubleSpinBox_ImgProc_Seg0_Area_Min_valueChanged(double arg1);
197  void on_doubleSpinBox_ImgProc_Seg0_Area_Max_valueChanged(double arg1);
198 
199  void on_doubleSpinBox_ImgProc_Seg1_DistThresh_valueChanged(double arg1);
200  void on_spinBox_ImgProc_Seg1_OpenSeeds_valueChanged(int arg1);
201 
202  void on_doubleSpinBox_ImgProc_Seg2_DistThresh_valueChanged(double arg1);
203  void on_spinBox_ImgProc_Seg2_OpenSeeds_valueChanged(int arg1);
204  void on_doubleSpinBox_ImgProc_Seg2_Area_Min_valueChanged(double arg1);
205  void on_doubleSpinBox_ImgProc_Seg2_Area_Max_valueChanged(double arg1);
206 
207  void on_spinBox_ImgProc_Seg3_Open_valueChanged(int arg1);
208 
209  //img proc foci gfp
210  void on_spinBox_ImgProc_Foc_GFP_BlurMedianSize_valueChanged(int arg1);
211  void on_spinBox_ImgProc_Foc_GFP_BinarySize_valueChanged(int arg1);
212  void on_doubleSpinBox_ImgProc_Foc_GFP_BinaryOffset_valueChanged(double arg1);
213  void on_doubleSpinBox_ImgProc_Foc_GFP_AreaMin_valueChanged(double arg1);
214  void on_doubleSpinBox_ImgProc_Foc_GFP_AreaMax_valueChanged(double arg1);
215  void on_doubleSpinBox_ImgProc_Foc_GFP_BinarySigma_valueChanged(double arg1);
216 
217  //img proc foci rfp
218  void on_spinBox_ImgProc_Foc_RFP_BlurMedianSize_valueChanged(int arg1);
219  void on_spinBox_ImgProc_Foc_RFP_BinarySize_valueChanged(int arg1);
220  void on_doubleSpinBox_ImgProc_Foc_RFP_BinaryOffset_valueChanged(double arg1);
221  void on_doubleSpinBox_ImgProc_Foc_RFP_AreaMin_valueChanged(double arg1);
222  void on_doubleSpinBox_ImgProc_Foc_RFP_AreaMax_valueChanged(double arg1);
223  void on_doubleSpinBox_ImgProc_Foc_RFP_BinarySigma_valueChanged(double arg1);
224 
225  void on_spinBox_DataDim_P_exist_valueChanged(int arg1);
226 
227  void on_doubleSpinBox_ImgProc_Foc_Both_AreaMin_valueChanged(double arg1);
228  void on_doubleSpinBox_ImgProc_Foc_Both_AreaMax_valueChanged(double arg1);
229 
230  void on_spinBox_ImgProc_Stitch_Overlap_x_valueChanged(int arg1);
231  void on_spinBox_ImgProc_Stitch_Overlap_y_valueChanged(int arg1);
232 
233  void on_doubleSpinBox_ImgProc_Vis_Intensity_Background_valueChanged(double arg1);
234  void on_doubleSpinBox_ImgProc_Vis_Intensity_Overlay_valueChanged(double arg1);
235 
236  void on_groupBox_Seg0A_OTHER_clicked();
237  void on_groupBox_Seg0B_GFP_clicked();
238 
239  void on_horizontalSlider_OverviewBig_T_valueChanged(int value);
240 
241  void on_pushButton_ParamLoad_clicked();
242  void on_pushButton_ParamSave_clicked();
243 
244 private:
245  Ui::D_MAKRO_MegaFoci *ui;
246  bool ClosingPossible = false;
247 
248  //error handling
249  D_Error_Handler ER;
250  void ERR(int err, QString func = "not specified", QString detail = "not specified");
251 
252  //reward system
253  D_ImageRewardSystem RewardSystem;
254 
255  //Storage
256  D_Storage *pStore;
257 
258  //states
259  bool state_dataset_dim_set = false;
260  bool state_dataset_img_list_loaded = false;
261  bool state_overview_init = false;
262  bool state_stack_processing = false;
263  bool state_image_decomposed = false;
264  bool state_image_decomposition_init = false;
265  bool state_first_proc_on_start = true;
266  bool state_page_indices_consistent = true;
267  bool state_block_img_proc_update = false;
268 
269  //data files
270  QFileInfoList FIL_ImagesYXT;
271  QStringList QSL_ImagesYXT_Paths;
272  QStringList QSL_ImagesYXT_Names;
273  QStringList QSL_ImagesYXT_Suffix;
274 
275  //save dirs
276  QDir DIR_SaveMaster;
277  QDir DIR_SaveMosaik_All;
278  QDir DIR_SaveMosaik_Color;
279  QDir DIR_SaveMosaik_GFP;
280  QDir DIR_SaveMosaik_RFP;
281  QDir DIR_SaveMosaik_DIC;
282  QDir DIR_SaveMosaik_Info_Foci;
283  QDir DIR_SaveMosaik_Info_Shape;
284  QDir DIR_SaveMosaik_Info_Value_Mean;
285  QDir DIR_SaveMosaik_Info_Value_STD;
286  QDir DIR_SaveMosaik_Info_Value_Skewness;
287  QDir DIR_SaveMosaik_Info_Value_Kurtosis;
288  QDir DIR_SaveMosaik_Info_Value_Median;
289  QDir DIR_SaveMosaik_Info_Value_MedianDeviation;
290  QDir DIR_SaveDetections;
291 
292  //dataset dimension
293  size_t dataset_dim_mosaic_x = 15;
294  size_t dataset_dim_mosaic_y = 15;
295  size_t dataset_dim_mosaic_xy = 15 * 15;
296  size_t dataset_dim_z = 8;
297  size_t dataset_dim_t = 52;
298  size_t dataset_dim_xyt = 15 * 15 * 52;
299  size_t dataset_dim_p_used = 2;
300  size_t dataset_dim_p_exist = 3;
301  size_t dataset_dim_tzp_used = 52 * 8 * 2;
302  size_t dataset_dim_tzp_exist = 52 * 8 * 3;
303  size_t dataset_dim_img_x = 1004;
304  size_t dataset_dim_img_y = 1002;
305  int dataset_type_mat = CV_16UC1;
306  int dataset_depth_mat = CV_16U;
307  size_t get_index_of_image(size_t x, size_t y, size_t t);
308  size_t get_index_of_page(size_t z, size_t p);
309 
310  //scale to real world
311  double dataset_step_x = 1;
312  double dataset_step_y = 1;
313  double dataset_step_t = 1;
314 
315 
316  //Main Viewer
317  D_VisDat_Obj VD_Show;
318  Mat MA_Show;
319  D_Viewer Viewer_Main;
320 
321  //img proc
322  vector<D_VisDat_Obj> vVD_ImgProcSteps;
323 
324  //img decomposition
325  vector<vector<vector<D_Bio_NucleusImage>>> vvvImageDecomp_TYX;
326  vector<vector<vector<int>>> vvvImageDecompCalced_TYX;
327 
328 
329  //image buffer to save load operations
330  vector<D_VisDat_Obj> vVD_ImgLoadBuffer;
331  vector<vector<int>> vv_ImgLoadBuffer_XYT_Index;
332  size_t ImgLoadBuffer_BufferSize = dataset_dim_mosaic_x + 1;
333  void ImgBuffer_Init();
334  void ImgBuffer_Write(D_VisDat_Obj *img, int x_img, int y_img, int t_img);
335  int ImgBuffer_Find(int x, int y, int t);
336  bool ImgBuffer_Read(D_VisDat_Obj *img, size_t i);
337  int Load_Image(D_VisDat_Obj *img, size_t x, size_t y, size_t t);
338  void CreateZero_Image(D_VisDat_Obj *img);
339 
340  //overview
341  double overview_scale = 0.30;
342  D_VisDat_Obj VD_Overview_Save;
343  Mat MA_OverviewSmall_Show;
344  Mat MA_OverviewBig_Show;
345  D_Viewer Viewer_OverviewSmall;
346  D_Viewer Viewer_OverviewBig;
347 
348  //Status
349  const int status_EntryNumber = 250;
350  QStringList QSL_Status;
351 
352  //Statusbar
353  QLabel *L_SB_ValueAtCursor;
354  QLabel *L_SB_InfoVD;
355 
356  //time measurement
357  qint64 time_LastSingleImgProc = 0;
358 
359  //Pages (values)
360  size_t index_page_other = 0;
361  size_t index_GFP = 1;
362  size_t index_RFP = 2;
363  QStringList QSL_Pages = {
364  "Other",
365  "GFP",
366  "RFP"
367  };
368 
369  //Foci types
370  enum FOCI_TYPES {
371  FOCI_GFP,
372  FOCI_RFP,
373  FOCI_BOTH,
374  FOCI_NUMBER_OF
375  };
376  const QStringList QSL_FociTypes = {
377  "Foci GFP",
378  "Foci RFP",
379  "Foci both"
380  };
381 
382  //Img Proc Step
383  enum STEPS {
384  //Prepare (Load, Stitch, Project)
385  STEP_PRE_LOAD_MAIN,
386  STEP_PRE_LOAD_RIGHT,
387  STEP_PRE_LOAD_BOTTOM,
388  STEP_PRE_LOAD_BOTTOM_RIGHT,
389  STEP_PRE_STITCH,
390  STEP_PRE_BLUR_GAUSS,
391  STEP_PRE_PROJECT_Z,
392 
393  //Pick Channels
394  STEP_PCK_OTHER,
395  STEP_PCK_GFP,
396  STEP_PCK_RFP,
397 
398  //Visualization
399  STEP_VIS_OTHER,
400  STEP_VIS_GFP,
401  STEP_VIS_RFP,
402  STEP_VIS_PAGES_AS_COLOR_GFP_RFP,
403  STEP_VIS_PAGES_AS_COLOR_ALL,
404 
405  //Find Nuclei other
406  //segmentation level 0a
407  STEP_NUC_OTHER_SEG0A_BLUR_GAUSS,
408  STEP_NUC_OTHER_SEG0A_BASEBIN_BG_REFERENCE,
409  STEP_NUC_OTHER_SEG0A_BASEBIN_REF_CORRECTED,
410  STEP_NUC_OTHER_SEG0A_BASEBIN_THRESH_INDICATOR,
411  STEP_NUC_OTHER_SEG0A_BASEBIN_THRESH_HYSTERESIS,
412  STEP_NUC_OTHER_SEG0A_BASEBIN_HYSTERESIS,
413  STEP_NUC_OTHER_SEG0A_MORPH_CLOSEING,
414  STEP_NUC_OTHER_SEG0A_FILL_HOLES,
415  STEP_NUC_OTHER_SEG0A_EXCLUDE_DIRT_BY_STAT,
416 
417  //Find Nuclei GFP
418  //segmentation level 0b
419  STEP_NUC_GFP_SEG0B_BLUR_GAUSS,
420  STEP_NUC_GFP_SEG0B_BASEBIN_BG_REFERENCE,
421  STEP_NUC_GFP_SEG0B_BASEBIN_REF_CORRECTED,
422  STEP_NUC_GFP_SEG0B_BASEBIN_THRESH_INDICATOR,
423  STEP_NUC_GFP_SEG0B_BASEBIN_THRESH_HYSTERESIS,
424  STEP_NUC_GFP_SEG0B_BASEBIN_HYSTERESIS,
425  STEP_NUC_GFP_SEG0B_MORPH_CLOSEING,
426  STEP_NUC_GFP_SEG0B_FILL_HOLES,
427  STEP_NUC_GFP_SEG0B_EXCLUDE_DIRT_BY_STAT,
428 
429  //merge other and gfp seg 0a/0b-> seg 0
430  STEP_NUC_BOTH_SEG0_ADD_GFP_OTHER,
431  STEP_NUC_BOTH_SEG0_CLOSE_GAPS,
432  STEP_NUC_BOTH_SEG0_SELECT_AREA_SMALL,
433  STEP_NUC_BOTH_SEG0_MORPH_CLOSE_SMALL,
434  STEP_NUC_BOTH_SEG0_ADD_CLOSED_SMALL,
435  STEP_NUC_BOTH_SEG0_SELECT_AREA_BIG,
436 
437  //segmentation level 1
438  STEP_NUC_BOTH_SEG1_DISTANCE,
439  STEP_NUC_BOTH_SEG1_SEEDS,
440  STEP_NUC_BOTH_SEG1_SEEDS_CLEAR,
441  STEP_NUC_BOTH_SEG1_WATERSHED,
442  STEP_NUC_BOTH_SEG1_BINARY_SEGMENTS,
443  //segmentation level 2
444  STEP_NUC_BOTH_SEG2_DISTANCE,
445  STEP_NUC_BOTH_SEG2_SEEDS,
446  STEP_NUC_BOTH_SEG2_SEEDS_CLEAR,
447  STEP_NUC_BOTH_SEG2_WATERSHED,
448  STEP_NUC_BOTH_SEG2_SELECT_AREA,
449  //segmentation level 3
450  STEP_NUC_BOTH_SEG3_BORDERS_ORIGINAL,
451  STEP_NUC_BOTH_SEG3A_CONVEX_HULL,
452  STEP_NUC_BOTH_SEG3A_CONVEX_HULL_WATERSHED_SEGMENTS,
453  STEP_NUC_BOTH_SEG3A_CONVEX_HULL_BINARY_SEGMENTS,
454  STEP_NUC_BOTH_SEG3A_BORDERS_CONVEX_HULL,
455  STEP_NUC_BOTH_SEG3B_ELLIPSE,
456  STEP_NUC_BOTH_SEG3B_ELLIPSE_WATERSHED_SEGMENTS,
457  STEP_NUC_BOTH_SEG3B_ELLIPSE_BINARY_SEGMENTS,
458  STEP_NUC_BOTH_SEG3B_BORDERS_ELLIPSE,
459  STEP_NUC_BOTH_SEG3C_OPEND,
460  STEP_NUC_BOTH_SEG3C_OPEND_WATERSHED_SEGMENTS,
461  STEP_NUC_BOTH_SEG3C_OPEND_BINARY_SEGMENTS,
462  STEP_NUC_BOTH_SEG3C_BORDERS_OPENED,
463  STEP_NUC_BOTH_SEG3D_OPEND_ELLIPSE,
464  STEP_NUC_BOTH_SEG3D_OPEND_ELLIPSE_WATERSHED_SEGMENTS,
465  STEP_NUC_BOTH_SEG3D_OPEND_ELLIPSE_BINARY_SEGMENTS,
466  STEP_NUC_BOTH_SEG3D_BORDERS_OPENED_ELLIPSE,
467  STEP_NUC_BOTH_SEG3_BINARY_SEGMENTS_USED,
468  STEP_NUC_BOTH_SEG3_BORDERS_USED,
469 
470  //Visualization
471 
472  //Find Foci GFP
473  STEP_FOC_GFP_BLUR_MEDIAN,
474  STEP_FOC_GFP_BINARY_THRES,
475  STEP_FOC_GFP_SELECT_AREA,
476 
477  //Find Foci RFP
478  STEP_FOC_RFP_BLUR_MEDIAN,
479  STEP_FOC_RFP_BINARY_THRES,
480  STEP_FOC_RFP_SELECT_AREA,
481 
482  //Match Foci
483  STEP_FOC_BOTH_INTERSECT,
484  STEP_FOC_BOTH_SELECT_AREA,
485 
486  //Classification
487  STEP_CLA_FOC_ALL,
488  STEP_CLA_FOC_IN_ONE_ONLY,
489  STEP_CLA_FOC_IN_GFP_ONLY,
490  STEP_CLA_FOC_IN_RFP_ONLY,
491 
492  //Visualization
493  STEP_VIS_REGIONS_NUCLEI,
494  STEP_VIS_REGIONS_FOCI,
495  STEP_VIS_REGIONS_BACKGROUND_NUCLEI_ALL,
496  STEP_VIS_REGIONS_BACKGROUND_NUCLEI_USED,
497  //STEP_VIS_REGIONS_FOCI_COUNT,
498 
499  STEP_NUMBER_OF
500  };
501  const QStringList QSL_Steps = {
502  "pre-0 Load main image",
503  "pre-1 Load border image R",
504  "pre-2 Load border image B",
505  "pre-3 Load border image BR",
506  "pre-4 Stitch borders to main image",
507  "pre-5 blur input images in XY",
508  "pre-6 Z-Projection",
509 
510  "pck-0 OTHER pick signal",
511  "pck-1 GFP pick signal",
512  "pck-2 RFP pick Signal",
513 
514  "vis-0 Visualize OTHER",
515  "vis-1 Visualize GFP",
516  "vis-2 Visualize RFP",
517  "vis-3 Color GFP green RFP blue",
518  "vis-4 Color all channels",
519 
520  //segmentation level 0A..........................................
521  "nuc-0 OTHER seg0a gaussain blur",
522  "nuc-1 OTHER seg0a rank order filter for backgound ref",
523  "nuc-2 OTHER seg0a difference to background",
524  "nuc-3 OTHER seg0a threshhold object indicator",
525  "nuc-4 OTHER seg0a threshold possible objects",
526  "nuc-5 OTHER seg0a hysteresis of two thresholds",
527  "nuc-6 OTHER seg0a connect foreground objects",
528  "nuc-7 OTHER seg0a fill holes",
529  "nuc-8 OTHER seg0a exclude dirt",
530 
531  //segmentation level 0B..........................................
532  "nuc-9 GFP seg0b gaussain blur",
533  "nuc-10 GFP seg0b rank order filter for backgound ref",
534  "nuc-11 GFP seg0b difference to background",
535  "nuc-12 GFP seg0b threshhold object indicator",
536  "nuc-13 GFP seg0b threshold possible objects",
537  "nuc-14 GFP seg0b hysteresis of two thresholds",
538  "nuc-15 GFP seg0b connect foreground objects",
539  "nuc-16 GFP seg0b fill holes",
540  "nuc-17 OTHER seg0b exclude dirt",
541 
542  //segmentation level 0..........................................
543  "nuc-18 BOTH seg0 add GFP and OTHER binary",
544  "nuc-19 BOTH seg0 close gaps",
545  "nuc-20 BOTH seg0 select small",
546  "nuc-21 BOTH seg0 connect small",
547  "nuc-22 BOTH seg0 add connected small",
548  "nuc-23 BOTH seg0 select by area",
549 
550  //segmentation level 1..........................................
551  "nuc-24 BOTH seg1 distance transformation",
552  "nuc-25 BOTH seg1 get seeds",
553  "nuc-26 BOTH seg1 clear seeds",
554  "nuc-27 BOTH seg1 watershed segmentation",
555  "nuc-28 BOTH seg1 binary segments",
556 
557  //segmentation level 2..........................................
558  "nuc-29 BOTH seg2 distance transformation",
559  "nuc-30 BOTH seg2 get seeds",
560  "nuc-31 BOTH seg2 clear seeds",
561  "nuc-32 BOTH seg2 watershed segmentation",
562  "nuc-33 BOTH seg2 select by area",
563 
564  //segmentation level 3..........................................
565  "vis-5 Nuclei segemntation borders (original)",
566  "nuc-34 BOTH seg3a convex hull",
567  "nuc-35 BOTH seg3a convex hull watershed",
568  "nuc-36 BOTH seg3a convex hull binary segments",
569  "vis-6 Nuclei segemntation borders (convex hull)",
570  "nuc-37 BOTH seg3b ellipse",
571  "nuc-38 BOTH seg3b ellipse watershed",
572  "nuc-39 BOTH seg3b ellipse binary segments",
573  "vis-7 Nuclei segemntation borders (ellipse)",
574  "nuc-40 BOTH seg3c opened",
575  "nuc-41 BOTH seg3c opened watershed",
576  "nuc-42 BOTH seg3c opened binary segments",
577  "vis-8 Nuclei segemntation borders (opened)",
578  "nuc-43 BOTH seg3d opened ellipse",
579  "nuc-44 BOTH seg3d opened ellipse watershed",
580  "nuc-45 BOTH seg3d opened ellipse binary segments",
581  "vis-9 Nuclei segemntation borders (opened ellipse)",
582  "nuc-46 BOTH seg3 binary segments used",
583  "vis-10 Nuclei segemntation borders (used)",
584 
585  "foc-gfp-0 circular median blur",
586  "foc-gfp-1 binarize by threshold",
587  "foc-gfp-2 Select by Area",
588 
589  "foc-rfp-0 circular median blur",
590  "foc-rfp-1 binarize by threshold",
591  "foc-rfp-2 Select by Area",
592 
593  "foc-both-0 foci detected in GFP and RFP",
594  "foc-both-0 Select by Area",
595 
596  "cla-0 Foci in at least one channel",
597  "cla-1 Foci in one channel only",
598  "cla-2 Foci in GFP only",
599  "cla-3 Foci in RFP only",
600 
601  "vis-11 Regions Nuclei",
602  "vis-11 Regions Foci",
603  "vis-12 Regions nuclei with background (used)",
604  "vis-13 Regions nuclei with background (all)",
605  //"vis-13 Regions with foci counts"
606  };
607 
608  enum MS1_PARAMS {
609  MS1_PARAM_PRE5_BLUR_SIZE,
610  MS1_PARAM_PRE5_BLUR_SIGMA,
611  MS1_PARAM_PRE6_STAT,
612  MS1_PARAM_VIS0_NUC_MIN,
613  MS1_PARAM_VIS0_NUC_MAX,
614  MS1_PARAM_VIS0_NUC_GAMMA,
615  MS1_PARAM_VIS1_GFP_MIN,
616  MS1_PARAM_VIS1_GFP_MAX,
617  MS1_PARAM_VIS1_GFP_GAMMA,
618  MS1_PARAM_VIS2_RFP_MIN,
619  MS1_PARAM_VIS2_RFP_MAX,
620  MS1_PARAM_VIS2_RFP_GAMMA,
621  MS1_PARAM_NUC0_IN_USE,
622  MS1_PARAM_NUC0_BLUR_SIZE,
623  MS1_PARAM_NUC0_BLUR_SIGMA,
624  MS1_PARAM_NUC1_QUANTIL,
625  MS1_PARAM_NUC1_RADIUS,
626  MS1_PARAM_NUC3_THRES_INDICATOR,
627  MS1_PARAM_NUC4_THRES_HYSTERESIS,
628  MS1_PARAM_NUC6_CLOSE_SIZE,
629  MS1_PARAM_NUC8_STAT,
630  MS1_PARAM_NUC8_THRESH_DIRT,
631  MS1_PARAM_NUC9_IN_USE,
632  MS1_PARAM_NUC9_BLUR_SIZE,
633  MS1_PARAM_NUC9_BLUR_SIGMA,
634  MS1_PARAM_NUC10_QUANTIL,
635  MS1_PARAM_NUC10_RADIUS,
636  MS1_PARAM_NUC12_THRES_INDICATOR,
637  MS1_PARAM_NUC13_THRES_HYSTERESIS,
638  MS1_PARAM_NUC15_CLOSE_SIZE,
639  MS1_PARAM_NUC17_STAT,
640  MS1_PARAM_NUC17_THRESH_DIRT,
641  MS1_PARAM_NUC19_CLOSE_SIZE,
642  MS1_PARAM_NUC21_AREA_MIN,
643  MS1_PARAM_NUC21_AREA_MAX,
644  MS1_PARAM_NUC22_CLOSE_SIZE,
645  MS1_PARAM_NUC23_AREA_MIN,
646  MS1_PARAM_NUC23_AREA_MAX,
647  MS1_PARAM_NUC25_DISTANCE,
648  MS1_PARAM_NUC26_OPEN_SIZE,
649  MS1_PARAM_NUC30_DISTANCE,
650  MS1_PARAM_NUC31_OPEN_SIZE,
651  MS1_PARAM_NUC33_AREA_MIN,
652  MS1_PARAM_NUC33_AREA_MAX,
653  MS1_PARAM_NUC40_OPEN_SIZE,
654  MS1_PARAM_FOCGFP0_RADIUS,
655  MS1_PARAM_FOCGFP1_SIZE,
656  MS1_PARAM_FOCGFP1_SIGMA,
657  MS1_PARAM_FOCGFP1_SCALE,
658  MS1_PARAM_FOCGFP1_OFFSET,
659  MS1_PARAM_FOCGFP3_AREA_MIN,
660  MS1_PARAM_FOCGFP3_AREA_MAX,
661  MS1_PARAM_FOCRFP0_RADIUS,
662  MS1_PARAM_FOCRFP1_SIZE,
663  MS1_PARAM_FOCRFP1_SIGMA,
664  MS1_PARAM_FOCRFP1_SCALE,
665  MS1_PARAM_FOCRFP1_OFFSET,
666  MS1_PARAM_FOCRFP3_AREA_MIN,
667  MS1_PARAM_FOCRFP3_AREA_MAX,
668  MS1_PARAM_FOCBOTH1_AREA_MIN,
669  MS1_PARAM_FOCBOTH1_AREA_MAX,
670  MS1_PARAM_VIS8_INTENSITY_OVERLAY,
671  MS1_PARAM_VIS8_INTENSITY_BACKGROUND,
672  MS1_PARAM_OTHER_DUPLICATE_OVERLAP,
673  MS1_PARAM_NUMBER_OF
674  };
675 
676  const QStringList QSL_MS1_Params = {
677  "MS1_PARAM_PRE5_BLUR_SIZE",
678  "MS1_PARAM_PRE5_BLUR_SIGMA",
679  "MS1_PARAM_PRE6_STAT",
680  "MS1_PARAM_VIS0_NUC_MIN",
681  "MS1_PARAM_VIS0_NUC_MAX",
682  "MS1_PARAM_VIS0_NUC_GAMMA",
683  "MS1_PARAM_VIS1_GFP_MIN",
684  "MS1_PARAM_VIS1_GFP_MAX",
685  "MS1_PARAM_VIS1_GFP_GAMMA",
686  "MS1_PARAM_VIS2_RFP_MIN",
687  "MS1_PARAM_VIS2_RFP_MAX",
688  "MS1_PARAM_VIS2_RFP_GAMMA",
689  "MS1_PARAM_NUC0_IN_USE",
690  "MS1_PARAM_NUC0_BLUR_SIZE",
691  "MS1_PARAM_NUC0_BLUR_SIGMA",
692  "MS1_PARAM_NUC1_QUANTIL",
693  "MS1_PARAM_NUC1_RADIUS",
694  "MS1_PARAM_NUC3_THRES_INDICATOR",
695  "MS1_PARAM_NUC4_THRES_HYSTERESIS",
696  "MS1_PARAM_NUC6_CLOSE_SIZE",
697  "MS1_PARAM_NUC8_STAT",
698  "MS1_PARAM_NUC8_THRESH_DIRT",
699  "MS1_PARAM_NUC9_IN_USE",
700  "MS1_PARAM_NUC9_BLUR_SIZE",
701  "MS1_PARAM_NUC9_BLUR_SIGMA",
702  "MS1_PARAM_NUC10_QUANTIL",
703  "MS1_PARAM_NUC10_RADIUS",
704  "MS1_PARAM_NUC12_THRES_INDICATOR",
705  "MS1_PARAM_NUC13_THRES_HYSTERESIS",
706  "MS1_PARAM_NUC15_CLOSE_SIZE",
707  "MS1_PARAM_NUC17_STAT",
708  "MS1_PARAM_NUC17_THRESH_DIRT",
709  "MS1_PARAM_NUC19_CLOSE_SIZE",
710  "MS1_PARAM_NUC21_AREA_MIN",
711  "MS1_PARAM_NUC21_AREA_MAX",
712  "MS1_PARAM_NUC22_CLOSE_SIZE",
713  "MS1_PARAM_NUC23_AREA_MIN",
714  "MS1_PARAM_NUC23_AREA_MAX",
715  "MS1_PARAM_NUC25_DISTANCE",
716  "MS1_PARAM_NUC26_OPEN_SIZE",
717  "MS1_PARAM_NUC30_DISTANCE",
718  "MS1_PARAM_NUC31_OPEN_SIZE",
719  "MS1_PARAM_NUC33_AREA_MIN",
720  "MS1_PARAM_NUC33_AREA_MAX",
721  "MS1_PARAM_NUC40_OPEN_SIZE",
722  "MS1_PARAM_FOCGFP0_RADIUS",
723  "MS1_PARAM_FOCGFP1_SIZE",
724  "MS1_PARAM_FOCGFP1_SIGMA",
725  "MS1_PARAM_FOCGFP1_SCALE",
726  "MS1_PARAM_FOCGFP1_OFFSET",
727  "MS1_PARAM_FOCGFP3_AREA_MIN",
728  "MS1_PARAM_FOCGFP3_AREA_MAX",
729  "MS1_PARAM_FOCRFP0_RADIUS",
730  "MS1_PARAM_FOCRFP1_SIZE",
731  "MS1_PARAM_FOCRFP1_SIGMA",
732  "MS1_PARAM_FOCRFP1_SCALE",
733  "MS1_PARAM_FOCRFP1_OFFSET",
734  "MS1_PARAM_FOCRFP3_AREA_MIN",
735  "MS1_PARAM_FOCRFP3_AREA_MAX",
736  "MS1_PARAM_FOCBOTH1_AREA_MIN",
737  "MS1_PARAM_FOCBOTH1_AREA_MAX",
738  "MS1_PARAM_VIS8_INTENSITY_OVERLAY",
739  "MS1_PARAM_VIS8_INTENSITY_BACKGROUND",
740  "MS1_PARAM_OTHER_DUPLICATE_OVERLAP"
741  };
742 
743  //Tabs
744  enum TABS_CONTROL {
745  TAB_CONTROL_VIEWPORT,
746  TAB_CONTROL_IMG_PROC_MS1,
747  TAB_CONTROL_IMG_PROC_MS3,
748  TAB_CONTROL_OVERVIEW_BIG,
749  TAB_CONTROL_NUMBER_OF
750  };
751 
752  //View
753  enum VIEW_PAGE {
754  VIEW_PAGE_IMG_PROC,
755  VIEW_PAGE_OVERVIEW_BIG,
756  VIEW_PAGE_STACK,
757  VIEW_PAGE_PLOT
758  };
759 
760  //overview types
761  enum OVERVIEW_TYPE {
762  OVERVIEW_TYPE_DIC,
763  OVERVIEW_TYPE_GFP,
764  OVERVIEW_TYPE_RFP,
765  OVERVIEW_TYPE_COLOR,
766  OVERVIEW_TYPE_INFO_FOCI,
767  OVERVIEW_TYPE_INFO_SHAPE,
768  OVERVIEW_TYPE_INFO_VALUE_MEAN,
769  OVERVIEW_TYPE_INFO_VALUE_STD,
770  OVERVIEW_TYPE_INFO_VALUE_SKEWNESS,
771  OVERVIEW_TYPE_INFO_VALUE_KURTOSIS,
772  OVERVIEW_TYPE_INFO_VALUE_MEDIAN,
773  OVERVIEW_TYPE_INFO_VALUE_MED_DEV,
774  OVERVIEW_TYPE_NUMBER_OF
775  };
776  const QStringList QSL_OverviewTypes = {
777  "Gray DIC",
778  "Gray GFP",
779  "Gray RFP",
780  "Color GFP and RFP",
781  "Foci",
782  "Shape",
783  "Values: Medians",
784  "Values: Deviation from median",
785  "Values: Mean",
786  "Values: Standard deviation",
787  "Values: Skewness",
788  "Values: Kurtosis"
789  };
790 
791  //-------------------------------------------------------------------- MS Management ----------------------------------------------------
792 
793  //major steps
794  enum MODE_MAJOR {
795  MODE_MAJOR_0_DATASET_DIM,
796  MODE_MAJOR_1_AUTO_DETECTION,
797  MODE_MAJOR_2_MANU_CORRECT_DETECTION,
798  MODE_MAJOR_3_AUTO_MATCHING_FOCI_NUCLEI,
799  MODE_MAJOR_4_AUTO_RECONSTRUCT_PEDIGREE,
800  MODE_MAJOR_5_MANU_CORRECT_PEDIGREE,
801  MODE_MAJOR_6_EPIC_ANALYSIS,
802  MODE_MAJOR_NUMBER_OF
803  };
804  const QStringList QSL_ModeMajor = {
805  "S0 Dataset definition",
806  "S1 Automatic detection",
807  "S2 Manuel correction of detetctions",
808  "S3 Automatic matching foci to nuclei",
809  "S4 Automatic pedigree reconstruction",
810  "S5 Manual pedigree correction",
811  "S6 Epic analysis"
812  };
813 
814  size_t mode_major_current = MODE_MAJOR_0_DATASET_DIM;
815  void set_ModeMajor_Current(size_t mode);
816 
817 private slots:
818 
819  void on_stackedWidget_StepMajor_currentChanged(int arg1);
820 
821  void on_pushButton_StepMajor_1_clicked();
822  void on_pushButton_StepMajor_2_clicked();
823  void on_pushButton_StepMajor_3_clicked();
824  void on_pushButton_StepMajor_4_clicked();
825  void on_pushButton_StepMajor_5_clicked();
826  void on_pushButton_StepMajor_6_clicked();
827 
828  //-------------------------------------------------------------------- MS2 ----------------------------------------------------
829 
830 private slots:
831 
832  void MS2_SetComboboxColor(QComboBox *CB_R, QComboBox *CB_G, QComboBox *CB_B, bool color_background_not_text);
833  void MS2_SetComboboxColor_Image(size_t viewer_id);
834  void MS2_SetComboboxColor_Overlay(size_t viewer_id);
835  void MS2_SetComboboxColor_ImageAll();
836  void MS2_SetComboboxColor_OverlayAll();
837  void MS2_SetComboboxColor_All();
838 
839  void on_checkBox_MS2_ViewerShowSettings_clicked(bool checked);
840  void on_pushButton_MS2_FileDialog_clicked();
841 
842  void on_pushButton_MS2_ViewerMaximize_1_clicked();
843  void on_pushButton_MS2_ViewerMaximize_2_clicked();
844  void on_pushButton_MS2_ViewerMaximize_3_clicked();
845  void on_pushButton_MS2_ViewerMaximize_4_clicked();
846 
847  void on_pushButton_MS2_ViewerSettings_PointColor_1_clicked();
848  void on_pushButton_MS2_ViewerSettings_PointColor_2_clicked();
849  void on_pushButton_MS2_ViewerSettings_PointColor_3_clicked();
850  void on_pushButton_MS2_ViewerSettings_PointColor_4_clicked();
851 
852  void on_checkBox_MS2_ViewerSettings_ConnectZoom_1_clicked(bool checked);
853  void on_checkBox_MS2_ViewerSettings_ConnectZoom_2_clicked(bool checked);
854  void on_checkBox_MS2_ViewerSettings_ConnectZoom_3_clicked(bool checked);
855  void on_checkBox_MS2_ViewerSettings_ConnectZoom_4_clicked(bool checked);
856 
857  void on_checkBox_MS2_ViewerSettings_ViewTransform_1_clicked(bool checked);
858  void on_checkBox_MS2_ViewerSettings_ViewTransform_2_clicked(bool checked);
859  void on_checkBox_MS2_ViewerSettings_ViewTransform_3_clicked(bool checked);
860  void on_checkBox_MS2_ViewerSettings_ViewTransform_4_clicked(bool checked);
861 
862  void on_pushButton_MS2_Tools_Channel_Nuclei_clicked();
863  void on_pushButton_MS2_Tools_Channel_GFPonly_clicked();
864  void on_pushButton_MS2_Tools_Channel_RFPonly_clicked();
865  void on_pushButton_MS2_Tools_Channel_GFPandRFP_clicked();
866 
867  void on_comboBox_MS2_ViewportBackground_currentIndexChanged(int index);
868 
869  void on_pushButton_MS2_EventList_Load_clicked();
870  void on_pushButton_MS2_EventList_Close_clicked();
871  void on_pushButton_MS2_EventList_Move_clicked();
872  void on_checkBox_MS2_EventList_Event_Solved_stateChanged(int arg1);
873  void on_pushButton_MS2_EventList_ToBegin_clicked();
874  void on_pushButton_MS2_EventList_ToEnd_clicked();
875 
876  void MS2_ViewerMaximize(int v2max);
877  void MS2_ViewerPointColor(size_t v2col);
878  void MS2_ViewerPointDiameter(size_t v, double d);
879  void MS2_ViewerConnectZooms(size_t v2con, bool con);
880  void MS2_ViewerSetVisTrafoActive(size_t v2tra);
881  void MS2_ViewerSetVisTrafoActive_All();
882  void MS2_ViewersPopulateCBs();
883  void MS2_ViewersSelectDefaultCBs();
884 
885  void MS2_UpdateViews();
886  void MS2_UpdateImages();
887  void MS2_UpdateImage1();
888  void MS2_UpdateImage2();
889  void MS2_UpdateImage3();
890  void MS2_UpdateImage4();
891  void MS2_UpdateImage(size_t img2update);
892  void MS2_UpdateImages_Editing();
893 
894  void MS2_UpdateImage_ToDo_Static();
895  void MS2_UpdateImage_ToDo_Highlight(int x, int y);
896  void MS2_UpdateImage_ToDo_Highlight();
897 
898  void MS2_UpdateImage_Viewport();
899  void MS2_MoveToNextViewportToProcess();
900  void MS2_MoveToNextViewport();
901 
902  void MS2_UpdateViewportPos();
903  void MS2_InitOverlays();
904  void MS2_UpdateOverlays();
905  void MS2_UpdateOverlay(size_t overlay_index);
906 
907  void MS2_DrawMode_Set(size_t mode);
908  void MS2_Draw_RecordedClicks_UpdateAvailiableDrawModi();
909  void MS2_Draw_RecordedClicksChanged(size_t point_count);
910 
911  bool MS2_CalcMosaik_Size();
912 
913  bool MS2_LoadData();
914  bool MS2_LoadData_DirsIn();
915  bool MS2_LoadData_DirsOut();
916 
917  bool MS2_LoadData_TimeSelected();
918  bool MS2_LoadData_Time(size_t t);
919  bool MS2_LoadData_Mosaiks_In(size_t t);
920  bool MS2_LoadData_Detections_In(size_t t, bool error_when_no_dir);
921  bool MS2_LoadData_Detections_Out(size_t t);
922  bool MS2_LoadData_Detections(size_t t, bool error_when_no_dir, vector<vector<D_Bio_NucleusImage> > *vvNucleiTarget, QDir DIR_Source, vector<vector<size_t> > *vvState, size_t state_found, size_t state_not_found);
923 
924  void MS2_ChangeMode(int mode);
925 
926  void MS2_EventList_Load();
927  void MS2_EventList_Close();
928  bool MS2_EventList_Sort();
929  void MS2_EventList_SaveList();
930  void MS2_EventList_SaveCurrent();
931  bool MS2_EventList_ReadAtCursor();
932  bool MS2_EventList_MoveToEvent();
933  void MS2_EventList_Move();
934  void MS2_EventList_Move_ToBegin();
935  void MS2_EventList_Move_ToEnd();
936  int MS2_EventList_Decode_Number_Current(char number_name, bool *ok);
937  int MS2_EventList_Decode_Number(int line, char number_name, bool *ok);
938  int MS2_EventList_Decode_Number(QStringList QSL_List, int line, char number_name, bool *ok);
939  QString MS2_EventList_Decode_Comment_Current(bool *ok);
940  QString MS2_EventList_Decode_Comment(int line, bool *ok);
941  bool MS2_EventList_Decode_Status_Current(bool *ok);
942  bool MS2_EventList_Decode_Status(int line, bool *ok);
943 
944  void on_groupBox_VisTrafo_clicked();
945 
946  void on_doubleSpinBox_MS2_Params_NucleusBorderThickness_valueChanged(double arg1);
947  void on_doubleSpinBox_MS2_Params_FociMinRadius_valueChanged(double arg1);
948 
949  void on_pushButton_MS2_Viewport_Left_clicked();
950  void on_pushButton_MS2_Viewport_Right_clicked();
951  void on_pushButton_MS2_Viewport_Up_clicked();
952  void on_pushButton_MS2_Viewport_Down_clicked();
953  void on_pushButton_MS2_Viewport_Next_clicked();
954  void on_pushButton_MS2_Viewport_Previous_clicked();
955 
956  void on_checkBox_MS2_ViewportOverlay_clicked();
957 
958  void on_pushButton_MS2_Tools_Progress_Corrected_clicked();
959  void on_pushButton_MS2_Tools_Progress_Clear_clicked();
960  void on_pushButton_MS2_Tools_Progress_Reset_clicked();
961  void on_pushButton_MS2_Tools_Progress_ToCorrect_clicked();
962 
963  void on_pushButton_MS2_Tools_History_Undo_clicked();
964  void on_pushButton_MS2_Tools_History_Redo_clicked();
965 
966  void on_pushButton_MS2_Tools_RecordPoints_Start_clicked();
967  void on_pushButton_MS2_Tools_RecordPoints_Cancel_clicked();
968  void on_pushButton_MS2_Tools_ApplyPoints_Polygon_clicked();
969  void on_pushButton_MS2_Tools_ApplyPoints_Ellipse_clicked();
970  void on_pushButton_MS2_Tools_ApplyPoints_Remove_clicked();
971 
972  void on_spinBox_MS2_ViewerSettings_PointDiameter_1_valueChanged(int arg1);
973  void on_spinBox_MS2_ViewerSettings_PointDiameter_2_valueChanged(int arg1);
974  void on_spinBox_MS2_ViewerSettings_PointDiameter_3_valueChanged(int arg1);
975  void on_spinBox_MS2_ViewerSettings_PointDiameter_4_valueChanged(int arg1);
976 
977  void on_pushButton_MS2_Viewport_NextToCorrect_clicked();
978  void on_pushButton_MS2_Viewport_NextSegment_clicked();
979 
980  void on_spinBox_MS2_Viewport_X_valueChanged(int arg1);
981  void on_spinBox_MS2_Viewport_Y_valueChanged(int arg1);
982  void on_spinBox_MS2_Viewport_T_valueChanged(int arg1);
983 
984  void on_progressBar_MS2_CorrectionProgress_valueChanged(int value);
985 
986  void on_pushButton_MS2_Tools_ApplyPoints_ConvexHull_clicked();
987  void on_pushButton_MS2_Tools_ApplyPoints_Points_clicked();
988  void on_pushButton_MS2_Tools_ApplyPoints_Merge_clicked();
989  void on_pushButton_MS2_Tools_ApplyPoints_Separate_clicked();
990  void on_pushButton_MS2_Tools_ApplyPointsParam_PointsBigger_clicked();
991  void on_pushButton_MS2_Tools_ApplyPointsParam_PointsSmaller_clicked();
992 
993  void on_radioButton_MS2_Mode_ToDo_clicked(bool checked);
994  void on_radioButton_MS2_Mode_Detailed_clicked(bool checked);
995  void on_checkBox_MS2_ToDo_StateBorders_clicked();
996  void on_checkBox_MS2_ToDo_StateMarkers_clicked();
997  void on_checkBox_MS2_ToDo_SegmentBorders_clicked();
998  void on_checkBox_MS2_ToDo_DetectionsOverlay_clicked();
999  void on_pushButton_MS2_ToDo_HoveredToOk_clicked();
1000  void on_pushButton_MS2_ToDo_HoveredToUnknown_clicked();
1001 
1002 private:
1003  void MS2_init_ui();
1004  const static size_t MS2_ViewersCount = 4;
1005  const static size_t MS2_ViewersChannels = 3; //sorted bgr
1006  int MS2_ViewerMaximized = -1;
1007 
1008  //ui elments
1009  D_Viewer MS2_Viewer1;
1010  D_Viewer MS2_Viewer2;
1011  D_Viewer MS2_Viewer3;
1012  D_Viewer MS2_Viewer4;
1013  D_Viewer MS2_Viewer_Viewport;
1014  D_Viewer MS2_Viewer_ToDo;
1015  vector<D_Viewer*> v_MS2_Viewer;
1016  vector<QPushButton*> v_MS2_PUB_Viewer_Maximize;
1017  vector<QPushButton*> v_MS2_PUB_Viewer_PointColor;
1018  vector<vector<QComboBox*>> vv_MS2_COB_ViewerChannel_Image_viewer_bgr;
1019  vector<vector<QComboBox*>> vv_MS2_COB_ViewerChannel_Overlay_viewer_bgr;
1020  vector<QCheckBox*> v_MS2_CHB_Viewer_Transform;
1021  vector<QCheckBox*> v_MS2_CHB_Viewer_SegmentBox;
1022  vector<QCheckBox*> v_MS2_CHB_Viewer_ConnectZoom;
1023  vector<QGroupBox*> v_MS2_GRB_Viewer_GroupAll;
1024  vector<QGroupBox*> v_MS2_GRB_Viewer_GroupSettings;
1025 
1026  vector<QPushButton*> v_MS2_PUB_DrawModi;
1027 
1028  //remember stuff for ui
1029  vector<QColor> v_MS2_COL_Viewer_PointColor;
1030 
1031  //images to show
1032  vector<Mat> v_MS2_MA_Images2Show;
1033  Mat MA_MS2_ViewportShow;
1034  Mat MA_MS2_ToDo_Static;
1035  Mat MA_MS2_ToDo_Highlight;
1036 
1037  //channel images
1038  vector<Mat> v_MS2_MA_ChannelsImage_Full;
1039  vector<Mat> v_MS2_MA_ChannelsImage_Croped;
1040  vector<Mat> v_MS2_MA_ChannelsOverlay_Croped;
1041 
1042  //DIRs in
1043  QDir DIR_MS2_In_Master;
1044  QDir DIR_MS2_In_Detections;
1045  QDir DIR_MS2_In_Mosaik;
1046  vector<QDir> vDIR_MS2_In_MosaikChannels;
1047  vector<vector<QDir>> vvDIR_MS2_In_Detections_TimesNuclei;
1048 
1049  //DIRs out
1050  QDir DIR_MS2_Out_Master;
1051  QDir DIR_MS2_Out_DetectionsCorrected;
1052 
1053  //data
1054  double MS2_MosaikImageScale;
1055  double MS2_MosaikBorderPrz;
1056  int MS2_MosaikImageWidth;
1057  int MS2_MosaikImageHeight;
1058  vector<vector<D_Bio_NucleusImage>> vv_MS2_NucImg_In_mosaikXY;
1059  vector<vector<D_Bio_NucleusImage>> vv_MS2_NucImg_Out_mosaikXY;
1060  vector<vector<size_t>> vv_MS2_NucImg_State_In_mosaikXY;
1061  vector<vector<size_t>> vv_MS2_NucImg_State_Out_mosaikXY;
1062 
1063  //viewport pos
1064  Point MS2_ViewportOffset_NotScaled = Point(0,0);
1065  Point MS2_ViewportOffset_Scaled = Point(0,0);
1066 
1067  //drawing
1068  size_t MS2_draw_mode = MS2_DRAW_MODE_NUCLEI;
1069  void MS2_Draw_Save();
1070  void MS2_Draw_Clear();
1071  void MS2_Draw_Reset();
1072  void MS2_Draw_SetProcessed();
1073  void MS2_Draw_SetToProcess();
1074  void MS2_Draw_UpdateUi();
1075  void MS2_Draw_RecordingStart();
1076  void MS2_Draw_RecordingEnd();
1077  void MS2_Draw_Ellipse();
1078  void MS2_Draw_Polygon();
1079  void MS2_Draw_ConvexHull();
1080  void MS2_Draw_Points();
1081  void MS2_Draw_SeparateObject();
1082  void MS2_Draw_MergeObjects();
1083  void MS2_Draw_Contour(vector<Point> contour);
1084  void MS2_Draw_Remove();
1085 
1086  //drawing editing backups
1087  const size_t MS2_DetOutBackup_Count = 20;
1088  bool MS2_DetOutBackup_Init();
1089  void MS2_DetOutBackup_Save();
1090  bool MS2_DetOutBackup_Undo();
1091  bool MS2_DetOutBackup_Redo();
1092  void MS2_DetOutBackup_UpdateUi();
1093  vector<vector<vector<D_Bio_NucleusImage>>> vvv_MS2_DetectionsOutBackups_XYI;
1094  vector<vector<size_t>> vvv_MS2_DetectionsOut_BackupCursor;
1095  vector<vector<size_t>> vvv_MS2_DetectionsOut_BackupValidMax;
1096 
1097  //to do list / fast editing
1098  void MS2_ToDo_SetFinished();
1099  void MS2_ToDo_SetFinished(int x, int y);
1100  void MS2_ToDo_SetToBeEdited();
1101  void MS2_ToDo_SetToBeEdited(int x, int y);
1102 
1103  //Event List
1104  bool MS2_EventList_FileSet = false;
1105  QFileInfo MS2_EventList_File;
1106  QStringList MS2_EventList_Events;
1107  const int MS2_EventList_CursorOffset = 6;
1108  bool MS2_EventList_ReadEventValid = false;
1109 
1110 
1111  //states
1112  bool state_MS2_data_loaded = false;
1113  bool state_MS2_detections_loaded = false;
1114  bool state_MS2_backups_init = false;
1115  bool state_MS2_todo_static_img_created = false;
1116 
1117  enum MS2_EDITING_MODE {
1118  MS2_MODE_DETAILED,
1119  MS2_MODE_TO_DO,
1120  MS2_MODE_NUMBER_OF
1121  };
1122 
1123  enum MS2_CHANNELS_MOSAIK {
1124  MS2_CH_MOSAIK_DIC,
1125  MS2_CH_MOSAIK_GFP,
1126  MS2_CH_MOSAIK_RFP,
1127  MS2_CH_MOSAIK_NUMBER_OF
1128  };
1129  const QStringList QSL_MS2_ChannelsMosaik = {
1130  "DIC",
1131  "GFP",
1132  "RFP"
1133  };
1134 
1135  enum MS2_CHANNELS_IMAGE {
1136  MS2_CH_IMG_EMPTY,
1137  MS2_CH_IMG_DIC,
1138  MS2_CH_IMG_GFP,
1139  MS2_CH_IMG_RFP,
1140  MS2_CH_IMG_DET_IN,
1141  MS2_CH_IMG_NUMBER_OF
1142  };
1143  const QStringList QSL_MS2_ChannelsImage = {
1144  "empty",
1145  "DIC",
1146  "GFP",
1147  "RFP",
1148  "Detections in"
1149  };
1150 
1151  enum MS2_CHANNELS_OVERLAY {
1152  MS2_CH_OVR_EMPTY,
1153  MS2_CH_OVR_NUCLEI,
1154  MS2_CH_OVR_FOCI_GFP,
1155  MS2_CH_OVR_FOCI_RFP,
1156  MS2_CH_OVR_FOCI_BOTH,
1157  MS2_CH_OVR_NUMBER_OF
1158  };
1159  const QStringList QSL_MS2_ChannelsOverlay = {
1160  "empty",
1161  "Nuclei",
1162  "Foci GFP",
1163  "Foci RFP",
1164  "Foci both"
1165  };
1166 
1167  enum MS2_IMAGE_STATE {
1168  MS2_IMG_STATE_NOT_FOUND,
1169  MS2_IMG_STATE_LOADED,
1170  MS2_IMG_STATE_TO_PROCESS,
1171  MS2_IMG_STATE_PROCESSED,
1172  MS2_IMG_STATE_NUMBER_OF
1173  };
1174 
1175  enum MS2_DRAW_MODE {
1176  MS2_DRAW_MODE_NUCLEI,
1177  MS2_DRAW_MODE_FOCI_GFP,
1178  MS2_DRAW_MODE_FOCI_RFP,
1179  MS2_DRAW_MODE_FOCI_BOTH,
1180  MS2_DRAW_MODE_NUMBER_OF
1181  };
1182  const QStringList QSL_MS2_DrawMode = {
1183  "nuclei",
1184  "GFP",
1185  "RFP",
1186  "GFP and RFP"
1187  };
1188 
1189  //-------------------------------------------------------------------- MS3 ----------------------------------------------------
1190 
1191 private slots:
1192 
1193  void on_comboBox_MS3_ImgProc_ProjectZ_Stat_currentIndexChanged(int index);
1194  void on_doubleSpinBox_MS3_ImgProc_Vis_Intensity_Overlay_valueChanged(double arg1);
1195  void on_doubleSpinBox_MS3_ImgProc_Vis_Intensity_Background_valueChanged(double arg1);
1196  void on_doubleSpinBox_MS3_ImgProc_DuplicateRelThres_valueChanged(double arg1);
1197  void on_spinBox_MS3_ImgProc_Vis_Other_Min_valueChanged(int arg1);
1198  void on_spinBox_MS3_ImgProc_Vis_Other_Max_valueChanged(int arg1);
1199  void on_doubleSpinBox_MS3_ImgProc_Vis_Other_Gamma_valueChanged(double arg1);
1200  void on_spinBox_MS3_ImgProc_Vis_GFP_Min_valueChanged(int arg1);
1201  void on_spinBox_MS3_ImgProc_Vis_GFP_Max_valueChanged(int arg1);
1202  void on_doubleSpinBox_MS3_ImgProc_Vis_GFP_Gamma_valueChanged(double arg1);
1203  void on_spinBox_MS3_ImgProc_Vis_RFP_Min_valueChanged(int arg1);
1204  void on_spinBox_MS3_ImgProc_Vis_RFP_Max_valueChanged(int arg1);
1205  void on_doubleSpinBox_MS3_ImgProc_Vis_RFP_Gamma_valueChanged(double arg1);
1206 
1207  void on_comboBox_MS3_ImgProc_StepShow_currentIndexChanged(int index);
1208 
1209  void on_spinBox_DataDim_X_valueChanged(int arg1);
1210  void on_spinBox_DataDim_Y_valueChanged(int arg1);
1211  void on_spinBox_DataDim_T_valueChanged(int arg1);
1212 
1213 
1214 private:
1215 
1216  void MS3_UiInit();
1217  bool MS3_LoadDirs();
1218  bool MS3_LoadDetections(size_t t);
1219  //void MS3_ProcessStack();
1220 
1221  void Update_ImageProcessing_StepFrom_MS3(size_t step_start);
1222  void Update_ImageProcessing_StepSingle_MS3(size_t step);
1223  void Update_ImageProcessing_StepSingle_MS3_ReuseProcChainMS1(size_t step);
1224  void Update_ImageProcessing_StepSingle_MS3_DrawDetections(size_t step);
1225  void Update_ImageProcessing_StepSingle_MS3_VisualizeResults(size_t step);
1226 
1227  //data
1228  QDir DIR_MS3_In_Master;
1229  QDir DIR_MS3_In_DetectionsCorrected;
1230  vector<vector<D_Bio_NucleusImage>> vv_MS3_NucImg_InCorrected_mosaikXY;
1231  vector<vector<size_t>> vv_MS3_NucImg_InCorrected_States_mosaikXY;
1232 
1233  //states
1234  bool state_MS3_data_loaded = false;
1235  bool state_MS3_stack_processing = false;
1236  bool state_MS3_detections_loaded = false;
1237 
1238  int MS3_current_loaded_detections_T = -1;
1239 
1240  //Img Proc Step
1241  enum STEPS_MS3 {
1242  //Prepare (Load, Stitch, Project)
1243  STEP_MS3_PRE_LOAD_MAIN,
1244  STEP_MS3_PRE_LOAD_RIGHT,
1245  STEP_MS3_PRE_LOAD_BOTTOM,
1246  STEP_MS3_PRE_LOAD_BOTTOM_RIGHT,
1247  STEP_MS3_PRE_STITCH,
1248  STEP_MS3_PRE_BLUR_GAUSS,
1249  STEP_MS3_PRE_PROJECT_Z,
1250 
1251  //Pick Channels
1252  STEP_MS3_PCK_OTHER,
1253  STEP_MS3_PCK_GFP,
1254  STEP_MS3_PCK_RFP,
1255 
1256  //Visualization
1257  STEP_MS3_VIS_OTHER,
1258  STEP_MS3_VIS_GFP,
1259  STEP_MS3_VIS_RFP,
1260  STEP_MS3_VIS_PAGES_AS_COLOR_GFP_RFP,
1261  STEP_MS3_VIS_PAGES_AS_COLOR_ALL,
1262 
1263  //draw detections
1264  STEP_MS3_VIS_NUCLEI_BORDERS_NO_REMOVE,
1265  STEP_MS3_VIS_NUCLEI_BORDERS,
1266  STEP_MS3_VIS_NUCLEI_FILLED_STACK,
1267  STEP_MS3_VIS_NUCLEI_FILLED_PICKED,
1268  STEP_MS3_VIS_NUCLEI_FILLED_ALL,
1269  STEP_MS3_VIS_FOCI_GFP,
1270  STEP_MS3_VIS_FOCI_RFP,
1271  STEP_MS3_VIS_FOCI_BOTH,
1272 
1273  //Visualization
1274  STEP_MS3_VIS_REGIONS,
1275  STEP_MS3_VIS_REGIONS_BACKGROUND,
1276  //STEP_MS3_VIS_REGIONS_FOCI_COUNT,
1277 
1278  STEP_MS3_NUMBER_OF
1279  };
1280  const QStringList QSL_Steps_MS3 = {
1281  "pre-0 Load main image",
1282  "pre-1 Load border image R",
1283  "pre-2 Load border image B",
1284  "pre-3 Load border image BR",
1285  "pre-4 Stitch borders to main image",
1286  "pre-5 Blur gaussian",
1287  "pre-6 Z-Projection",
1288 
1289  "pck-0 OTHER pick signal",
1290  "pck-1 GFP pick signal",
1291  "pck-2 RFP pick Signal",
1292 
1293  "vis-0 visualize OTHER",
1294  "vis-1 visualize GFP",
1295  "vis-2 visualize RFP",
1296  "vis-3 Color GFP and RFP",
1297  "vis-4 Color all channels",
1298 
1299  "draw-0 Nuclei Borders (without remove duplicates)",
1300  "draw-1 Nuclei Borders",
1301  "draw-2 Nuclei Filled (stacked)",
1302  "draw-2 Nuclei Filled (picked)",
1303  "draw-2 Nuclei Filled (projected all)",
1304  "draw-3 Foci GFP",
1305  "draw-4 Foci RFP",
1306  "draw-5 Foci Both",
1307 
1308  "vis-5 Regions",
1309  "vis-6 Regions with background"
1310  //"vis-7 Regions with foci counts"
1311  };
1312 
1313  enum MS3_PARAMS {
1314  MS3_PARAM_PRE5_BLUR_SIZE,
1315  MS3_PARAM_PRE5_BLUR_SIGMA,
1316  MS3_PARAM_PRE6_STAT,
1317  MS3_PARAM_VIS0_NUC_MIN,
1318  MS3_PARAM_VIS0_NUC_MAX,
1319  MS3_PARAM_VIS0_NUC_GAMMA,
1320  MS3_PARAM_VIS1_GFP_MIN,
1321  MS3_PARAM_VIS1_GFP_MAX,
1322  MS3_PARAM_VIS1_GFP_GAMMA,
1323  MS3_PARAM_VIS2_RFP_MIN,
1324  MS3_PARAM_VIS2_RFP_MAX,
1325  MS3_PARAM_VIS2_RFP_GAMMA,
1326  MS3_PARAM_VIS6_INTENSITY_OVERLAY,
1327  MS3_PARAM_VIS6_INTENSITY_BACKGROUND,
1328  MS3_PARAM_OTHER_DUPLICATE_OVERLAP,
1329  MS3_PARAM_NUMBER_OF
1330  };
1331 
1332  const QStringList QSL_MS3_Params = {
1333  "MS3_PARAM_PRE5_BLUR_SIZE",
1334  "MS3_PARAM_PRE5_BLUR_SIGMA",
1335  "MS3_PARAM_PRE6_STAT",
1336  "MS3_PARAM_VIS0_NUC_MIN",
1337  "MS3_PARAM_VIS0_NUC_MAX",
1338  "MS3_PARAM_VIS0_NUC_GAMMA",
1339  "MS3_PARAM_VIS1_GFP_MIN",
1340  "MS3_PARAM_VIS1_GFP_MAX",
1341  "MS3_PARAM_VIS1_GFP_GAMMA",
1342  "MS3_PARAM_VIS2_RFP_MIN",
1343  "MS3_PARAM_VIS2_RFP_MAX",
1344  "MS3_PARAM_VIS2_RFP_GAMMA",
1345  "MS3_PARAM_VIS6_INTENSITY_OVERLAY",
1346  "MS3_PARAM_VIS6_INTENSITY_BACKGROUND",
1347  "MS3_PARAM_OTHER_DUPLICATE_OVERLAP"
1348  };
1349 
1350 
1351  //-------------------------------------------------------------------- MS4 ----------------------------------------------------
1352 
1353 private:
1354 
1355  //data
1356  QDir DIR_MS4_In_Master;
1357  QDir DIR_MS4_In_DetectionsAssigned;
1358  QDir DIR_MS4_Out_NucleiLifes;
1359 
1360  D_Bio_NucleusPedigree MS4_NucPedigree_AutoReconstruct;
1361  D_Bio_NucleusPedigree MS4_NucPedigree_CleanBackup;
1362 
1363  //viewer
1364  D_Viewer_Plot_3D MS4_Viewer_Pedigree_Plot3D;
1365  D_Viewer_3D MS4_Viewer_Pedigree_Volumetric;
1366 
1367  //states
1368  bool state_MS4_dirs_loaded = false;
1369  bool state_MS4_detections_loaded_to_pedigree = false;
1370  //bool state_MS4_pedigree_backup_created = false;
1371  bool state_MS4_pedigree_init = false;
1372  bool state_MS4_pedigree_init_1st_time = false;
1373  bool state_MS4_pedigree_reconstructed = false;
1374 
1375 private slots:
1376 
1377  void MS4_UiInit();
1378  bool MS4_LoadData();
1379  bool MS4_LoadDirs();
1380  bool MS4_LoadDetectionsToPedigree();
1381 
1382  //bool MS4_PedigreeBackup_Create();
1383  //bool MS4_PedigreeBackup_Load();
1384 
1385  bool MS4_SaveData();
1386 
1387  void MS4_DisplayRelativeScoreWeights();
1388  bool MS4_InitPedigree();
1389  bool MS4_ReconstructPedigree();
1390  bool MS4_UpdatePedigreePlot();
1391 
1392  void MS4_CalcVolumetricView_Memory();
1393  void MS4_CalcOriginalMosaicSize();
1394 
1395  void on_pushButton_MS4_LoadData_clicked();
1396  void on_pushButton_MS4_SaveData_clicked();
1397  void on_pushButton_MS4_StartPedigreeReconstruction_clicked();
1398  void on_pushButton_MS4_UpdatePedigreeView_clicked();
1399  void on_spinBox_MS4_PedigreeView_Param_Volumetric_SubVolumeSize_X_valueChanged(int arg1);
1400  void on_spinBox_MS4_PedigreeView_Param_Volumetric_SubVolumeSize_Y_valueChanged(int arg1);
1401  void on_spinBox_MS4_PedigreeView_Param_Volumetric_SubVolumeSize_T_valueChanged(int arg1);
1402  void on_spinBox_MS4_PedigreeProp_OriginalImgSize_Single_X_valueChanged(int arg1);
1403  void on_spinBox_MS4_PedigreeProp_OriginalImgSize_Single_Y_valueChanged(int arg1);
1404 
1405  void on_checkBox_MS4_Score_AdvancedSettings_clicked(bool checked);
1406 
1407 
1408  //-------------------------------------------------------------------- MS5 ----------------------------------------------------
1409 
1410 private slots:
1411  void MS5_UiInit();
1412  bool MS5_LoadAll();
1413  bool MS5_LoadDirs();
1414  bool MS5_LoadMosaics();
1415  bool MS5_LoadNucleiData();
1416  bool MS5_LoadNucleiLifes();
1417 
1418  bool MS5_SaveData();
1419  bool MS5_SaveImgStack();
1420 
1421  void MS5_UpdateImages_Basic();
1422  void MS5_UpdateImages_Highlight();
1423  void MS5_FindConnectedNucsToDraw(vector<D_Bio_NucleusBlob*>* pvpNucs, vector<size_t> *pvKinshipDegrees, D_Bio_NucleusBlob* pNucCheck, size_t t_min, size_t t_max, size_t kinship_degree = 0);
1424 
1425  bool MS5_CoordTransform_MosaicPx_2_OriginalPx(int* x, int* y);
1426  void MS5_NucleiHighlight_Select_Viewer0(int x, int y);
1427  void MS5_NucleiHighlight_Select_Viewer1(int x, int y);
1428  void MS5_NucleiHighlight_Select_Viewer2(int x, int y);
1429  void MS5_NucleiHighlight_Select_Viewer3(int x, int y);
1430  void MS5_NucleiHighlight_Select_Viewer4(int x, int y);
1431  void MS5_NucleiHighlight_Hover_Viewer0(int x, int y);
1432  void MS5_NucleiHighlight_Hover_Viewer1(int x, int y);
1433  void MS5_NucleiHighlight_Hover_Viewer2(int x, int y);
1434  void MS5_NucleiHighlight_Hover_Viewer3(int x, int y);
1435  void MS5_NucleiHighlight_Hover_Viewer4(int x, int y);
1436  void MS5_NucleiHighlight_Select(int x, int y, size_t t);
1437  void MS5_NucleiHighlight_Hover(int x, int y, size_t t);
1438 
1439  bool MS5_Editing_SelectionCheck();
1440  void MS5_Editing_SelectionForget();
1441  void MS5_Editing_ConnectionCheck();
1442  bool MS5_Editing_ConnectionCreate();
1443  bool MS5_Editing_ConnectionDelete();
1444  bool MS5_Editing_Include();
1445  bool MS5_Editing_Exclude();
1446 
1447  void MS5_EventToS2_SetList();
1448  void MS5_EventToS2_Start();
1449  void MS5_EventToS2_Stop();
1450  void MS5_EventToS2_GetClick_v0(int x, int y);
1451  void MS5_EventToS2_GetClick_v1(int x, int y);
1452  void MS5_EventToS2_GetClick_v2(int x, int y);
1453  void MS5_EventToS2_GetClick_v3(int x, int y);
1454  void MS5_EventToS2_GetClick_v4(int x, int y);
1455  void MS5_EventToS2_GetClick(int x, int y, size_t t);
1456  void MS5_EventToS2_AddEvent();
1457  void MS5_EventToS2_SaveEventList();
1458 
1459  void MS5_EventS5intern_JumpToNext();
1460  void MS5_EventS5intern_MoveToVP();
1461  void MS5_EventS5intern_CountEvents();
1462 
1463  void on_pushButton_MS5_DataLoad_clicked();
1464  void on_spinBox_MS5_Y_size_valueChanged(int arg1);
1465  void on_spinBox_MS5_X_size_valueChanged(int arg1);
1466  void on_pushButton_MS5_DataSave_clicked();
1467  void on_pushButton_MS5_Editing_ConnectionCreate_clicked();
1468  void on_pushButton_MS5_Editing_ConnectionDelete_clicked();
1469  void on_pushButton_MS5_Editing_Exclude_clicked();
1470  void on_pushButton_MS5_Editing_Include_clicked();
1471  void on_pushButton_MS5_Editing_ForgetSelection_clicked();
1472 
1473  void on_pushButton_MS5_SaveViewportImageStack_clicked();
1474 
1475  void on_pushButton_MS5_EventS2_RecordStart_clicked();
1476  void on_pushButton_MS5_EventS2_RecordStop_clicked();
1477 
1478  void on_spinBox_MS5_Events_S5intern_Pos_T_valueChanged(int arg1);
1479  void on_spinBox_MS5_Events_S5intern_Pos_Y_valueChanged(int arg1);
1480  void on_spinBox_MS5_Events_S5intern_Pos_X_valueChanged(int arg1);
1481  void on_pushButton_MS5_Events_S5intern_JumpToNextEvent_clicked();
1482  void on_spinBox_MS5_Events_S5intern_Draw_Radius_valueChanged(int arg1);
1483  void on_spinBox_MS5_Events_S5intern_Draw_Thickness_valueChanged(int arg1);
1484  void on_spinBox_MS5_Events_S5intern_Draw_Red_valueChanged(int arg1);
1485  void on_spinBox_MS5_Events_S5intern_Draw_Green_valueChanged(int arg1);
1486  void on_spinBox_MS5_Events_S5intern_Draw_Blue_valueChanged(int arg1);
1487  void on_pushButton_MS5_Events_S5intern_Draw_SelectColor_clicked();
1488  void on_pushButton_MS5_Events_S5intern_BackToZero_clicked();
1489  void on_pushButton_MS5_Events_S5intern_CountEvents_clicked();
1490  void on_checkBox_MS5_Events_S5intern_AutoUpdateCount_stateChanged(int arg1);
1491  void on_spinBox_MS5_Events_S5intern_LargeDist_Dist_valueChanged(int arg1);
1492  void on_spinBox_MS5_Events_S5intern_ShortTracking_Isolated_Duration_valueChanged(int arg1);
1493  void on_spinBox_MS5_Events_S5intern_ShortTracking_LooseStart_Duration_valueChanged(int arg1);
1494  void on_spinBox_MS5_Events_S5intern_ShortTracking_LooseEnd_Duration_valueChanged(int arg1);
1495  void on_spinBox_MS5_Events_S5intern_ShortTracking_BetweenMitoses_Duration_valueChanged(int arg1);
1496  void on_checkBox_MS5_Events_S5intern_Excluded_stateChanged(int arg1);
1497  void on_checkBox_Events_S5intern_EventConstraints_AfterT_clicked();
1498  void on_spinBox_Events_S5intern_EventConstraints_AfterT_Time_valueChanged(int arg1);
1499  void on_checkBox_Events_S5intern_EventConstraints_BeforeT_clicked();
1500  void on_spinBox_Events_S5intern_EventConstraints_BeforeT_Time_valueChanged(int arg1);
1501  void on_checkBox_Events_S5intern_EventConstraints_NotBorder_stateChanged(int arg1);
1502  void on_spinBox_Events_S5intern_EventConstraints_NotBorder_Size_valueChanged(int arg1);
1503  void on_checkBox_Events_S5intern_EventConstraints_Mosaik_stateChanged(int arg1);
1504  void on_spinBox_Events_S5intern_EventConstraints_Mosaik_MaxX_valueChanged(int arg1);
1505  void on_spinBox_Events_S5intern_EventConstraints_Mosaik_MaxY_valueChanged(int arg1);
1506  void on_checkBox_Events_S5intern_EventConstraints_NoExcluded_stateChanged(int arg1);
1507  void on_checkBox_MS5_Events_S5intern_LargeDist_stateChanged(int arg1);
1508  void on_checkBox_MS5_Events_S5intern_Mitosis_stateChanged(int arg1);
1509  void on_checkBox_MS5_Events_S5intern_ShortTracking_Isolated_stateChanged(int arg1);
1510  void on_checkBox_MS5_Events_S5intern_ShortTracking_LooseStart_stateChanged(int arg1);
1511  void on_checkBox_MS5_Events_S5intern_ShortTracking_LooseEnd_stateChanged(int arg1);
1512  void on_checkBox_MS5_Events_S5intern_ShortTracking_BetweenMitoses_stateChanged(int arg1);
1513 
1514 private:
1515  static void MS5_CalcImage_Thread(Mat *pMA_out, vector<vector<Mat> > *pvv_imgs_ct, D_Bio_NucleusPedigree *pPedigree, size_t t, size_t y_min_mosaic, size_t y_size_mosaic, size_t x_min_mosaic, size_t x_size_mosaic, bool use_DIC, bool use_GFP, bool use_RFP, bool draw_contour_parent, bool draw_contour_current, bool draw_contour_childs, bool draw_shift_parent, bool draw_shift_childs, bool age_text, bool color_info, size_t ny_mosaic, size_t nx_mosaic, int thickness, double scale);
1516 
1517 
1518  //path
1519  QDir DIR_MS5_Load_Mosaics;
1520  QDir DIR_MS5_Load_NucleiData;
1521  QDir DIR_MS5_Load_NucleiLifes;
1522  QDir DIR_MS5_Out_NucleiLifes;
1523 
1524  //data mosaics
1525  enum MS5_MOSAIC_CHANNELS {
1526  MS5_MOSAIC_CH_RFP,
1527  MS5_MOSAIC_CH_GFP,
1528  MS5_MOSAIC_CH_DIC,
1529  MS5_MOSAIC_CH_NUMBER_OF
1530  };
1531  const QStringList QSL_MS5_MosaicChannels = {
1532  "RFP",
1533  "GFP",
1534  "DIC"
1535  };
1536  vector<vector<Mat>> vv_MS5_Mosaics_CT;
1537 
1538  //data pedigree
1539  D_Bio_NucleusPedigree MS5_NucPedigree_Editing;
1540 
1541  //Viewers
1542  const size_t MS5_ViewersCount = 5;
1543  D_Viewer MS5_Viewer_T0;
1544  D_Viewer MS5_Viewer_T1;
1545  D_Viewer MS5_Viewer_T2;
1546  D_Viewer MS5_Viewer_T3;
1547  D_Viewer MS5_Viewer_T4;
1548  vector<D_Viewer*> v_MS5_Viewers_T;
1549  vector<QLabel*> v_MS5_ViewerLabels_T;
1550  vector<Mat> v_MS5_MAs_ShowBasic;
1551  vector<Mat> v_MS5_MAs_ShowHighlight;
1552 
1553  //highlighted nuclei
1554  vector<D_Bio_NucleusBlob*> v_MS5_pNuc_Highlighted;
1555  enum MS5_NUC_HIGHLIGHT {
1556  MS5_NUC_HIGHLIGHT_SELECT1,
1557  MS5_NUC_HIGHLIGHT_SELECT2,
1558  MS5_NUC_HIGHLIGHT_HOVERED,
1559  MS5_NUC_HIGHLIGHT_NUMBER_OF
1560  };
1561 
1562  //EventToS2
1563  bool MS5_EventToS2_FileSet = false;
1564  bool MS5_EventToS2_Recording = false;
1565  int MS5_EventToS2_ClicksRecorded = 0;
1566  double MS5_EventToS2_Click_Time = 0;
1567  Point MS5_EventToS2_Click_Point = Point(0,0);
1568  double MS5_EventToS2_Click_Radius = 0;
1569  QFileInfo MS5_EventToS2_File;
1570  QStringList MS5_EventToS2_Events;
1571 
1572  //Events S5 intern
1573  bool MS5_EventS5intern_EventActive = false;
1574 
1575  //states
1576  bool MS5_state_loaded_all = false;
1577  bool MS5_state_loaded_dirs = false;
1578  bool MS5_state_loaded_mosaics = false;
1579  bool MS5_state_loaded_nuc_data = false;
1580  bool MS5_state_loaded_nuc_lifes = false;
1581  bool MS5_state_imgs_shown_at_lesast_once = false;
1582 
1583 
1584  //-------------------------------------------------------------------- MS6 ----------------------------------------------------
1585 
1586 private slots:
1587  void MS6_UiInit();
1588 
1589  void MS6_UpdateViews();
1590 
1591  bool MS6_LoadAll();
1592  bool MS6_LoadDirs();
1593  bool MS6_LoadMosaics();
1594  bool MS6_LoadNucleiData();
1595  bool MS6_LoadNucleiLifes();
1596 
1597  bool MS6_GetChannelsFromUi();
1598  bool MS6_GetIrradiationTimeFromUi();
1599  bool MS6_GetRangeXYFromUi();
1600 
1601  void MS6_ResAxis_UpdateModi();
1602  void MS6_ResAxis_SetMode(size_t i_axis, QString axis_description, size_t i_mode);
1603  vector<double> MS6_DataForAxis(size_t i_axis);
1604  size_t MS6_Data_ChannelIndex(size_t i_axis);
1605  QString MS6_Data_ChannelSuffix(size_t i_axis);
1606  QString MS6_DefaultTitle_Result();
1607  QString MS6_DefaultTitle_Series();
1608  QString MS6_DefaultTitle_Axis_NoChanelSuffix(size_t i_axis);
1609  QString MS6_DefaultTitle_Axis(size_t i_axis);
1610 
1611  void MS6_Update_Results();
1612  void MS6_Update_Result_HistSimple();
1613  void MS6_Update_Result_PoolStatLine_Single();
1614  void MS6_Update_Result_PoolStatLine_DualWithError();
1615  void MS6_Update_Result_Scatter_2D();
1616  void MS6_Update_Result_Heatmap_2D();
1617  void MS6_Update_Result_Heatmap_3D();
1618  void MS6_Update_Result_DataTable_3Axis();
1619  void MS6_Update_Result_MosaicData();
1620  void MS6_Update_Result_NucLifeImg();
1621 
1622  bool MS6_Save_Result_Current();
1623  bool MS6_Save_NucLifes();
1624  bool MS6_Save_StatisticAnalysis();
1625 
1626  void on_pushButton_MS6_LoadData_clicked();
1627 
1628  void on_checkBox_MS6_ResType_Param_PoolStatLine_AutoRange_clicked(bool checked);
1629  void on_checkBox_MS6_ResType_Params_ScatterHeatmap_ManuelRange_x_clicked(bool checked);
1630  void on_checkBox_MS6_ResType_Params_ScatterHeatmap_ManuelRange_y_clicked(bool checked);
1631 
1632  void on_spinBox_MS6_MarginToBorder_valueChanged(int arg1);
1633  void on_doubleSpinBox_MS6_Scale_px2um_valueChanged(double arg1);
1634  void on_comboBox_MS6_ResultTypes_currentIndexChanged(int index);
1635 
1636  void on_spinBox_MS6_ResType_Params_MosaicData_T_valueChanged(int arg1);
1637 
1638  void on_spinBox_MS6_ResType_Params_NucLifeImg_NucLife_valueChanged(int arg1);
1639 
1640  void on_pushButton_MS6_SaveResult_clicked();
1641  void on_pushButton_MS6_SaveAnalysis_clicked();
1642  void on_pushButton_MS6_SaveNucLifes_clicked();
1643 
1644 
1645 
1646 
1647 
1648  void on_checkBox_S6_StyleAxis_CustomRange_X_clicked(bool checked);
1649 
1650  void on_checkBox_S6_StyleAxis_CustomRange_Y_clicked(bool checked);
1651 
1652  void on_checkBox_S6_StyleAxis_CustomRange_Z_clicked(bool checked);
1653 
1654  void on_checkBox_S6_StyleAxis_CustomTitle_X_clicked(bool checked);
1655 
1656  void on_checkBox_S6_StyleAxis_CustomTitle_Y_clicked(bool checked);
1657 
1658  void on_checkBox_S6_StyleAxis_CustomTitle_Z_clicked(bool checked);
1659 
1660  void on_checkBox_S6_SytleGeneral_CustomTitle_clicked(bool checked);
1661 
1662  void on_checkBox_S6_SytleGeneral_CustomSeries_clicked(bool checked);
1663 
1664 private:
1665 
1666  //Data
1667  D_Bio_NucleusPedigree MS6_NucPedigree_Results;
1668 
1669  //channels
1670  QStringList MS6_QSL_Channels_Values;
1671  QStringList MS6_QSL_Channels_Foci;
1672 
1673  //Dirs
1674  QDir DIR_MS6_Load_Mosaics;
1675  QDir DIR_MS6_Load_NucleiData;
1676  QDir DIR_MS6_Load_NucleiLifes;
1677  QDir DIR_MS6_Out_SaveAnalysisMaster;
1678 
1679  //mosaics
1680  enum MS6_MOSAIC_CHANNELS {
1681  MS6_MOSAIC_CH_RFP,
1682  MS6_MOSAIC_CH_GFP,
1683  MS6_MOSAIC_CH_DIC,
1684  MS6_MOSAIC_CH_NUMBER_OF
1685  };
1686  const QStringList QSL_MS6_MosaicChannels = {
1687  "RFP",
1688  "GFP",
1689  "DIC"
1690  };
1691  vector<vector<Mat>> vv_MS6_Mosaics_CT;
1692 
1693  //ui elements for axis control
1694  const size_t MS6_ResAxis_Count = 3;
1695  vector<QLabel*> MS6_vL_ResAxis_Description;
1696  vector<QComboBox*> MS6_vCB_ResAxis_Level_Foc;
1697  vector<QComboBox*> MS6_vCB_ResAxis_Level_NucBlob;
1698  vector<QComboBox*> MS6_vCB_ResAxis_Level_NucLife;
1699  vector<QComboBox*> MS6_vCB_ResAxis_Attrib_Foc;
1700  vector<QComboBox*> MS6_vCB_ResAxis_Attrib_NucBlob;
1701  vector<QComboBox*> MS6_vCB_ResAxis_Attrib_NucLife;
1702  vector<QComboBox*> MS6_vCB_ResAxis_Stat_low;
1703  vector<QComboBox*> MS6_vCB_ResAxis_Stat_high;
1704  vector<QComboBox*> MS6_vCB_ResAxis_FocChannel;
1705  vector<QComboBox*> MS6_vCB_ResAxis_AttribChannel_Val;
1706  vector<QComboBox*> MS6_vCB_ResAxis_AttribChannel_Foc;
1707  vector<QStackedWidget*> MS6_cSW_ResAxis_Level;
1708  vector<QStackedWidget*> MS6_cSW_ResAxis_Attrib;
1709  vector<QStackedWidget*> MS6_cSW_ResAxis_Stat_low;
1710  vector<QStackedWidget*> MS6_cSW_ResAxis_Stat_high;
1711  vector<QStackedWidget*> MS6_cSW_ResAxis_FocChannel;
1712  vector<QStackedWidget*> MS6_cSW_ResAxis_AttribChannel;
1713 
1714  //viewer elements
1715  QChartView* MS6_pChartView_Plot_2D;
1716  D_Viewer_Plot_3D MS6_Viewer_Plot_3D;
1717  D_Viewer MS6_Viewer_Img_2D;
1718  D_Viewer_3D MS6_Viewer_Img_3D;
1719  D_Table MS6_Viewer_Table;
1720  Mat MS6_ResultImgShow;
1721 
1722  //States
1723  bool MS6_state_ui_init = false;
1724  bool MS6_state_loaded_all = false;
1725  bool MS6_state_loaded_dirs = false;
1726  bool MS6_state_loaded_mosaics = false;
1727  bool MS6_state_loaded_nuc_data = false;
1728  bool MS6_state_loaded_nuc_lifes = false;
1729 
1730 
1731  enum MS6_RES_VIEW_TYPE {
1732  MS6_RES_VIEW_TYPE_PLOT_2D,
1733  MS6_RES_VIEW_TYPE_PLOT_3D,
1734  MS6_RES_VIEW_TYPE_IMAGE_2D,
1735  MS6_RES_VIEW_TYPE_IMAGE_3D,
1736  MS6_RES_VIEW_TYPE_TABLE,
1737  MS6_RES_VIEW_TYPE_ERROR,
1738  MS6_RES_VIEW_TYPE_NUMBER_OF
1739  };
1740 
1741 
1742  enum MS6_RESULT_TYPES {
1743  MS6_RES_TYP_HIST_SIMPLE,
1744  MS6_RES_TYP_POOL_STAT_LINE_SINGLE,
1745  MS6_RES_TYP_POOL_STAT_LINE_DUAL_WITH_ERROR,
1746  MS6_RES_TYP_SCATTER_2D_SIMPLE,
1747  MS6_RES_TYP_SCATTER_HEATMAP_2D,
1748  MS6_RES_TYP_SCATTER_HEATMAP_3D,
1749  MS6_RES_TYP_DATA_TABLE_3D,
1750  MS6_RES_TYP_MOSAIC_DATA,
1751  MS6_RES_TYP_NUC_LIFE_IMG,
1752  MS6_RES_TYP_NUMBER_OF
1753  };
1754  const QStringList QSL_MS6_ResultTypes = {
1755  "Histogram simple",
1756  "Pooled statistic line single",
1757  "Pooled statistic line dual with error",
1758  "Scatter 2D simple",
1759  "Scatter 2D heatmap",
1760  "Scatter 3D heatmap",
1761  "Data table 3 attributes",
1762  "Mosaic with foci counts",
1763  "Nucleus life image"
1764  };
1765 
1766 
1767  enum MS6_RES_AXIS_MODE {
1768  MS6_RES_AXIS_MODE_NONE,
1769  MS6_RES_AXIS_MODE_NUCLIFE,
1770  MS6_RES_AXIS_MODE_NUCBLOB,
1771  MS6_RES_AXIS_MODE_FOC,
1772  MS6_RES_AXIS_MODE_NUMBER_OF
1773  };
1774  const QStringList QSL_MS6_ResAxisMode {
1775  "None",
1776  "Nuc Life",
1777  "Nuc Blob",
1778  "Foc"
1779  };
1780 
1781 
1782  enum MS6_RES_AXIS_STAT {
1783  MS6_RES_AXIS_STAT_OFF,
1784  MS6_RES_AXIS_STAT_ON,
1785  MS6_RES_AXIS_STAT_NUMBER_OF
1786  };
1787  const QStringList QSL_MS6_ResAxisStat = {
1788  "on",
1789  "off"
1790  };
1791 
1792 
1793  enum MS6_RES_AXIS_CHANNEL_FOC {
1794  MS6_RES_AXIS_CHANNEL_FOC_OFF,
1795  MS6_RES_AXIS_CHANNEL_FOC_ON,
1796  MS6_RES_AXIS_CHANNEL_FOC_NUMBER_OF
1797  };
1798  const QStringList QSL_MS6_ResAxisChannel_Foc = {
1799  "off",
1800  "on"
1801  };
1802 
1803  enum MS6_RES_AXIS_CHANNEL_ATTRIB {
1804  MS6_RES_AXIS_CHANNEL_ATTRIB_OFF,
1805  MS6_RES_AXIS_CHANNEL_ATTRIB_ON_VAL,
1806  MS6_RES_AXIS_CHANNEL_ATTRIB_ON_FOC,
1807  MS6_RES_AXIS_CHANNEL_ATTRIB_NUMBER_OF
1808  };
1809  const QStringList QSL_MS6_ResAxisChannel_Attrib = {
1810  "off",
1811  "value",
1812  "foci"
1813  };
1814 
1815 
1816  //attrib lvl
1817  enum MS6_RES_AXIS_ATTRIB {
1818  MS6_RES_AXIS_ATTRIB_EMPTY,
1819  MS6_RES_AXIS_ATTRIB_NUCLIFE,
1820  MS6_RES_AXIS_ATTRIB_NUCBLOB,
1821  MS6_RES_AXIS_ATTRIB_FOC,
1822  MS6_RES_AXIS_ATTRIB_NUMBER_OF
1823  };
1824  const QStringList QSL_MS6_ResAttribLevel = {
1825  "None",
1826  "Nuc life",
1827  "Nuc blob",
1828  "Foc"
1829  };
1830 
1831 };
1832 
1833 #endif // D_MAKRO_MEGAFOCI_H
D_Bio_NucleusPedigree::match_save_results
bool match_save_results(QString QS_path)
Definition: d_bio_nucleuspedigree.cpp:2624
Mat
cv::Mat Mat
Definition: d_opencv_typedefs.h:28
QSL_Errors
const QStringList QSL_Errors
Definition: d_enum.h:183
D_Bio_NucleusLife::attribute_is_focus_channel_dependent
static bool attribute_is_focus_channel_dependent(size_t i_attrib)
Definition: d_bio_nucleuslife.cpp:386
D_Bio_NucleusPedigree::set_earliest_mitoses_allowed
void set_earliest_mitoses_allowed(size_t t_earliest)
Definition: d_bio_nucleuspedigree.h:110
D_Bio_NucleusPedigree::set_scale_T2h
void set_scale_T2h(double scale)
Definition: d_bio_nucleuspedigree.h:104
D_Bio_NucleusBlob::matching_excluded_life
bool matching_excluded_life()
Definition: d_bio_nucleusblob.cpp:1367
D_VisDat_Obj::info
QString info()
Definition: d_visdat_obj.cpp:157
ER_okay
@ ER_okay
Definition: d_enum.h:133
c_MARKER_SYMBOL_DOT
@ c_MARKER_SYMBOL_DOT
Definition: d_enum.h:2036
D_Bio_NucleusImage::get_foci_count
size_t get_foci_count(size_t foci_channel)
Definition: d_bio_nucleusimage.h:84
D_Img_Proc::Crop_Rect_Abs
static int Crop_Rect_Abs(Mat *pMA_Out, Mat *pMA_In, int x, int y, int width, int height)
Definition: d_img_proc.cpp:5514
D_Viewer::Update_View
void Update_View()
D_Viewer::Update_View Starts the workflow to show an image.
Definition: d_viewer.cpp:2096
D_Img_Proc::Draw_Line
static int Draw_Line(Mat *pMA_Target, unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2, unsigned int thickness=1, double value=255)
Definition: d_img_proc.cpp:17134
D_Bio_NucleusPedigree::calc_NucLifes
bool calc_NucLifes()
Definition: d_bio_nucleuspedigree.cpp:1162
D_MAKRO_MegaFoci
Definition: d_makro_megafoci.h:76
VAL_STAT_STD
@ VAL_STAT_STD
Definition: d_bio_enum.h:79
D_Bio_NucleusPedigree::match_time_go1
void match_time_go1(size_t t)
Definition: d_bio_nucleuspedigree.cpp:2596
QS_DateTimeFormat_YearToSec
const QString QS_DateTimeFormat_YearToSec
Definition: d_enum.h:2517
D_VisDat_Proc::Dim_Deserialise
static int Dim_Deserialise(D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In, int dim_from=c_DIM_P, int dim_to=c_DIM_P, int spacing=1)
Definition: d_visdat_proc.cpp:3915
D_MAKRO_MegaFoci::~D_MAKRO_MegaFoci
~D_MAKRO_MegaFoci()
Definition: d_makro_megafoci.cpp:144
D_Math::Distance
static double Distance(Point pt1, Point pt2)
Definition: d_math.cpp:1511
D_Math::Function_2D_to_1D
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
D_VisDat_Proc::Scale_ToSize
static int Scale_ToSize(D_VisDat_Slicing slice, D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In, int size_dim_0, int size_dim_1)
Definition: d_visdat_proc.cpp:4568
QS_Fun_Happy
const QString QS_Fun_Happy
Definition: d_enum.h:2524
D_Img_Proc::Draw_Dot
static int Draw_Dot(Mat *pMA_Target, int x, int y, int d, uchar val)
Definition: d_img_proc.cpp:17060
D_MAKRO_MegaFoci::closeEvent
void closeEvent(QCloseEvent *event)
Definition: d_makro_megafoci.cpp:149
D_VisDat_Proc::Math_2img_Maximum
static int Math_2img_Maximum(D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In0, D_VisDat_Obj *pVD_In1)
Definition: d_visdat_proc.cpp:5917
D_QS_Version
const QString D_QS_Version
Definition: d_enum.h:18
c_DIM_X
@ c_DIM_X
Definition: d_enum.h:235
D_VisDat_Dim::size_T
int size_T()
Definition: d_visdat_dim.h:62
D_Viewer_3D::Save
int Save(QString QS_Save)
Definition: d_viewer_3d.cpp:360
D_VisDat_Proc::ValueStat_Select
static int ValueStat_Select(D_VisDat_Slicing slice, D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_InLabel, D_VisDat_Obj *pVD_InValue, int stat, double thresh_min, double thresh_max, int connectivity=8)
Definition: d_visdat_proc.cpp:6736
D_Bio_NucleusPedigree::set_time_irradiation
void set_time_irradiation(double t_irr)
Definition: d_bio_nucleuspedigree.cpp:39
SCORE_MEAN_CH2
@ SCORE_MEAN_CH2
Definition: d_bio_enum.h:113
D_VisDat_Proc::Filter_Median_Circular
static int Filter_Median_Circular(D_VisDat_Slicing slice, D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In, double radius)
Definition: d_visdat_proc.cpp:5184
D_Bio_NucleusPedigree::match_time_go2
void match_time_go2(size_t t)
Definition: d_bio_nucleuspedigree.cpp:2603
c_DIM_Z
@ c_DIM_Z
Definition: d_enum.h:237
D_VisDat_Proc::Insert_atPos
static int Insert_atPos(D_VisDat_Obj *pVD_Target, D_VisDat_Obj *pVD_Source, vector< int > vOffset)
Definition: d_visdat_proc.cpp:2789
c_STAT_SEM_ABS_TOTAL
@ c_STAT_SEM_ABS_TOTAL
Definition: d_enum.h:789
D_Bio_NucleusPedigree::set_attrib_filter_ui
bool set_attrib_filter_ui(QGroupBox *box_foci, QGroupBox *box_nucblobs, QGroupBox *box_nuclifes)
Definition: d_bio_nucleuspedigree.cpp:1080
DIST_L2
const int DIST_L2
Definition: d_opencv_typedefs.h:114
SCORE_MEAN_CH0
@ SCORE_MEAN_CH0
Definition: d_bio_enum.h:111
D_Viewer::ClickRecord_Start
void ClickRecord_Start()
Definition: d_viewer.cpp:2431
D_Bio_NucleusPedigree::get_pNuclei_FromNucLifes
vector< D_Bio_NucleusBlob * > get_pNuclei_FromNucLifes(bool filtered_only)
Definition: d_bio_nucleuspedigree.cpp:380
D_Bio_Focus::attribute_is_focus_channel_dependent
static bool attribute_is_focus_channel_dependent(size_t i_attrib)
Definition: d_bio_focus.cpp:125
D_Storage::dir_M_MegaFoci_Results
QDir * dir_M_MegaFoci_Results()
Definition: d_storage.h:91
c_DIM_T
@ c_DIM_T
Definition: d_enum.h:238
D_Viewer::Set_VisTrafo_ActiveBool
void Set_VisTrafo_ActiveBool(bool active=true)
Definition: d_viewer.h:169
SCORE_STD_CH0
@ SCORE_STD_CH0
Definition: d_bio_enum.h:114
d_viewer.h
d_plot.h
D_Bio_NucleusPedigree::size_T
size_t size_T()
Definition: d_bio_nucleuspedigree.h:63
D_Img_Proc::Draw_Dots
static int Draw_Dots(Mat *pMA_Target, vector< Point2f > vCenters, vector< double > vDiameters, uchar val)
Definition: d_img_proc.cpp:17076
D_VisDat_Proc::Create_VD_SinglePaged
static int Create_VD_SinglePaged(D_VisDat_Obj *pVD_New, QString QS_Path, int DimPage=c_DIM_P, int DimImgX=c_DIM_X, int DimImgY=c_DIM_Y)
Definition: d_visdat_proc.cpp:1485
D_Img_Proc::Draw_Contours
static int Draw_Contours(Mat *pMA_Target, vector< vector< Point >> vContours, int line_thickness, double value)
D_Img_Proc::Draw_Contours draws a list of constours to an image.
Definition: d_img_proc.cpp:19134
D_Bio_NucleusBlob::time_index
size_t time_index()
Definition: d_bio_nucleusblob.h:126
D_VisDat_Proc::Math_2img_Function
static int Math_2img_Function(D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In0, D_VisDat_Obj *pVD_In1, function< double(double, double)> function_img1_img2)
Definition: d_visdat_proc.cpp:5938
SCORE_MEAN_CH1
@ SCORE_MEAN_CH1
Definition: d_bio_enum.h:112
D_Img_Proc::Load_From_Path
static int Load_From_Path(Mat *pMA_Out, QFileInfo FI_path)
Definition: d_img_proc.cpp:16
D_Bio_NucleusPedigree::set_FrameBorder_XY
void set_FrameBorder_XY(Rect FrameBorder)
Definition: d_bio_nucleuspedigree.cpp:1069
D_Viewer
The D_Viewer class Display images (Mat) in QGraphicsView in the user interface.
Definition: d_viewer.h:58
D_Bio_NucleusBlob::matching_Child2
D_Bio_NucleusBlob * matching_Child2()
Definition: d_bio_nucleusblob.h:179
D_Bio_Focus::area
double area()
Definition: d_bio_focus.h:72
D_Bio_NucleusPedigree::setPedigreeViewer_Plot3D
int setPedigreeViewer_Plot3D(D_Viewer_Plot_3D *viewer)
Definition: d_bio_nucleuspedigree.cpp:621
D_Storage
The D_Storage class Used for storing data. There is only one instance in D_MainWindow .
Definition: d_storage.h:49
D_Bio_NucleusPedigree::event_find
bool event_find(QString *QS_FoundEventType, int *t_found, int *y_found, int *x_found, vector< int > vType_Search, vector< int > vType_Param, int t_min, int y_min, int x_greater_than, bool filter_use_t_after, int filter_param_t_after, bool filter_use_t_before, int filter_param_t_before, bool filter_use_range, int filter_param_x_min, int filter_param_x_max, int filter_param_y_min, int filter_param_y_max, bool filter_no_excluded)
Definition: d_bio_nucleuspedigree.cpp:2714
D_Bio_NucleusPedigree::get_pNucleusLife
D_Bio_NucleusLife * get_pNucleusLife(size_t index, bool filtered)
Definition: d_bio_nucleuspedigree.cpp:427
ER_size_missmatch
@ ER_size_missmatch
Definition: d_enum.h:141
D_Bio_NucleusPedigree::EVENT_TYPE_SHORT_LIFE_LOOSE_END
@ EVENT_TYPE_SHORT_LIFE_LOOSE_END
Definition: d_bio_nucleuspedigree.h:270
D_Bio_NucleusImage::get_focus
D_Bio_Focus get_focus(size_t ch, size_t foc)
Definition: d_bio_nucleusimage.h:94
Rect
cv::Rect Rect
Definition: d_opencv_typedefs.h:65
D_Plot::Plot_Line_PoolStat_Single
static int Plot_Line_PoolStat_Single(QChartView *pChartView, vector< double > vData_X_Pool, vector< double > vData_Y_Stat, double x_min, double x_max, size_t x_classes, size_t y_stat, QString name_title, QString qs_name_series, QString name_x, QString name_y, bool auto_range, bool man_axis_style_x=false, bool man_axis_style_y=false, double man_min_x=0, double man_max_x=1, double man_min_y=0, double man_max_y=1, int ticks_x=AXE_TICK_COUNT_MAJOR_DEFAULT, int ticks_y=AXE_TICK_COUNT_MAJOR_DEFAULT)
Definition: d_plot.cpp:3018
c_DIM_Y
@ c_DIM_Y
Definition: d_enum.h:236
SCORE_STD_CH1
@ SCORE_STD_CH1
Definition: d_bio_enum.h:115
ATTRIB_NUCLIFE_START
@ ATTRIB_NUCLIFE_START
Definition: d_bio_enum.h:290
c_COMPARE_EQUAL
@ c_COMPARE_EQUAL
Definition: d_enum.h:1235
D_Img_Proc::Draw_MarkerSymbol
static int Draw_MarkerSymbol(Mat *pMA_Target, int x1, int y1, int x2, int y2, int symbol_id, uchar r, uchar g, uchar b, double scale=1)
Definition: d_img_proc.cpp:18352
D_Viewer::MousePos_Y
int MousePos_Y()
Definition: d_viewer.h:198
D_Bio_NucleusPedigree::initMatching
bool initMatching(vector< double > score_weights, vector< double > score_maxima, double shift_limit, double max_rel_area_inc_to, double max_rel_area_dec_to, double max_age, double thres_tm1_go1, double thres_tm2_go1, double thres_tm3_go1, double thres_tm1_go2, double thres_tm2_go2, double thres_tm3_go2, double mitosis_mult_go1, double mitosis_mult_go2)
Definition: d_bio_nucleuspedigree.cpp:524
ATTRIB_NUC_AREA_UM
@ ATTRIB_NUC_AREA_UM
Definition: d_bio_enum.h:215
D_MAKRO_MegaFoci::resizeEvent
void resizeEvent(QResizeEvent *event)
Definition: d_makro_megafoci.cpp:164
D_Viewer_Plot_3D::save
bool save(QString QS_Save)
Definition: d_viewer_plot_3d.cpp:83
D_Viewer::Update_Image
void Update_Image(Mat *MA_new)
D_Viewer::Update_Image Set and show image.
Definition: d_viewer.cpp:2079
D_FinishTimePrognosis
The D_FinishTimePrognosis class measures the time of processing steps and prognoses the finish time.
Definition: d_finishtimeprognosis.h:30
c_MARKER_SYMBOL_3DOTS
@ c_MARKER_SYMBOL_3DOTS
Definition: d_enum.h:2042
D_Storage::set_dir_M_MegaFoci_Results
void set_dir_M_MegaFoci_Results(QString path)
Definition: d_storage.h:119
D_Bio_NucleusLife::pNuc_member
D_Bio_NucleusBlob * pNuc_member(size_t i)
Definition: d_bio_nucleuslife.h:102
c_AXE_TRANS_LIN
@ c_AXE_TRANS_LIN
Definition: d_enum.h:2157
QSL_Attrib_Nuc
const QStringList QSL_Attrib_Nuc
Definition: d_bio_enum.h:246
d_table.h
D_Bio_NucleusBlob::matching_AgeToGo
size_t matching_AgeToGo()
Definition: d_bio_nucleusblob.h:199
ER_file_not_exist
@ ER_file_not_exist
Definition: d_enum.h:161
D_VisDat_Proc::Channels_Merge
static int Channels_Merge(D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In0, D_VisDat_Obj *pVD_In1, D_VisDat_Obj *pVD_In2, D_VisDat_Obj *pVD_In3, int channels_count, bool channels_use[4])
D_VisDat_Proc::Read_2D_Plane
static int Read_2D_Plane(Mat *pMA_Out, D_VisDat_Obj *pVD_In, D_VisDat_Slice_2D InPlane)
Definition: d_visdat_proc.cpp:2946
D_Viewer_3D
Definition: d_viewer_3d.h:85
PI
const double PI
Definition: d_enum.h:2534
D_Img_Proc::Draw_Text
static int Draw_Text(QImage *pQI_Target, QString text_tl, QString text_tr, QString text_bl, QString text_br, unsigned int size, QColor color)
Definition: d_img_proc.cpp:18588
D_Bio_NucleusImage::get_Contours_append
int get_Contours_append(vector< vector< Point >> *pvScaledContours, double scale)
Definition: d_bio_nucleusimage.cpp:783
D_Viewer::Set_VisTrafo_SpreadInMax
void Set_VisTrafo_SpreadInMax(double spread_max=255)
Definition: d_viewer.h:172
D_Table::Save_Table
QString Save_Table()
Definition: d_table.cpp:186
DATA_LEVEL_NUCBLOB_ATTRIB
@ DATA_LEVEL_NUCBLOB_ATTRIB
Definition: d_bio_enum.h:385
D_Bio_NucleusImage::get_Centroids_append
int get_Centroids_append(vector< Point2f > *pvScaledCentroids, double scale)
Definition: d_bio_nucleusimage.cpp:840
D_Contour::contour
vector< Point > contour()
Definition: d_contour.h:49
D_Bio_NucleusBlob::contour
vector< Point > contour()
Definition: d_bio_nucleusblob.h:112
D_Storage::set_dir_M_MegaFoci_Images
void set_dir_M_MegaFoci_Images(QString path)
Definition: d_storage.h:118
D_Img_Proc::Draw_ContourCrop
static int Draw_ContourCrop(Mat *pMA_Out, Mat *pMA_In_R, Mat *pMA_In_G, Mat *pMA_In_B, vector< Point > vContour, int line_thickness, double R, double G, double B, bool draw_contour=true)
Definition: d_img_proc.cpp:19214
D_Bio_Focus
Definition: d_bio_focus.h:48
DATA_LEVEL_NUCLIFE_STAT_NUCBLOB
@ DATA_LEVEL_NUCLIFE_STAT_NUCBLOB
Definition: d_bio_enum.h:373
c_VIS_TRAFO_RANGE_DYNAMIC
@ c_VIS_TRAFO_RANGE_DYNAMIC
Definition: d_enum.h:723
D_Viewer::Set_Transformation_Mode
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
D_Bio_NucleusPedigree::setPedigreeViewer_Volumetric
int setPedigreeViewer_Volumetric(D_Viewer_3D *viewer)
Definition: d_bio_nucleuspedigree.cpp:603
D_VisDat_Proc::Math_2img_BitwiseAnd
static int Math_2img_BitwiseAnd(D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In0, D_VisDat_Obj *pVD_In1)
Definition: d_visdat_proc.cpp:5877
DATAPOINT_LEVEL_FOC
@ DATAPOINT_LEVEL_FOC
Definition: d_bio_enum.h:361
D_Bio_NucleusPedigree::mosaik_index_non_empty_min_y
size_t mosaik_index_non_empty_min_y()
Definition: d_bio_nucleuspedigree.cpp:112
D_Bio_NucleusBlob::matching_foundChild2
bool matching_foundChild2()
Definition: d_bio_nucleusblob.h:185
D_Error_Handler::set_FileStream_path_csv
void set_FileStream_path_csv(QString path)
D_Error_Handler::set_FileStream_path_csv set the file for error streaming and activates error streami...
Definition: d_error_handler.cpp:103
D_VisDat_Proc::Math_2img_BitwiseOr
static int Math_2img_BitwiseOr(D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In0, D_VisDat_Obj *pVD_In1)
Definition: d_visdat_proc.cpp:5887
D_Bio_NucleusPedigree::mosaik_index_non_empty_min_x
size_t mosaik_index_non_empty_min_x()
Definition: d_bio_nucleuspedigree.cpp:84
D_VisDat_Dim
The D_VisDat_Dim class Represents a 6D volume.
Definition: d_visdat_dim.h:49
D_VisDat_Dim::set_size_P
void set_size_P(int P)
Definition: d_visdat_dim.h:95
D_Viewer::ClickRecord_GetPoints_Polygon
vector< Point > ClickRecord_GetPoints_Polygon()
Definition: d_viewer.cpp:2586
D_Bio_NucleusBlob::matching_Child1
D_Bio_NucleusBlob * matching_Child1()
Definition: d_bio_nucleusblob.h:178
D_Bio_NucleusBlob::matching_set_excluded
void matching_set_excluded(bool exclude)
Definition: d_bio_nucleusblob.h:158
D_VisDat_Proc::Write_2D_Plane
static int Write_2D_Plane(D_VisDat_Obj *pVD_Out, Mat *pMA_In, D_VisDat_Slice_2D OutPlane)
Definition: d_visdat_proc.cpp:2303
D_Table::set_TW
void set_TW(QTableWidget *TW)
Definition: d_table.cpp:16
c_DIM_S
@ c_DIM_S
Definition: d_enum.h:239
D_Error_Handler::ERR
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
ATTRIB_FOC_AREA_UM
@ ATTRIB_FOC_AREA_UM
Definition: d_bio_enum.h:160
QSL_DataLevel_NucLife
const QStringList QSL_DataLevel_NucLife
Definition: d_bio_enum.h:377
D_Storage::dir_M_dsDNA
QDir * dir_M_dsDNA()
Definition: d_storage.h:70
c_STAT_MAXIMUM
@ c_STAT_MAXIMUM
Definition: d_enum.h:774
QS_Fun_Cat
const QString QS_Fun_Cat
Definition: d_enum.h:2525
D_QS_Release
const QString D_QS_Release
Definition: d_enum.h:19
D_Img_Proc::Draw_Contour
static int Draw_Contour(Mat *pMA_Target, vector< Point > vContour, int line_thickness, double value)
Definition: d_img_proc.cpp:19175
ATTRIB_NUCLIFE_EXCLUDED
@ ATTRIB_NUCLIFE_EXCLUDED
Definition: d_bio_enum.h:313
D_Bio_NucleusPedigree::EVENT_TYPE_LARGE_DIST_BETWEEN_NUC
@ EVENT_TYPE_LARGE_DIST_BETWEEN_NUC
Definition: d_bio_nucleuspedigree.h:265
D_VisDat_Proc::Hysteresis
static int Hysteresis(D_VisDat_Slicing slice, D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In_Indicator, D_VisDat_Obj *pVD_In_Hysteresis, bool labeling=false)
Definition: d_visdat_proc.cpp:5724
DATA_LEVEL_NUCLIFE_STAT_STAT_FOC
@ DATA_LEVEL_NUCLIFE_STAT_STAT_FOC
Definition: d_bio_enum.h:374
DATAPOINT_LEVEL_NUCLIFE
@ DATAPOINT_LEVEL_NUCLIFE
Definition: d_bio_enum.h:359
c_STAT_QUANTIL_95
@ c_STAT_QUANTIL_95
Definition: d_enum.h:773
D_Bio_NucleusImage::get_FociCount_append
int get_FociCount_append(QStringList *pQSL_FociCounts)
Definition: d_bio_nucleusimage.cpp:801
D_VisDat_Proc::Transformation_Watershed_Auto
static int Transformation_Watershed_Auto(D_VisDat_Slicing slice, D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In, D_VisDat_Obj *pVD_Marker, bool include_not_seeded, bool conv_8bit, bool exclude_border)
Definition: d_visdat_proc.cpp:6490
D_Bio_NucleusPedigree::set_channels
void set_channels(QStringList channels_foc, QStringList channels_val)
Definition: d_bio_nucleuspedigree.h:111
D_VisDat_Proc::Filter_Gauss
static int Filter_Gauss(D_VisDat_Slicing slice, D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In, int size_x, int size_y, int border, double sigma_x, double sigma_y)
Definition: d_visdat_proc.cpp:5073
D_Bio_NucleusBlob::get_FociCount
size_t get_FociCount(size_t channel)
Definition: d_bio_nucleusblob.h:69
D_Bio_NucleusBlob::attribute_is_focus_channel_dependent
static bool attribute_is_focus_channel_dependent(size_t i_attrib)
Definition: d_bio_nucleusblob.cpp:244
D_VisDat_Obj
The D_VisDat_Obj class Represents a 6D image.
Definition: d_visdat_obj.h:51
QSL_VisTrafo_Crop
const QStringList QSL_VisTrafo_Crop
Definition: d_enum.h:691
SCORE_COMPACTNESS
@ SCORE_COMPACTNESS
Definition: d_bio_enum.h:110
D_Bio_NucleusImage::get_nuclei_count
size_t get_nuclei_count()
Definition: d_bio_nucleusimage.h:82
c_STAT_COUNT
@ c_STAT_COUNT
Definition: d_enum.h:734
D_VisDat_Proc::Math_2img_Addition
static int Math_2img_Addition(D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In0, D_VisDat_Obj *pVD_In1)
Definition: d_visdat_proc.cpp:5812
D_VisDat_Proc::Crop_Rect_Abs
static int Crop_Rect_Abs(D_VisDat_Slicing slice, D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In, int x, int y, int width, int height)
Definition: d_visdat_proc.cpp:4354
dir_M_MEGAFOCI_RES
@ dir_M_MEGAFOCI_RES
Definition: d_enum.h:96
ATTRIB_NUCLIFE_IN_RANGE_PERMANENT
@ ATTRIB_NUCLIFE_IN_RANGE_PERMANENT
Definition: d_bio_enum.h:309
VAL_STAT_SKEW
@ VAL_STAT_SKEW
Definition: d_bio_enum.h:80
D_VisDat_Proc::Create_VD_Single_Constant
static int Create_VD_Single_Constant(D_VisDat_Obj *pVD_New, D_VisDat_Dim dim_new, int type=CV_8UC1, double value=0)
Definition: d_visdat_proc.cpp:1403
D_Viewer::Set_VisTrafo_Divisor
void Set_VisTrafo_Divisor(double divisor=0)
Definition: d_viewer.h:174
c_MATH_2D_TO_1D_X_minus_Y
@ c_MATH_2D_TO_1D_X_minus_Y
Definition: d_enum.h:1035
ATTRIB_NUCLIFE_AGE
@ ATTRIB_NUCLIFE_AGE
Definition: d_bio_enum.h:289
d_makro_megafoci.h
Point
cv::Point Point
Definition: d_opencv_typedefs.h:35
SCORE_STD_CH2
@ SCORE_STD_CH2
Definition: d_bio_enum.h:116
D_Viewer::ClickRecord_GetPoints_Ellipse
vector< Point > ClickRecord_GetPoints_Ellipse(bool limit_by_img_size=true)
Definition: d_viewer.cpp:2547
D_Img_Proc::Draw_Rect
static int Draw_Rect(Mat *pMA_Target, unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2, unsigned int thickness=1, double val=255)
Definition: d_img_proc.cpp:17687
D_Bio_NucleusImage::load
int load(QString path, bool foci_are_part_of_nuc_files)
Definition: d_bio_nucleusimage.cpp:486
D_Bio_NucleusPedigree::set_attrib_filter_scaling
bool set_attrib_filter_scaling()
Definition: d_bio_nucleuspedigree.cpp:1128
D_Img_Proc::OverlayOverwrite
static int OverlayOverwrite(Mat *pMA_Out, Mat *pMA_In, Mat *pMA_Overlay, double intensity_overlay=1.0, double intensity_backgr=1.0)
Definition: d_img_proc.cpp:19556
D_Bio_NucleusImage::get_nuclei_contours
vector< vector< Point > > get_nuclei_contours(double scale=1, Point scaled_offset=Point(0, 0))
Definition: d_bio_nucleusimage.cpp:866
D_Bio_NucleusBlob::matching_isConnectedTo
bool matching_isConnectedTo(D_Bio_NucleusBlob *nuc)
Definition: d_bio_nucleusblob.h:196
D_Bio_NucleusPedigree::EVENT_TYPE_EXCLUDED
@ EVENT_TYPE_EXCLUDED
Definition: d_bio_nucleuspedigree.h:267
c_GEO_ELLIPSE_FIT
@ c_GEO_ELLIPSE_FIT
Definition: d_enum.h:2063
D_Contour
The D_Contour class represents a contour of a 2D object and offers several methods for gaining inform...
Definition: d_contour.h:39
D_Bio_NucleusImage::get_foci_diameters
vector< double > get_foci_diameters(size_t channel, double scale=1)
Definition: d_bio_nucleusimage.cpp:938
D_MAKRO_MegaFoci::set_ClosingPossible
void set_ClosingPossible(bool closeable)
Definition: d_makro_megafoci.h:86
D_VisDat_Proc::OverlayOverwrite
static int OverlayOverwrite(D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_Background, D_VisDat_Obj *pVD_Overlay, double intensity_overlay, double intensity_backgr)
Definition: d_visdat_proc.cpp:6963
ATTRIB_NUC_FOCI_COUNT_ALL
@ ATTRIB_NUC_FOCI_COUNT_ALL
Definition: d_bio_enum.h:230
D_Img_Proc::Draw_ContourText
static int Draw_ContourText(Mat *pMA_Target, vector< vector< Point >> vContours, QStringList QSL_Texts, vector< Point2f > vTextOrigins, int line_thickness, int text_thickness, double text_scale, double value)
D_Img_Proc::Draw_ContourText draw contours in an image with added text at contours centers.
Definition: d_img_proc.cpp:19332
D_Bio_NucleusImage::get_foci_centers
vector< Point2f > get_foci_centers(size_t channel, double scale=1, Point scaled_offset=Point(0, 0))
Definition: d_bio_nucleusimage.cpp:905
d_bio_nucleuspedigree.h
D_Img_Proc::Draw_Circle
static int Draw_Circle(Mat *pMA_Out, Mat *pMA_In, int x, int y, int r, int val=255, int thickness=1, bool filled=false)
Definition: d_img_proc.cpp:18255
ER_type_bad
@ ER_type_bad
Definition: d_enum.h:136
D_ImageRewardSystem::set_target_label
void set_target_label(QLabel *label)
Definition: d_imagerewardsystem.cpp:21
D_Bio_NucleusPedigree::nuclei_blob_count
size_t nuclei_blob_count(size_t t, size_t y, size_t x)
Definition: d_bio_nucleuspedigree.cpp:53
D_Bio_NucleusPedigree::EVENT_TYPE_SHORT_LIFE_BETWEEN_MITOSES
@ EVENT_TYPE_SHORT_LIFE_BETWEEN_MITOSES
Definition: d_bio_nucleuspedigree.h:271
D_Bio_NucleusPedigree::mosaik_index_non_empty_max_x
size_t mosaik_index_non_empty_max_x()
Definition: d_bio_nucleuspedigree.cpp:98
D_Table
The D_Table class Display tables in QTableWidget in the user interface.
Definition: d_table.h:42
D_Bio_NucleusImage
Definition: d_bio_nucleusimage.h:50
D_Bio_NucleusPedigree::set_scale_px2um
void set_scale_px2um(double scale)
Definition: d_bio_nucleuspedigree.h:103
D_Bio_NucleusLife::pNuc_member_byTime
D_Bio_NucleusBlob * pNuc_member_byTime(size_t t)
Definition: d_bio_nucleuslife.cpp:82
D_Bio_Focus::centroid
Point2f centroid()
Definition: d_bio_focus.h:71
D_Error_Handler
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_Bio_NucleusBlob
Definition: d_bio_nucleusblob.h:46
QS_Fun_Confused
const QString QS_Fun_Confused
Definition: d_enum.h:2521
D_Viewer::ClickRecord_Quit
void ClickRecord_Quit()
Definition: d_viewer.cpp:2521
QSL_DatapointLevel
const QStringList QSL_DatapointLevel
Definition: d_bio_enum.h:364
D_Bio_Focus::attribute_is_value_channel_dependent
static bool attribute_is_value_channel_dependent(size_t i_attrib)
Definition: d_bio_focus.cpp:107
D_VisDat_Proc::Transformation_Distance
static int Transformation_Distance(D_VisDat_Slicing slice, D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In, int metric, int precision, double spacing_x3d=1.0, double spacing_y3d=1.0, double spacing_z3d=1.0)
Definition: d_visdat_proc.cpp:6401
D_Img_Proc::MinMax_of_Mat
static int MinMax_of_Mat(Mat *pMA_In, double *min_ext, double *max_ext)
Definition: d_img_proc.cpp:2052
D_Bio_NucleusBlob::matching_Parent
D_Bio_NucleusBlob * matching_Parent()
Definition: d_bio_nucleusblob.h:181
ATTRIB_NUC_SHIFT_UM
@ ATTRIB_NUC_SHIFT_UM
Definition: d_bio_enum.h:219
D_Img_Proc::TypeIndex_of_Mat
static int TypeIndex_of_Mat(int channels, int depth)
Definition: d_img_proc.cpp:496
D_Table::set_data_d_2D_qsl_vd
void set_data_d_2D_qsl_vd(vector< vector< double >> vv_data, QStringList qsl_col_names, vector< double > v_row_names)
Definition: d_table.cpp:85
D_Error_Handler::set_Popup_active
void set_Popup_active(bool show_pop)
Definition: d_error_handler.h:44
D_Bio_NucleusPedigree::rect_RegularRange_px
Rect rect_RegularRange_px()
Definition: d_bio_nucleuspedigree.h:66
VAL_STAT_MEAN
@ VAL_STAT_MEAN
Definition: d_bio_enum.h:78
D_Bio_NucleusPedigree::EVENT_TYPE_MITOSIS
@ EVENT_TYPE_MITOSIS
Definition: d_bio_nucleuspedigree.h:266
D_VisDat_Proc::Threshold_Adaptive_Gauss
static int Threshold_Adaptive_Gauss(D_VisDat_Slicing slice, D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In, int size, double sigma, double offset, double scale=1)
Definition: d_visdat_proc.cpp:4931
D_VisDat_Proc::Geometric_Reduce
static int Geometric_Reduce(D_VisDat_Slicing slice, D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In, int geometric, int connectivity, int thickness, uchar value)
Definition: d_visdat_proc.cpp:6757
DIST_MASK_PRECISE
const int DIST_MASK_PRECISE
Definition: d_opencv_typedefs.h:122
D_Plot::Plot_Scatter_Heatmap
static int Plot_Scatter_Heatmap(QChartView *pChartView, vector< double > vData_X, double min_x, double max_x, bool auto_range_x, size_t classes_x, QString name_x, vector< double > vData_Y, double min_y, double max_y, bool auto_range_y, size_t classes_y, QString name_y, vector< double > vData_Z, size_t stat_z, QString name_z, QString name_title, bool man_axis_style_x=false, bool man_axis_style_y=false, double man_min_x=0, double man_max_x=1, double man_min_y=0, double man_max_y=1, int ticks_x=AXE_TICK_COUNT_MAJOR_DEFAULT, int ticks_y=AXE_TICK_COUNT_MAJOR_DEFAULT)
Definition: d_plot.cpp:2109
D_VisDat_Proc::Dim_Project
static int Dim_Project(D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In, int dim_project=c_DIM_X, int stat=c_STAT_MEAN_ARITMETIC, int out_type=CV_64FC1)
Definition: d_visdat_proc.cpp:3745
D_Viewer::Set_VisTrafo_Range
void Set_VisTrafo_Range(double range=127.5)
Definition: d_viewer.h:176
D_Img_Proc::Crop_Rect_Rel
static int Crop_Rect_Rel(Mat *pMA_Out, Mat *pMA_In, double x1_rel, double y1_rel, double x2_rel, double y2_rel)
Definition: d_img_proc.cpp:5467
Scalar
cv::Scalar Scalar
Definition: d_opencv_typedefs.h:30
D_Bio_NucleusPedigree::set_attrib_filter
bool set_attrib_filter(size_t filter_mode, size_t i_filt, bool is_active, size_t i_att, size_t i_comp, size_t i_ch, double thres_val)
Definition: d_bio_nucleuspedigree.cpp:1140
D_Bio_NucleusPedigree::match_load_matches
bool match_load_matches(QString QS_path_NucLifes)
Definition: d_bio_nucleuspedigree.cpp:2660
D_Viewer::ClickRecord_GetPoints
vector< Point > ClickRecord_GetPoints()
Definition: d_viewer.cpp:2536
D_Bio_NucleusImage::get_ChannelStat_append
int get_ChannelStat_append(QStringList *pQSL_Stat, size_t stat_index_bio_enum)
Definition: d_bio_nucleusimage.cpp:817
D_Bio_NucleusPedigree::event_counts
vector< size_t > event_counts(vector< int > vType_Param, int t_min, int y_min, int x_greater_than, bool filter_use_t_after, int filter_param_t_after, bool filter_use_t_before, int filter_param_t_before, bool filter_use_range, int filter_param_x_min, int filter_param_x_max, int filter_param_y_min, int filter_param_y_max, bool filter_no_excluded)
Definition: d_bio_nucleuspedigree.cpp:2959
D_Bio_NucleusLife::members_count
size_t members_count()
Definition: d_bio_nucleuslife.h:108
QSL_VisTrafo_Anchor
const QStringList QSL_VisTrafo_Anchor
Definition: d_enum.h:715
D_Viewer::Set_VisTrafo_Mode_Trafo
void Set_VisTrafo_Mode_Trafo(int mode=c_VIS_TRAFO_LINEAR)
Definition: d_viewer.h:178
D_Plot::Plot_Hist_WithStats
static int Plot_Hist_WithStats(QChartView *pChartView, vector< double > v_Data, size_t n_classes, QString name_title, QString name_x, bool uni=true, bool acc=false, size_t axe_tick_count=AXE_TICK_COUNT_MAJOR_DEFAULT)
Definition: d_plot.cpp:399
DATA_LEVEL_NUCBLOB_STAT_FOC
@ DATA_LEVEL_NUCBLOB_STAT_FOC
Definition: d_bio_enum.h:386
D_VisDat_Slice_2D
The D_VisDat_Slice_2D class Represents a 2D slice through a D_VisDat_Obj.
Definition: d_visdat_slice_2d.h:18
D_ImageRewardSystem::get_reward
bool get_reward()
Definition: d_imagerewardsystem.cpp:27
D_Bio_NucleusBlob::matching_excluded_this
bool matching_excluded_this()
Definition: d_bio_nucleusblob.h:159
D_Bio_NucleusBlob::centroid
Point2f centroid()
Definition: d_bio_nucleusblob.h:120
D_Storage::get_VD
D_VisDat_Obj get_VD(size_t pos)
Definition: d_storage.h:56
D_Bio_NucleusBlob::matching_RemoveChild
bool matching_RemoveChild(D_Bio_NucleusBlob *nuc_remove_child)
Definition: d_bio_nucleusblob.cpp:1333
D_Bio_NucleusBlob::matching_Source
D_Bio_NucleusBlob * matching_Source()
Definition: d_bio_nucleusblob.h:182
D_Error_Handler::set_FileStream_active
void set_FileStream_active(bool stream_to_file)
Definition: d_error_handler.h:45
D_VisDat_Proc::Threshold_Absolute
static int Threshold_Absolute(D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In, double thresh)
Definition: d_visdat_proc.cpp:4875
d_popup_listedit.h
D_Viewer::set_GV
void set_GV(QGraphicsView *GV_ui)
Definition: d_viewer.cpp:49
VAL_STAT_KURTOSIS
@ VAL_STAT_KURTOSIS
Definition: d_bio_enum.h:81
D_ImageRewardSystem
The D_ImageRewardSystem class shows a random generated image as a reward for the user for perfomring ...
Definition: d_imagerewardsystem.h:33
D_Bio_NucleusBlob::matching_SetAsParent
void matching_SetAsParent(D_Bio_NucleusBlob *nuc_set_parent, double score)
Definition: d_bio_nucleusblob.cpp:1316
D_VisDat_Slicing
The D_VisDat_Slicing class Describes how a D_VisDat_Obj shall be sliced.
Definition: d_visdat_slicing.h:50
D_Plot::Plot_Empty
static int Plot_Empty(QChartView *pChartView, QString QS_Text="No_Additional_Information")
Definition: d_plot.cpp:16
c_COMPARE_GREATER
@ c_COMPARE_GREATER
Definition: d_enum.h:1238
ATTRIB_FILTER_MODE_NUC_LIFE
@ ATTRIB_FILTER_MODE_NUC_LIFE
Definition: d_bio_enum.h:348
D_PopUp_RangeSelector
The D_PopUp_RangeSelector class popup to slect an abstract subvolume in a volume.
Definition: d_popup_rangeselector.h:42
SCORE_SHIFT
@ SCORE_SHIFT
Definition: d_bio_enum.h:107
D_Bio_NucleusImage::remove_nuclei_dulicates
void remove_nuclei_dulicates(vector< D_Bio_NucleusImage > vNucImgOther, double min_rel_intersection_for_remove=0.5)
Definition: d_bio_nucleusimage.cpp:1064
DATA_LEVEL_FOC_ATTRIB
@ DATA_LEVEL_FOC_ATTRIB
Definition: d_bio_enum.h:396
SCORE_CONVEXITY
@ SCORE_CONVEXITY
Definition: d_bio_enum.h:109
QSL_VisTrafo
const QStringList QSL_VisTrafo
Definition: d_enum.h:702
d_viewer_3d.h
D_Bio_NucleusPedigree::get_NucleusLifesCount
size_t get_NucleusLifesCount(bool filtered)
Definition: d_bio_nucleuspedigree.cpp:409
D_VisDat_Dim::set_size_S
void set_size_S(int S)
Definition: d_visdat_dim.h:94
QSL_Attrib_NucLife
const QStringList QSL_Attrib_NucLife
Definition: d_bio_enum.h:316
Ui
Definition: d_analysiswindow.h:58
D_Bio_NucleusBlob::matching_foundChild1
bool matching_foundChild1()
Definition: d_bio_nucleusblob.h:184
D_Bio_NucleusPedigree
Definition: d_bio_nucleuspedigree.h:53
D_Bio_NucleusPedigree::save_analysis
bool save_analysis(QString QS_SavePath)
Definition: d_bio_nucleuspedigree.cpp:1589
c_VIS_TRAFO_ANCHOR_DYNAMIC
@ c_VIS_TRAFO_ANCHOR_DYNAMIC
Definition: d_enum.h:709
DATA_LEVEL_NUCLIFE_ATTRIB
@ DATA_LEVEL_NUCLIFE_ATTRIB
Definition: d_bio_enum.h:372
d_popup_rangeselector.h
D_VisDat_Proc::MorphSimple_Circ_Opening
static int MorphSimple_Circ_Opening(D_VisDat_Slicing slice, D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In, int size)
Definition: d_visdat_proc.cpp:5647
c_MARKER_SYMBOL_CROSS
@ c_MARKER_SYMBOL_CROSS
Definition: d_enum.h:2040
D_VisDat_Proc::Math_2img_SubtractionAbsolute
static int Math_2img_SubtractionAbsolute(D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In0, D_VisDat_Obj *pVD_In1)
Definition: d_visdat_proc.cpp:5845
c_DIM_P
@ c_DIM_P
Definition: d_enum.h:240
D_Viewer_Plot_3D
Definition: d_viewer_plot_3d.h:69
d_storage.h
c_COL2MONO_GRAY
@ c_COL2MONO_GRAY
Definition: d_enum.h:651
D_VisDat_Proc::MorphSimple_Circ_Closing
static int MorphSimple_Circ_Closing(D_VisDat_Slicing slice, D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In, int size)
Definition: d_visdat_proc.cpp:5661
c_FEAT_CONVEX_AREA
@ c_FEAT_CONVEX_AREA
Definition: d_enum.h:1348
D_VisDat_Proc::Stitch_Border_rel_custom
static int Stitch_Border_rel_custom(D_VisDat_Slicing slice, D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In_Main, D_VisDat_Obj *pVD_In_R, D_VisDat_Obj *pVD_In_B, D_VisDat_Obj *pVD_In_BR, double border_R, double border_B, double overlap_R, double overlap_B)
Definition: d_visdat_proc.cpp:4259
D_Bio_NucleusPedigree::set_scale_edges
void set_scale_edges(double scale)
Definition: d_bio_nucleuspedigree.h:106
D_Plot::Plot_Scatter_2D_Single_Y
static int Plot_Scatter_2D_Single_Y(QChartView *pChartView, vector< double > v_X_Val, vector< double > v_Y_Val, QString name_title, QString name_series, QString name_x, QString name_y, bool man_axis_style_x=false, bool man_axis_style_y=false, double man_min_x=0, double man_max_x=1, double man_min_y=0, double man_max_y=1, int ticks_x=AXE_TICK_COUNT_MAJOR_DEFAULT, int ticks_y=AXE_TICK_COUNT_MAJOR_DEFAULT)
Definition: d_plot.cpp:1690
D_Contour::bounding_box
Rect bounding_box()
Definition: d_contour.h:71
ER_type_missmatch
@ ER_type_missmatch
Definition: d_enum.h:137
VAL_STAT_MEDIAN_DEVIATION
@ VAL_STAT_MEDIAN_DEVIATION
Definition: d_bio_enum.h:83
D_Bio_NucleusBlob::matching_TypeColor
QColor matching_TypeColor(Rect FrameNotNearBorder, double t_begin, double t_end)
Definition: d_bio_nucleusblob.cpp:1492
D_Bio_NucleusPedigree::set_FrameInMargin_XY
void set_FrameInMargin_XY(int x_min, int x_max, int y_min, int y_max)
Definition: d_bio_nucleuspedigree.h:107
c_GEO_CONVEX_HULL
@ c_GEO_CONVEX_HULL
Definition: d_enum.h:2054
D_Bio_NucleusPedigree::get_pNucleus
D_Bio_NucleusBlob * get_pNucleus(size_t t, size_t y_mosaic, size_t x_mosaic, size_t i)
Definition: d_bio_nucleuspedigree.cpp:320
c_DIM_NUMBER_OF
@ c_DIM_NUMBER_OF
Definition: d_enum.h:241
QSL_Attrib_Foc
const QStringList QSL_Attrib_Foc
Definition: d_bio_enum.h:179
d_opencv_typedefs.h
D_Bio_NucleusBlob::matching_foundParent
bool matching_foundParent()
Definition: d_bio_nucleusblob.h:186
c_GEO_CONTOUR
@ c_GEO_CONTOUR
Definition: d_enum.h:2052
D_Bio_NucleusBlob::matching_Age
size_t matching_Age()
Definition: d_bio_nucleusblob.h:198
dir_SAVE
@ dir_SAVE
Definition: d_enum.h:72
D_VisDat_Obj::pDim
D_VisDat_Dim * pDim()
Definition: d_visdat_obj.h:73
D_Bio_NucleusImage::set_OffsetMosaicGrid
void set_OffsetMosaicGrid(Point OffsetMosaicGrid)
Definition: d_bio_nucleusimage.h:68
D_Plot::Plot_Line_PoolStat_DualErr
static int Plot_Line_PoolStat_DualErr(QChartView *pChartView, vector< double > vData_X_Pool, vector< double > vData_Y_Stat, double x_min, double x_max, size_t x_classes, size_t stat_y_main_val, size_t stat_y_main_err, size_t stat_y_secondary_val, QString name_title, QString name_series, QString name_x, QString name_y, bool auto_range, int x_trans=c_AXE_TRANS_LIN, int y_trans_1st=c_AXE_TRANS_LIN, int y_trans_2nd=c_AXE_TRANS_LIN, bool dots_visible=false, bool man_axis_style_x=false, bool man_axis_style_y=false, double man_min_x=0, double man_max_x=1, double man_min_y=0, double man_max_y=1, int ticks_x=AXE_TICK_COUNT_MAJOR_DEFAULT, int ticks_y=AXE_TICK_COUNT_MAJOR_DEFAULT)
Definition: d_plot.cpp:3142
D_Viewer_3D::init
void init(QGridLayout *target_layout)
Definition: d_viewer_3d.cpp:26
D_Bio_NucleusPedigree::set_attrib_filter_path
bool set_attrib_filter_path(QDir *pDir_Save)
Definition: d_bio_nucleuspedigree.cpp:1104
c_VIS_TRAFO_CROP_FIXED
@ c_VIS_TRAFO_CROP_FIXED
Definition: d_enum.h:688
QSL_DataLevel_NucBlob
const QStringList QSL_DataLevel_NucBlob
Definition: d_bio_enum.h:389
D_Img_Proc::Contrast_Color
static QColor Contrast_Color(QColor col_in, bool force_black_and_white=true, bool mirror_hue=true, bool force_light2blue=true)
Definition: d_img_proc.cpp:19388
QSL_StatList
const QStringList QSL_StatList
Definition: d_enum.h:797
D_Img_Proc::OverlayImage
static int OverlayImage(Mat *pMA_Out, Mat *pMA_BaseR, Mat *pMA_BaseG, Mat *pMA_BaseB, Mat *pMA_OverR, Mat *pMA_OverG, Mat *pMA_OverB, uchar thresh_overlay=0)
Definition: d_img_proc.cpp:19509
ATTRIB_NUC_TIME_AGE_PAST
@ ATTRIB_NUC_TIME_AGE_PAST
Definition: d_bio_enum.h:207
ER_dim_missmatch
@ ER_dim_missmatch
Definition: d_enum.h:148
ATTRIB_NUCLIFE_MITOSIS_STARTS_WITH
@ ATTRIB_NUCLIFE_MITOSIS_STARTS_WITH
Definition: d_bio_enum.h:310
D_VisDat_Proc::Fill_Holes
static int Fill_Holes(D_VisDat_Slicing slice, D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In)
Definition: d_visdat_proc.cpp:5014
D_Bio_NucleusLife::attribute_is_value_channel_dependent
static bool attribute_is_value_channel_dependent(size_t i_attrib)
Definition: d_bio_nucleuslife.cpp:400
D_Bio_NucleusBlob::matching_Destinantion
D_Bio_NucleusBlob * matching_Destinantion()
Definition: d_bio_nucleusblob.h:183
D_Bio_NucleusBlob::matching_foundAtMostOneChild
bool matching_foundAtMostOneChild()
Definition: d_bio_nucleusblob.h:189
D_Bio_NucleusPedigree::EVENT_TYPE_SHORT_LIFE_ISOLATED
@ EVENT_TYPE_SHORT_LIFE_ISOLATED
Definition: d_bio_nucleuspedigree.h:268
AXE_TICK_COUNT_MAJOR_DEFAULT
const int AXE_TICK_COUNT_MAJOR_DEFAULT
Definition: d_enum.h:2529
d_enum.h
c_MARKER_SYMBOL_TICK
@ c_MARKER_SYMBOL_TICK
Definition: d_enum.h:2043
ATTRIB_NUC_TIME_DIFF_TO_IRRADIATION
@ ATTRIB_NUC_TIME_DIFF_TO_IRRADIATION
Definition: d_bio_enum.h:206
c_VIS_TRAFO_GAMMA
@ c_VIS_TRAFO_GAMMA
Definition: d_enum.h:698
D_Viewer::Save_Image
QString Save_Image()
D_Viewer::Save_Image Saves the image at FI_LastSaved.
Definition: d_viewer.cpp:2157
D_Viewer_3D::Set_StoragePointer
void Set_StoragePointer(D_Storage *pStorage, int index_dir2use)
Definition: d_viewer_3d.h:124
Vec
cv::Vec< T, N > Vec
Definition: d_opencv_typedefs.h:44
d_error_handler.h
ER_parameter_bad
@ ER_parameter_bad
Definition: d_enum.h:142
D_Bio_NucleusPedigree::load_nuclei_data
bool load_nuclei_data(QString QS_path_NucDataMaster, QString QS_path_NucData, size_t nt, size_t ny, size_t nx, bool forget_contour, bool foci_are_part_of_nuc_files)
Definition: d_bio_nucleuspedigree.cpp:437
D_Bio_NucleusImage::get_ShapeInfo_append
int get_ShapeInfo_append(QStringList *pQSL_ShapeInfo)
Definition: d_bio_nucleusimage.cpp:809
VAL_STAT_MEDIAN
@ VAL_STAT_MEDIAN
Definition: d_bio_enum.h:82
D_Bio_NucleusPedigree::updatePedigreeView_Plot3D
int updatePedigreeView_Plot3D(size_t points_per_edge, size_t t_min=0, size_t t_max=size_t(INFINITY), double y_min_um=-INFINITY, double y_max_um=INFINITY, double x_min_um=-INFINITY, double x_max_um=INFINITY)
Definition: d_bio_nucleuspedigree.cpp:635
QSL_VisTrafo_Range
const QStringList QSL_VisTrafo_Range
Definition: d_enum.h:727
D_Img_Proc::Merge
static int Merge(Mat *pMA_Out, Mat *pMA_In0, Mat *pMA_In1, Mat *pMA_In2, Mat *pMA_In3, unsigned int channels, bool channel_use[4])
Definition: d_img_proc.cpp:4060
BORDER_DEFAULT
const int BORDER_DEFAULT
Definition: d_opencv_typedefs.h:78
d_finishtimeprognosis.h
D_Bio_NucleusPedigree::EVENT_TYPE_SHORT_LIFE_LOOSE_START
@ EVENT_TYPE_SHORT_LIFE_LOOSE_START
Definition: d_bio_nucleuspedigree.h:269
D_VisDat_Proc::Dim_Pick
static int Dim_Pick(D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In, vector< int > pick_pos)
Definition: d_visdat_proc.cpp:3413
D_Bio_NucleusPedigree::attrib_data
vector< double > attrib_data(size_t i_data_pt_lvl, size_t i_att_lvl_nuclife, size_t i_att_lvl_nucblob, size_t i_att_nuclife, size_t i_att_nucblob, size_t i_att_foc, size_t ch_val, size_t ch_foc, size_t stat_low, size_t stat_high)
Definition: d_bio_nucleuspedigree.cpp:1348
D_Bio_NucleusBlob::matching_RemoveParent
bool matching_RemoveParent(D_Bio_NucleusBlob *nuc_remove_parent)
Definition: d_bio_nucleusblob.cpp:1354
D_Bio_NucleusBlob::matching_isMitosis
bool matching_isMitosis()
Definition: d_bio_nucleusblob.h:193
D_Storage::get_Adress
Mat * get_Adress(size_t pos)
Definition: d_storage.h:54
d_videowriter.h
D_Img_Proc::Duplicate2Channels
static int Duplicate2Channels(Mat *pMA_Out, Mat *pMA_In, int channels)
Definition: d_img_proc.cpp:4394
D_Img_Proc::ImgStackToGrid
static int ImgStackToGrid(Mat *pMA_Out, vector< Mat > *pvMA_In, vector< vector< QString >> vvQS_LabelText_Img_Line, size_t maxPerRow, int text_thickness=1, double text_scale=1.0, int line_height=10, int frame_thickness=2)
Definition: d_img_proc.cpp:16917
D_Bio_NucleusPedigree::mosaik_index_non_empty_max_y
size_t mosaik_index_non_empty_max_y()
Definition: d_bio_nucleuspedigree.cpp:126
c_MARKER_SYMBOL_RECT
@ c_MARKER_SYMBOL_RECT
Definition: d_enum.h:2037
D_Img_Proc::Color2Text4StyleSheet
static QString Color2Text4StyleSheet(QColor col_in)
Definition: d_img_proc.cpp:19445
d_imagerewardsystem.h
QS_Fun_Sad
const QString QS_Fun_Sad
Definition: d_enum.h:2523
D_Bio_NucleusPedigree::set_attrib_filter_channels
bool set_attrib_filter_channels(QStringList channels_foc, QStringList channels_val)
Definition: d_bio_nucleuspedigree.cpp:1116
SCORE_NUMBER_OF
@ SCORE_NUMBER_OF
Definition: d_bio_enum.h:117
D_Bio_NucleusBlob::attribute_is_value_channel_dependent
static bool attribute_is_value_channel_dependent(size_t i_attrib)
Definition: d_bio_nucleusblob.cpp:226
DATAPOINT_LEVEL_NUCBLOB
@ DATAPOINT_LEVEL_NUCBLOB
Definition: d_bio_enum.h:360
D_Viewer::ClickRecord_GetPoints_Circles
vector< vector< Point > > ClickRecord_GetPoints_Circles(double radius)
Definition: d_viewer.cpp:2650
D_Viewer::ClickRecord_GetPoints_ConvexHull
vector< Point > ClickRecord_GetPoints_ConvexHull()
Definition: d_viewer.cpp:2616
D_Viewer::MousePos_X
int MousePos_X()
Definition: d_viewer.h:197
D_Img_Proc::Convert_Color2Mono
static int Convert_Color2Mono(Mat *pMA_Out, Mat *pMA_In, int col2mono_code)
Definition: d_img_proc.cpp:2662
D_Viewer::Set_VisTrafo_Center
void Set_VisTrafo_Center(double center=0)
Definition: d_viewer.h:173
c_VIS_TRAFO_CROP_DYNAMIC
@ c_VIS_TRAFO_CROP_DYNAMIC
Definition: d_enum.h:687
QSL_DataLevel_Foc
const QStringList QSL_DataLevel_Foc
Definition: d_bio_enum.h:399
D_Bio_NucleusPedigree::info_debug
void info_debug()
Definition: d_bio_nucleuspedigree.cpp:208
D_MAKRO_MegaFoci::D_MAKRO_MegaFoci
D_MAKRO_MegaFoci(D_Storage *pStorage, QWidget *parent=nullptr)
Definition: d_makro_megafoci.cpp:12
D_Img_Proc::Draw_GridSimple
static int Draw_GridSimple(Mat *pMA_Target, int nx, int ny, Scalar value=255, int thickness=1)
Definition: d_img_proc.cpp:17746
D_Bio_NucleusBlob::matching_foundNoParent
bool matching_foundNoParent()
Definition: d_bio_nucleusblob.h:187
D_Bio_NucleusPedigree::updatePedigreeView_Volumetric
int updatePedigreeView_Volumetric(size_t size_volT_px, size_t size_volY_px, size_t size_volX_px, size_t size_Node_px, size_t size_Edge_px, size_t size_Y_px_original, size_t size_X_px_original)
Definition: d_bio_nucleuspedigree.cpp:759
D_Storage::dir_M_MegaFoci_Images
QDir * dir_M_MegaFoci_Images()
Definition: d_storage.h:90
d_visdat_proc.h
D_Viewer::ClickRecord_RecordedPointsCount
size_t ClickRecord_RecordedPointsCount()
Definition: d_viewer.cpp:2712
D_Viewer_Plot_3D::plot_Heatmap
int plot_Heatmap(vector< double > vData_X, double min_x, double max_x, bool auto_range_x, size_t classes_x, QString name_x, vector< double > vData_Y, double min_y, double max_y, bool auto_range_y, size_t classes_y, QString name_y, vector< double > vData_Z, size_t stat_z, QString name_z, bool draw_height, bool draw_wireframe, bool man_axis_style_x=false, bool man_axis_style_y=false, bool man_axis_style_z=false, double man_min_x=0, double man_max_x=1, double man_min_y=0, double man_max_y=1, double man_min_z=0, double man_max_z=1, bool called_internally=false)
Definition: d_viewer_plot_3d.cpp:526
D_Viewer_Plot_3D::init
int init(QGridLayout *target_layout)
Definition: d_viewer_plot_3d.cpp:18
D_Bio_NucleusLife
Definition: d_bio_nucleuslife.h:45
D_Bio_NucleusImage::set_OffsetPixels
void set_OffsetPixels(Point OffsetPixels)
Definition: d_bio_nucleusimage.h:69
QS_Fun_TableFlip
const QString QS_Fun_TableFlip
Definition: d_enum.h:2520
SCORE_AREA
@ SCORE_AREA
Definition: d_bio_enum.h:108
D_Img_Proc::Threshold_Absolute
static int Threshold_Absolute(Mat *pMA_Out, Mat *pMA_In, double thres_abs)
Definition: d_img_proc.cpp:6440
c_SLICE_2D_XY
@ c_SLICE_2D_XY
Definition: d_enum.h:267
D_Contour::set_contour
void set_contour(vector< Point > contour)
Definition: d_contour.cpp:53
D_VisDat_Proc::Filter_RankOrder_Circular
static int Filter_RankOrder_Circular(D_VisDat_Slicing slice, D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In, double quantil, double radius)
Definition: d_visdat_proc.cpp:5145
c_VIS_TRAFO_LOG
@ c_VIS_TRAFO_LOG
Definition: d_enum.h:699
d_bio_nucleusimage.h
D_Bio_NucleusBlob::attribute
double attribute(size_t i_attrib, size_t ch_val, double scale_px2um)
Definition: d_bio_nucleusblob.cpp:116
c_FEAT_AREA
@ c_FEAT_AREA
Definition: d_enum.h:1347
D_Bio_NucleusPedigree::match_time_correct_mitosis_go1
void match_time_correct_mitosis_go1(size_t t)
Definition: d_bio_nucleuspedigree.cpp:2610
D_Img_Proc::Channel_Supression
static int Channel_Supression(Mat *pMA_Out, Mat *pMA_In, bool use_r=true, bool use_g=true, bool use_b=true, bool force_3ch=false)
Definition: d_img_proc.cpp:3953
c_STAT_MEAN_ARITMETIC
@ c_STAT_MEAN_ARITMETIC
Definition: d_enum.h:740
ER_index_out_of_range
@ ER_index_out_of_range
Definition: d_enum.h:146
D_Bio_NucleusPedigree::set_scale_nodes
void set_scale_nodes(double scale)
Definition: d_bio_nucleuspedigree.h:105
D_VisDat_Proc::Feature_Select
static int Feature_Select(D_VisDat_Slicing slice, D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In, int feature, double f_min, double f_max, int connectivity)
Definition: d_visdat_proc.cpp:6626
d_stat.h
ER_empty
@ ER_empty
Definition: d_enum.h:135
D_VisDat_Proc::GammaSpread
static int GammaSpread(D_VisDat_Obj *pVD_Out, D_VisDat_Obj *pVD_In, double gamma, double in_min, double in_max, double out_min, double out_max, bool force_8bit)
Definition: d_visdat_proc.cpp:6793