 |
ImageD
v2_7_5 (24.06.22)
ImageD is an image processing software designed for rapid prototyping and implementing algorithms and solutions for science, research and teaching.
|
Go to the documentation of this file.
9 #ifndef D_MAKRO_MITOCHONDRIEN_H
10 #define D_MAKRO_MITOCHONDRIEN_H
31 #include <QMainWindow>
34 #include <QGraphicsScene>
39 #include <QMessageBox>
40 #include <QFileDialog>
43 #include <QSpacerItem>
44 #include <QElapsedTimer>
45 #include <QTextDocument>
47 #include <QGridLayout>
48 #include <QResizeEvent>
49 #include <QMouseEvent>
51 #include <QDesktopServices>
56 #include <opencv2/core/core.hpp>
57 #include <opencv2/highgui/highgui.hpp>
58 #include <opencv2/imgproc/imgproc.hpp>
77 void closeEvent(QCloseEvent *event);
81 void Update_ImgProc_All();
84 void mousePressEvent(QMouseEvent *event);
85 void resizeEvent(QResizeEvent *event);
87 void Populate_CB_Single(QComboBox *CB, QStringList QSL,
int index_init);
89 void Update_ImgProc_Photons(
unsigned int start_step);
90 void Update_ImgProc_Parameters();
91 void Convert_Parameters_8bit_All();
92 void Convert_Parameters_8bit_RoI();
93 void Update_ImgProc_Results(
unsigned int start_step);
94 void Update_Step_Photons(
unsigned int step);
96 void Update_Results_Proc();
97 void Update_Results_Proc_Force();
99 void Update_Step_Results(
unsigned int step);
101 void Update_Combi_Results();
102 void Update_Math_Image();
104 void Update_Plot_Hist_Img();
105 void Update_Plot_Hist_Cells();
107 void Update_Plot_Parameter_Pixel();
108 void Update_Plot_Parameter_Cells();
110 void Update_Plot_Stat_MeanMedian();
111 void Update_Plot_Stat_CvSkewKurt();
112 void Update_Plot_Stat_Quantiles();
114 void Calc_Data_All();
115 int Calc_Data_Split_Img2vv();
116 void Calc_Data_Parameter_Stats();
118 void Calc_T2_Handling();
119 void Calc_NADPH_NADH_All();
120 void Calc_NADPH_NADH();
124 void Stream_Stats_Start();
127 void Stream_ImagesPlots();
128 void Stream_Settings();
129 void Stream_Stats_End();
132 void Update_View_Photons();
133 void Update_View_Parameters();
134 void Update_View_Results();
135 void Update_View(QImage *QI_Show,
Mat *MA_Show, QPixmap *PX_Show,
SceneMouseTrack *SC_Show, QGraphicsView *GV_Show,
double *x_factor,
double *y_factor);
138 void Populate_CB_Style();
141 void Load_Directory();
146 void Save_Image_Photons();
147 void Save_Image_Parameters();
148 void Save_Image_Results();
149 void Save_Image(QImage *QI_Save, QString name_default);
150 void Save_Image(
D_Viewer *ViewerSave, QString name_default);
152 void Save_Plot(QChartView *pCV_Save, QString name_default);
155 void Get_Click_Pos(
int x,
int y);
157 void Fill_Background();
162 void Set_Scale_Factor_View(QImage *QI, QGraphicsView *GV);
163 void Init_Cell_Regions();
164 void Export_Cell_Regions();
167 void Update_SB_ValAtPos(
int x,
int y,
Mat *pMA);
170 void AdaptUI_NADH_p_NADPH_MinMax();
171 void AdaptUI_Results();
173 void ERR(
int err, QString func =
"no specified", QString detail =
"no specified");
175 void on_spinBox_PhoCon_Blur_Size_valueChanged(
int arg1);
177 void on_doubleSpinBox_PhoCon_Blur_Sigma_valueChanged(
double arg1);
179 void on_spinBox_PhoCon_Thres_Size_valueChanged(
int arg1);
181 void on_doubleSpinBox_PhoCon_Thres_Offset_valueChanged(
double arg1);
183 void on_comboBox_PhoVie_Step_currentIndexChanged(
int index);
185 void on_spinBox_PhoCon_EdgCon_Size_valueChanged(
int arg1);
187 void on_pushButton_PhoCon_Paint_Reset_clicked();
189 void on_pushButton_ResCon_Zoom_Reset_clicked();
191 void on_spinBox_His_ClassCount_valueChanged(
int arg1);
193 void on_comboBox_ResCon_Rubberband_currentIndexChanged(
int index);
195 void on_pushButton_RessCon_Zoom_In_clicked();
197 void on_pushButton_ResCon_Zoom_Out_clicked();
199 void on_spinBox_ParAll_ClassCount_valueChanged(
int arg1);
201 void on_action_Autoselect_Save_Filename_triggered(
bool checked);
203 void on_doubleSpinBox_ParCon_T2_Min_Const_valueChanged(
double arg1);
205 void on_doubleSpinBox_ParCon_T2_Max_Const_valueChanged(
double arg1);
207 void on_doubleSpinBox_ParCon_T2_Min_Thres_valueChanged(
double arg1);
209 void on_doubleSpinBox_ParCon_T2_Max_Thres_valueChanged(
double arg1);
211 void on_action_Show_Photons_triggered(
bool checked);
213 void on_action_Show_Parameters_triggered(
bool checked);
215 void on_action_Show_Results_triggered(
bool checked);
217 void on_comboBox_AnalysedImage_currentIndexChanged(
int index);
219 void on_radioButton_PhoCon_Paint_Line_clicked(
bool checked);
221 void on_comboBox_PhoCon_Paint_FillStep_currentIndexChanged(
int index);
223 void on_radioButton_PhoCon_Paint_Fill_clicked(
bool checked);
226 Ui::D_MAKRO_Mitochondrien *ui;
228 bool ClosingPossible =
false;
233 unsigned int pos_dest;
237 QFileInfoList FIL_Input_Images;
238 QString QS_Image_BasePath;
239 QString QS_Image_BaseName;
240 bool Auto_SaveName =
false;
243 vector<Mat> vMA_Photons;
246 vector<Mat> vMA_Parameter_All_Float;
247 vector<Mat> vMA_Parameter_All_8Bit;
248 vector<Mat> vMA_Parameter_RoI_Float;
249 vector<Mat> vMA_Parameter_RoI_8Bit;
250 QStringList QSL_Parameter_Suffixes;
251 unsigned int PARAMETERS;
252 unsigned int PARAMETERS_only_input;
253 bool param_set =
false;
254 void Init_Parameters();
255 void Read_Parameters_From_UI();
256 void Populate_CB_Parameters();
257 void Init_vMA_Parameter();
261 void Load_Reference();
262 QFileInfo FI_Reference;
263 bool Exist_Refernce =
false;
266 bool Calc_Done =
false;
267 bool CB_Cells_Updated =
false;
268 unsigned int CellCount = 0;
269 vector<int> CellColor_LUT;
270 vector<vector<vector<double>>> vvv_Data_ParNucPix;
271 vector<vector<vector<double>>> vvv_Stat_ParNucSta;
272 void Populate_CB_Cells();
273 void Check_Parameter_Existence();
274 void Norm_Parameters();
275 bool Exist_photons =
false;
276 bool Exist_t1 =
false;
277 bool Exist_t2 =
false;
278 bool Exist_a1 =
false;
279 bool Exist_a2 =
false;
280 bool Exist_chi =
false;
281 bool Calced_NADPH_NADH =
false;
282 bool Calced_NADH =
false;
283 bool Calced_NADPH =
false;
287 void Populate_CB_Stat();
288 QStringList QSL_Stats;
291 vector<Mat> vMA_Results;
293 QStringList QSL_Results;
294 void Init_QSL_Results();
295 void Populate_CB_Results();
296 void Init_MatVector(vector<Mat> *vec,
unsigned int l);
303 bool ManSep_Manip =
false;
304 bool ManSep_Line_Begin =
true;
305 double ManSep_Scale_Factor = 1.0;
306 QPoint ManSep_Pos_Last;
307 QPoint ManSep_Pos_Curr;
309 QDir DIR_CellSep_Img;
310 QFileInfo FI_CellSep;
311 bool ManSep_FromFile;
336 QChartView *ChartView_Plot;
341 bool Stream_Open =
false;
342 ofstream OS_Stream_Summary;
343 vector<ofstream>OS_Stream_Parameters;
345 bool Auto_ResultsProc_blocked =
false;
348 QLabel *L_SB_ValAtPos;
356 static const unsigned int
359 static const unsigned int
360 c_RT_IMAGE_COLOR = 0,
362 static const unsigned int
363 c_RT_PLOT_HIST_IMG = 0,
364 c_RT_PLOT_HIST_CELL = 1,
365 c_RT_PLOT_PAR_PIXEL = 2,
366 c_RT_PLOT_PAR_CELL = 3,
367 c_RT_PLOT_STAT_MM = 4,
368 c_RT_PLOT_STAT_CSK = 5,
369 c_RT_PLOT_STAT_QUANT = 6;
372 static const unsigned int
378 static const unsigned int
380 c_ST_PH_SHADE_CORRECT = 1,
381 c_ST_PH_INPUT_CONV_8bit = 2,
382 c_ST_PH_INPUT_CONTRAST = 3,
383 c_ST_PH_INPUT_BLUR = 4,
384 c_ST_PH_BIN_THRES = 5,
385 c_ST_PH_REGIONS_EDGES = 6,
386 c_ST_PH_REGIONS_CONNECT = 7,
387 c_ST_PH_REGIONS_SEP_VIEW= 8,
388 c_ST_PH_REGIONS_LABEL = 9,
389 c_ST_PH_ROI_MITO = 10;
392 static const unsigned int
396 INDEX_NADPH_NADH = 0,
407 static const unsigned int
409 c_ST_RE_PH_INPUT = 1,
410 c_ST_RE_PH_CONTRAST = 2,
411 c_ST_RE_PH_BINARY = 3,
412 c_ST_RE_PH_EDGES = 4,
413 c_ST_RE_PH_LABEL_NUMBER = 5,
414 c_ST_RE_PH_EDGES_NUMBER = 6;
417 #endif // D_MAKRO_MITOCHONDRIEN_H
static int Plot_Stat_Multi_Custom(QChartView *pChartView, vector< vector< vector< double >>> *vvv_ParSetSta, unsigned int par_x, unsigned int par_y, unsigned int stat_x, unsigned int stat_y, QString name_title, QString name_series, QString name_x, QString name_y)
Definition: d_plot.cpp:3803
cv::Mat Mat
Definition: d_opencv_typedefs.h:28
@ ER_okay
Definition: d_enum.h:133
static QString Type_of_Mat(Mat *pMA_In)
Definition: d_img_proc.cpp:363
static 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
@ c_STAT_QUANTIL_90
Definition: d_enum.h:772
static int Math_ImgImg_Diff(Mat *pMA_Out, Mat *pMA_In1, Mat *pMA_In2)
Definition: d_img_proc.cpp:13125
@ c_STAT_DIST_40_0_PRZ
Definition: d_enum.h:779
@ c_STAT_DIST_10_0_PRZ
Definition: d_enum.h:776
void Update_ImgProc_All()
Definition: d_makro_mitochondrien.cpp:227
static int Plot_Hist_Multi_Classes(QChartView *pChartView, vector< vector< double >> *vv_hist, double min_x, double max_x, double max_y, double step, QString name_title, QString name_series, QString name_x, QString name_y, bool ignore_first)
static int Threshold_Adaptive(Mat *pMA_Out, Mat *pMA_In, int out_mode, double max_val, int adapt_mode, unsigned int mask_size, double offset)
Definition: d_img_proc.cpp:6669
~D_MAKRO_Mitochondrien()
Definition: d_makro_mitochondrien.cpp:186
@ c_STAT_QUANTIL_80
Definition: d_enum.h:770
static int Math_ImgImg_Min(Mat *pMA_Out, Mat *pMA_In1, Mat *pMA_In2)
Definition: d_img_proc.cpp:13232
static int Histo_Equal(Mat *pMA_Out, Mat *pMA_In)
Definition: d_img_proc.cpp:14397
@ c_STAT_MINIMUM
Definition: d_enum.h:754
static int Split_img2vv_value(vector< vector< double >> *vv_data_LabPix, Mat *pMA_Value, Mat *pMA_Label, bool ignore_0)
Definition: d_img_proc.cpp:14833
QString Type_MA()
Definition: d_viewer.h:90
@ c_STAT_QUANTIL_45
Definition: d_enum.h:763
static int Math_ImgImg_Max(Mat *pMA_Out, Mat *pMA_In1, Mat *pMA_In2)
Definition: d_img_proc.cpp:13247
static int Load_From_Path(Mat *pMA_Out, QFileInfo FI_path)
Definition: d_img_proc.cpp:16
The D_Viewer class Display images (Mat) in QGraphicsView in the user interface.
Definition: d_viewer.h:58
The D_Storage class Used for storing data. There is only one instance in D_MainWindow .
Definition: d_storage.h:49
@ ER_size_missmatch
Definition: d_enum.h:141
const int CMP_GE
Definition: d_opencv_typedefs.h:132
const int CMP_LT
Definition: d_opencv_typedefs.h:133
static int Math_ImgImg_Comp(Mat *pMA_Out, Mat *pMA_In1, Mat *pMA_In2, int comp)
Definition: d_img_proc.cpp:13262
static int Normalize(Mat *pMA_Out, Mat *pMA_In, unsigned int norm, unsigned int type, double min, double max)
Definition: d_img_proc.cpp:3814
static int Plot_Scatter_2D_Parameter(QChartView *pChartView, vector< vector< vector< double >>> *vvv_ParSetVal, unsigned int set, unsigned int par_x, unsigned int par_y, QString name_title, QString name_series, QString name_x, QString name_y)
static int Math_Special_NADPH(Mat *pMA_NADPH, Mat *pMA_I, Mat *pMA_A2, Mat *pMA_T1, Mat *pMA_T2, float k, bool ignore_0, float T2_Min_Thres, float T2_Min_Const)
Definition: d_img_proc.cpp:13924
static int Math_Special_NADPH_NADH(Mat *pMA_NADPH_NADH, Mat *pMA_T2, bool ignore_0, float T2_Min_Thres, float T2_Max_Thres, float T2_Min_Const, float T2_Max_Const)
Definition: d_img_proc.cpp:13962
void Update_Image(Mat *MA_new)
D_Viewer::Update_Image Set and show image.
Definition: d_viewer.cpp:2079
@ c_STAT_ABS_DEV_MED
Definition: d_enum.h:775
@ c_STAT_DIST_80_0_PRZ
Definition: d_enum.h:784
void set_ClosingPossible(bool closeable)
Definition: d_makro_mitochondrien.h:78
static int Labeling(Mat *pMA_Out, Mat *pMA_In, int connectivity, int out_depth)
Definition: d_img_proc.cpp:12350
@ c_STAT_QUARTIL_LOW
Definition: d_enum.h:759
@ c_STAT_MAXIMUM
Definition: d_enum.h:774
static int Math_ImgImg_Div(Mat *pMA_Out, Mat *pMA_In1, Mat *pMA_In2, double scale)
Definition: d_img_proc.cpp:13171
@ c_STAT_QUANTIL_95
Definition: d_enum.h:773
const int MORPH_CLOSE
Definition: d_opencv_typedefs.h:92
static int Duplicate(Mat *pMA_Out, Mat *pMA_In)
Definition: d_img_proc.cpp:2397
@ c_STAT_QUANTIL_70
Definition: d_enum.h:768
@ c_STAT_COUNT
Definition: d_enum.h:734
static int Calc_Vector2Hist_2(vector< vector< double >> *vv_hist, vector< vector< double >> *vv_data, unsigned int class_count, double *min_ext, double *max_ext, double *max_y_ext, double *step_ext, bool accumulate, bool uniform)
Definition: d_stat.cpp:3764
static int Mask(Mat *pMA_Out, Mat *pMA_In, Mat *pMA_Mask)
Definition: d_img_proc.cpp:14098
const int CMP_NE
Definition: d_opencv_typedefs.h:135
static int Draw_Label_Numbers(Mat *pMA_Out, Mat *pMA_In, Mat *pMA_Label, double scale, double thickness, bool center)
Definition: d_img_proc.cpp:19012
const int CMP_GT
Definition: d_opencv_typedefs.h:131
static int Plot_Hist_Single_Classes(QChartView *pChartView, vector< double > *v_hist, double min, double step, QString name_title, QString name_series, QString name_x, QString name_y, bool ignore_first)
Definition: d_plot.cpp:769
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
@ c_STAT_QUANTIL_60
Definition: d_enum.h:766
@ c_STAT_QUANTIL_35
Definition: d_enum.h:761
static int Plot_Stat_Multi_CvSkewKurt(QChartView *pChartView, vector< vector< double >> *vv_SetSta, bool pl_cv, bool pl_skew, bool pl_kurt, QString name_title, QString name_categories, QString name_y)
Definition: d_plot.cpp:3684
@ c_STAT_DIST_90_0_PRZ
Definition: d_enum.h:785
@ c_STAT_MEDIAN
Definition: d_enum.h:764
const int CMP_EQ
Definition: d_opencv_typedefs.h:130
static int ValAtPix(vector< double > *v_value, Mat *pMA_In, size_t x_pos, size_t y_pos)
Definition: d_img_proc.cpp:2192
The D_Error_Handler class takes error codes from D_ERROR_ENUM and shows a popup if an error occures.
Definition: d_error_handler.h:38
static int Load_From_Path_Text(Mat *pMA_Out, string path)
Definition: d_img_proc.cpp:86
static int Shading_Correct(Mat *pMA_Out, Mat *pMA_In, Mat *pMA_Reference)
Definition: d_img_proc.cpp:14089
@ c_STAT_QUANTIL_30
Definition: d_enum.h:760
@ c_STAT_DIST_60_0_PRZ
Definition: d_enum.h:781
void closeEvent(QCloseEvent *event)
Definition: d_makro_mitochondrien.cpp:191
cv::Scalar Scalar
Definition: d_opencv_typedefs.h:30
@ c_STAT_QUANTIL_40
Definition: d_enum.h:762
@ c_STAT_KURTOSIS_SAMPLE
Definition: d_enum.h:749
static int Calc_Hist_1C(vector< double > *v_hist, Mat *pMA_In, bool uniform, bool accum, unsigned int class_count, double *min_ext, double *max_ext, double *step_ext)
Definition: d_img_proc.cpp:14665
@ c_STAT_QUANTIL_20
Definition: d_enum.h:758
@ c_STAT_QUANTIL_05
Definition: d_enum.h:755
@ c_STAT_QUANTIL_10
Definition: d_enum.h:756
void set_GV(QGraphicsView *GV_ui)
Definition: d_viewer.cpp:49
@ c_STAT_VAR_COEF_SAMPLE
Definition: d_enum.h:753
@ c_STAT_QUANTIL_55
Definition: d_enum.h:765
static int Value_to_MinOrMax(Mat *pMA_Out, Mat *pMA_In, double val_src, bool to_min)
Definition: d_img_proc.cpp:14313
@ c_STAT_VARIANCE_SAMPLE
Definition: d_enum.h:745
D_MAKRO_Mitochondrien(D_Storage *pStorage, QWidget *parent=0)
Definition: d_makro_mitochondrien.cpp:12
static int Floodfill(Mat *pMA_Out, Mat *pMA_In, unsigned int seed_x, unsigned int seed_y, double new_val)
Definition: d_img_proc.cpp:16690
static int Plot_Stat_Multi_Quantiles(QChartView *pChartView, vector< vector< double >> *vv_SetSta, unsigned int steps, QString name_title, QString name_categories, QString name_y)
Definition: d_plot.cpp:3735
Definition: d_analysiswindow.h:58
static int Morphology_Elemental(Mat *pMA_Out, Mat *pMA_In, int morph_type, int elem_type, unsigned int elem_size_X, unsigned int elem_size_Y, int border_type, unsigned int iterations)
Definition: d_img_proc.cpp:7041
static int Math_ImgSelf_Not(Mat *pMA_Out, Mat *pMA_In)
Definition: d_img_proc.cpp:12999
@ c_STAT_STAN_DEV_SAMPLE
Definition: d_enum.h:751
QString Type_QI()
Definition: d_viewer.h:91
const int MORPH_ELLIPSE
Definition: d_opencv_typedefs.h:87
@ c_STAT_QUANTIL_65
Definition: d_enum.h:767
static int Math_ImgImg_BitOr(Mat *pMA_Out, Mat *pMA_In1, Mat *pMA_In2)
Definition: d_img_proc.cpp:13202
void set_dir_M_Mitochondria(QString path)
Definition: d_storage.h:99
@ c_STAT_QUANTIL_15
Definition: d_enum.h:757
void connect_Zoom(D_Viewer *viewer)
Definition: d_viewer.cpp:128
static int Value_to_Value(Mat *pMA_Out, Mat *pMA_In, double val_src, double val_dst)
Definition: d_img_proc.cpp:14336
const QStringList QSL_StatList
Definition: d_enum.h:797
@ c_STAT_QUANTIL_85
Definition: d_enum.h:771
static int Convert_Mat_to_QImage(QImage *pQI_Out, Mat *pMA_In, bool use_custom_range_for_spread_non_8bit=false, double in_min=0, double in_max=1)
Definition: d_img_proc.cpp:973
static int Math_Special_NADH(Mat *pMA_NADH, Mat *pMA_I, Mat *pMA_A2, Mat *pMA_T1, Mat *pMA_T2, float k, bool ignore_0, float T2_Max_Thres, float T2_Max_Const)
Definition: d_img_proc.cpp:13886
static int Math_ImgImg_DiffAbs(Mat *pMA_Out, Mat *pMA_In1, Mat *pMA_In2)
Definition: d_img_proc.cpp:13140
QString Save_Image()
D_Viewer::Save_Image Saves the image at FI_LastSaved.
Definition: d_viewer.cpp:2157
static int Math_ImgImg_BitAnd(Mat *pMA_Out, Mat *pMA_In1, Mat *pMA_In2)
Definition: d_img_proc.cpp:13187
static int Math_ImgImg_Add(Mat *pMA_Out, Mat *pMA_In1, Mat *pMA_In2)
Definition: d_img_proc.cpp:13092
static int Math_ImgScal_Div(Mat *pMA_Out, Mat *pMA_In, double divisor)
Definition: d_img_proc.cpp:13046
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
static int Plot_Stat_Multi_MeanMedian(QChartView *pChartView, vector< vector< double >> *vv_SetSta, bool pl_mean, bool pl_sd, bool pl_median, bool pl_adm, QString name_title, QString name_categories, QString name_y)
Definition: d_plot.cpp:3630
const int BORDER_DEFAULT
Definition: d_opencv_typedefs.h:78
@ c_STAT_DIST_QUARTIL
Definition: d_enum.h:780
@ c_STAT_QUARTIL_UP
Definition: d_enum.h:769
Mat * get_Adress(size_t pos)
Definition: d_storage.h:54
static int Filter_Gauss(Mat *pMA_Out, Mat *pMA_In, int size_x, int size_y, int border, double sigma_x, double sigma_y)
Definition: d_img_proc.cpp:9083
@ c_STAT_SKEWNESS_SAMPLE
Definition: d_enum.h:747
static int Math_ImgImg_Mult(Mat *pMA_Out, Mat *pMA_In1, Mat *pMA_In2, double scale)
Definition: d_img_proc.cpp:13155
Definition: d_makro_mitochondrien.h:70
QDir * dir_M_Mitochondria()
Definition: d_storage.h:71
@ c_STAT_DIST_30_0_PRZ
Definition: d_enum.h:778
static int Calc_Stats(vector< double > *v_stats, vector< double > v_data, bool calc_sorted)
Definition: d_stat.cpp:16
@ c_STAT_SPAN
Definition: d_enum.h:788
The SceneMouseTrack class Scene to put in a QGraphicsView that emits additional signals.
Definition: scenemousetrack.h:36
@ c_STAT_MEAN_ARITMETIC
Definition: d_enum.h:740
const int CMP_LE
Definition: d_opencv_typedefs.h:134
@ c_STAT_DIST_20_0_PRZ
Definition: d_enum.h:777
@ c_STAT_DIST_70_0_PRZ
Definition: d_enum.h:783
@ ER_empty
Definition: d_enum.h:135