 |
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_CILIASPHERETRACKER_H
10 #define D_MAKRO_CILIASPHERETRACKER_H
32 #include <QMainWindow>
33 #include <QFileDialog>
35 #include <QFileInfoList>
39 #include <QCloseEvent>
40 #include <QResizeEvent>
41 #include <QInputDialog>
42 #include <qplaintextedit.h>
43 #include <QColorDialog>
62 #include <opencv2/core/core.hpp>
63 #include <opencv2/highgui/highgui.hpp>
64 #include <opencv2/imgproc/imgproc.hpp>
83 void closeEvent(QCloseEvent *event);
84 void resizeEvent(QResizeEvent *event);
91 void Update_Image_Proc();
92 void Update_Image_Results();
94 void Update_ImgProc_All();
95 void Update_ImgProc(
int step_start);
96 void Update_ImgProc_Step(
int step);
98 void Update_VideoProc_All();
100 void TimeProjectSum_Init();
101 void TimeProjectSum_Add();
103 void Update_Results();
105 void Update_Result_GraphicsTimeProjectSum();
106 void Update_Result_GraphicsVectors();
107 void Update_Result_GraphicsHeatmap();
108 void Update_Result_GridSummary();
109 D_Geo_Point_2D CalcVortexCenter(
D_Geo_LineSet_2D *lines,
double *deviation, vector<double> *v_residuals_all, vector<double> *v_residuals_used,
double well_diameter_px,
Point P_VideoOffset,
int t_start = 0,
int t_end = -1);
110 void Update_Result_GraphicsVortexCenter();
111 void Update_Result_SpeedStatCustom();
112 void Update_Result_AngleStatCustom();
113 void Update_Result_SpeedAnalysis();
114 void Update_Result_AngleAnalysis();
115 void Update_Result_Histogram();
117 void Save_AnalysisAll();
118 void Save_AnalysisSingle();
119 void Save_ResultVectorFieldVideo(QString Path_Out,
int gridCellsHorizontal,
int gridCellsVertical,
double timeWindowSeconds,
int backgroundMode);
123 void Data_SelectVideo();
124 void Data_SelectRoiTime();
125 void Data_SelectRoiSpace();
127 double Data_GetVideoPos(QFileInfo FI_Video);
128 double Data_GetSetVideoPos_Current();
130 void Data_CalcFullVideoStats();
131 void Data_CalcFullVideoStats_AngularSpeed();
132 void Data_Split2GridSampling();
134 void Update_Ui_Roi();
135 void Update_Ui_ResParam();
136 void Update_Ui_ResMovAv();
138 void Populate_CB_Single(QComboBox *CB, QStringList QSL,
int index_init);
139 void Populate_CB_Start();
141 void BlockSignals_FrameSelection(
bool block);
142 void BlockSignals_FrameSelection_MovingAverage(
bool block);
144 void on_horizontalSlider_Proc_Frame_valueChanged(
int value);
145 void on_spinBox_Proc_Frame_valueChanged(
int arg1);
146 void on_doubleSpinBox_Proc_Time_valueChanged(
double arg1);
148 void on_comboBox_Data_Videos_currentIndexChanged(
int index);
149 void on_comboBox_Proc_Step_currentIndexChanged(
int index);
151 void on_doubleSpinBox_Param_Scale_Px_valueChanged(
double arg1);
152 void on_doubleSpinBox_Param_Scale_mm_valueChanged(
double arg1);
153 void on_doubleSpinBox_Param_Crop_Start_valueChanged(
double arg1);
154 void on_doubleSpinBox_Param_Crop_End_valueChanged(
double arg1);
155 void on_spinBox_Param_Crop_Top_valueChanged(
int arg1);
156 void on_spinBox_Param_Crop_Bottom_valueChanged(
int arg1);
157 void on_spinBox_Param_Crop_Left_valueChanged(
int arg1);
158 void on_spinBox_Param_Crop_Right_valueChanged(
int arg1);
159 void on_spinBox_Param_Blur_Size_valueChanged(
int arg1);
160 void on_doubleSpinBox_Param_Blur_Sigma_valueChanged(
double arg1);
162 void on_checkBox_Res_TimeProjSum_Gamma_stateChanged(
int arg1);
163 void on_doubleSpinBox_Res_TimeProjSum_ColorLow_valueChanged(
double arg1);
164 void on_doubleSpinBox_Res_TimeProjSum_ColorHigh_valueChanged(
double arg1);
166 void on_checkBox_Res_TimeProjSum_ColorLow_stateChanged(
int arg1);
167 void on_checkBox_Res_TimeProjSum_ColorHigh_stateChanged(
int arg1);
169 void on_spinBox_Param_FrameCountSmooth_valueChanged(
int arg1);
171 void on_comboBox_Res_Type_currentIndexChanged(
int index);
173 void on_spinBox_ParamGridVertical_valueChanged(
int arg1);
175 void on_spinBox_ParamGridHorizontal_valueChanged(
int arg1);
177 void on_spinBox_Res_MovAv_WindowFrames_valueChanged(
int arg1);
179 void on_doubleSpinBox_Res_MovAv_WindowTime_valueChanged(
double arg1);
181 void on_spinBox_Res_MovAv_CurrentFrame_valueChanged(
int arg1);
183 void on_doubleSpinBox_Res_MovAv_CurrentTime_valueChanged(
double arg1);
185 void on_horizontalSlider_Res_MovAv_CurrentStart_valueChanged(
int value);
187 void on_horizontalSlider_Res_MovAv_CurrentEnd_valueChanged(
int value);
189 void on_comboBox_Res_MovAv_TimeWindow_currentIndexChanged(
int index);
191 void on_comboBox_Res_MovAv_Background_currentIndexChanged(
int index);
193 void on_spinBox_ParamGrid_CellStart_valueChanged(
int arg1);
195 void on_spinBox_ParamGrid_CellEnd_valueChanged(
int arg1);
197 void on_comboBox_Res_PlotLine_FixRange_T_currentIndexChanged(
int index);
199 void on_checkBox_Res_PlotLine_FixRange_S_stateChanged(
int arg1);
201 void on_checkBox_Res_PlotLine_FixRange_A_stateChanged(
int arg1);
203 void on_spinBox_Res_PlotPoincare_Shift_Frames_valueChanged(
int arg1);
205 void on_doubleSpinBox_Res_PlotPoincare_Shift_Seconds_valueChanged(
double arg1);
207 void on_checkBox_Res_VortexCenter_MovingAverage_stateChanged(
int arg1);
208 void on_checkBox_Res_VortexCenter_Ransac_stateChanged(
int arg1);
210 void on_doubleSpinBox_Res_VortexCenter_MoveingAverage_TimeWindow_sec_valueChanged(
double arg1);
212 void on_spinBox_Res_VortexCenter_MoveingAverage_TimeWindow_frm_valueChanged(
int arg1);
214 void on_comboBox_Res_VectorFieldParam_ShiftType_currentIndexChanged(
int index);
216 void on_comboBox_Res_Histo_Type_currentIndexChanged(
int index);
218 void on_pushButton_Param_CropTime_To1s_clicked();
220 void on_comboBox_Res_FieldSumary_StatType_currentIndexChanged(
int index);
223 Ui::D_MAKRO_CiliaSphereTracker *ui;
224 bool ClosingPossible =
false;
234 QFileInfoList FIL_Videos;
235 QStringList QSL_Videos_Names;
236 QStringList QSL_Videos_Paths;
237 QStringList QSL_Videos_Suffix;
240 QDir DIR_SaveStackGraphics;
241 QDir DIR_SaveStackGraphics_Heatmap;
242 QDir DIR_SaveStackGraphics_Vortex;
243 QDir DIR_SaveStackGraphics_Chaos;
244 QDir DIR_SaveStackGraphics_Vector;
245 QDir DIR_SaveStackGraphics_Angle;
246 QDir DIR_SaveStackGraphics_Speed;
247 QDir DIR_SaveStackGraphics_Video;
248 QDir DIR_SaveStackPlot;
249 QDir DIR_SaveStackPlot_Overview;
250 QDir DIR_SaveStackPlot_Speed;
251 QDir DIR_SaveStackPlot_Angle;
252 QDir DIR_SaveStackPlot_Vortex;
253 QDir DIR_SaveStackOverview;
254 QDir DIR_SaveSingles;
255 QDir DIR_SaveCurrent;
256 QDir DIR_SaveCurrentTables;
257 QDir DIR_SaveCurrentGraphics;
258 QDir DIR_SaveCurrentPlot;
262 vector<Mat> vMA_ProcSteps;
264 Mat MA_Result_HeatmapLegend;
265 Mat MA_TimeProject_Sum;
266 Mat MA_TimeProject_Show;
267 Mat MA_TimeProject_LastBinary;
270 double conv_px2um = 1.00723;
271 double conv_um2px = 0.992817941;
274 vector<vector<Point2f>> vv_FrmObjPositions;
275 vector<vector<double>> vv_FrmObjShifts;
276 vector<vector<double>> vv_FrmObjAngles;
279 bool state_vortex_center_calced =
false;
281 vector<double> v_VortexCenterResiduals_Used;
282 vector<double> v_VortexCenterResiduals_All;
285 vector<double> vShiftsAll_px_frm;
286 vector<double> vShiftsAll_um_s;
287 vector<double> vShiftsAll_grad_s;
288 vector<double> vDistancesToVortexCenter_All_um;
289 vector<double> vAnglesAll_Rad;
290 vector<double> vAnglesAll_Grad;
293 vector<double> v_VideoStats_Shifts_px_frm;
294 vector<double> v_VideoStats_Shifts_um_s;
295 vector<double> v_VideoStats_Shifts_grad_s;
296 vector<double> v_VideoStats_DistancesToVortexCenter_All_um;
297 vector<double> v_VideoStats_Angles_Rad;
298 vector<double> v_VideoStats_Angles_Grad;
301 vector<vector<vector<vector<Point2f>>>> vvvv_XYFrmObjPositions;
302 vector<vector<vector<vector<double>>>> vvvv_XYFrmObjShifts;
303 vector<vector<vector<vector<double>>>> vvvv_XYFrmObjAngles;
304 vector<vector<vector<Point2f>>> vvv_XYObjPositions;
305 vector<vector<vector<double>>> vvv_XYObjShifts;
306 vector<vector<vector<double>>> vvv_XYObjAngles;
314 QChartView *pChartView_Results_Line;
315 QChartView *pChartView_Results_Poincare;
317 QChartView *pChartView_Results_Overview1_SpeedLine;
318 QChartView *pChartView_Results_Overview1_AngleLine;
319 QChartView *pChartView_Results_Overview1_SpeedPoincare;
320 QChartView *pChartView_Results_Overview1_AnglePoincare;
322 QChartView *pChartView_Results_Overview2_SpeedLinear_Line;
323 QChartView *pChartView_Results_Overview2_SpeedAngular_Line;
324 QChartView *pChartView_Results_Overview2_SpeedLinear_Hist;
325 QChartView *pChartView_Results_Overview2_SpeedAngular_Hist;
326 QChartView *pChartView_Results_Overview2_DistCenterIntersections_Hist;
329 int frame_start = 4 * 24;
330 int frame_end = (20 - 2) * 24;
331 int spatial_roi_width = 1250;
332 int spatial_roi_height = 1000;
334 int frame_start_ana = 4 * 24 + 12;
337 int movav_window_frames = 24;
338 int movav_current_start = 0;
341 bool state_VideosLoaded =
false;
342 bool state_VideoSelected =
false;
343 bool state_RoiTimeSelected =
false;
344 bool state_RoiSpaceSelected =
false;
345 bool state_ImgProcUp2date =
false;
346 bool state_VidProcUp2date =
false;
347 bool state_VidProcActive =
false;
348 void state_set_VidProcUp2date(
bool is_up2date);
349 bool state_TimeProjectInit =
false;
350 bool state_GridSamplingSplit =
false;
351 bool state_StackProcessing =
false;
352 bool state_StatSummaryCalced =
false;
353 bool state_StatSummaryCalced_angularSpeed =
false;
354 bool state_blockResultUpdate =
false;
357 QLabel *L_SB_ValAtPos;
361 void ERR(
int err, QString func =
"no specified", QString detail =
"no specified");
372 const QStringList QSL_ProcSteps = {
374 "Extract Green Channel",
389 HIST_DIST_CENTER_INTERSECTIONS,
394 DATA_TYPE_SPEED_LINEAR,
395 DATA_TYPE_SPEED_ANGULAR,
399 const QStringList QSL_DataTypes = {
409 HEAT_SPEED_LINEAR_AND_ANGLE,
412 const QStringList QSL_HeatmapTypes = {
413 "Linear speed as color (blue=slow, red=fast)",
414 "Angular speed as color (blue = slow, red = fast)",
415 "Angle as color (red=0°)",
416 "Linear speed as saturation (gray=slow, intense=fast), angle as color (red=0°)",
417 "Time as color (blue=old, red=new)"
425 const QStringList QSL_Background{
431 TIME_WINDOW_FULL_VIDEO,
432 TIME_WINDOW_MOVING_AVERAGE,
433 TIME_WINDOW_NUMBER_OF
435 const QStringList QSL_TimeWindow = {
441 PLOT_TIME_VIDEO_LENGTH,
446 const QStringList QSL_PlotTime {
456 PLOT_SUMMARY_NUMBER_OF
467 RES_GRAPHICS_TIME_SUM_PROJ,
468 RES_GRAPHICS_VECTORS,
469 RES_GRAPHICS_HEATMAP,
470 RES_GRAPHICS_FIELD_SUMMARY,
471 RES_GRAPHICS_VORTEX_CENTER,
472 RES_SPEED_STAT_CUSTOM,
473 RES_ANGLE_STAT_CUSTOM,
481 const QStringList QSL_ResTypes = {
482 "Graphics: Time Sum-Projection of Objects",
483 "Graphics: Movement Vectors",
485 "Graphics: Field Summary",
486 "Graphics: Vortex Center",
487 "Custom Statistical Speed Analysis",
488 "Custom Statistical Angle Analysis",
489 "Main Speed Analysis",
490 "Main Angle Analysis",
496 enum FIELD_SUMMARY_WEIGHTS {
497 FIELD_SUMMARY_WEIGHT_1,
498 FIELD_SUMMARY_WEIGHT_COUNT,
499 FIELD_SUMMARY_WEIGHT_SPEED,
500 FIELD_SUMMARY_WEIGHT_NUMBER_OF
502 const QStringList QSL_FieldSummaryWeights = {
509 #endif // D_MAKRO_CILIASPHERETRACKER_H
cv::Mat Mat
Definition: d_opencv_typedefs.h:28
@ ER_okay
Definition: d_enum.h:133
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
void Update_View()
D_Viewer::Update_View Starts the workflow to show an image.
Definition: d_viewer.cpp:2096
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
size_t size()
D_Geo_LineSet_2D::size number of lines in line set.
Definition: d_geo_lineset_2d.cpp:84
Definition: d_geo_lineset_2d.h:40
D_Geo_Point_2D intersection_ransac(double *least_deviation, double lines_needed_for_modell_rel, double p_good_guess, double p_outliers, bool subset_of_points_not_lines)
D_Geo_LineSet_2D::intersection_ransac Find best guess for intersections center of line set.
Definition: d_geo_lineset_2d.cpp:123
@ c_STAT_CIRC_BALANCE_PI_OR_180
Definition: d_enum.h:901
@ 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
static int Draw_Dot(Mat *pMA_Target, int x, int y, int d, uchar val)
Definition: d_img_proc.cpp:17060
const QString D_QS_Version
Definition: d_enum.h:18
static double MeanWeighted(vector< double > v_data, vector< double > v_weights, double nan_value=NAN)
Definition: d_stat.cpp:3664
@ c_STAT_CONST_1
Definition: d_enum.h:794
@ c_COL2MONO_GREEN
Definition: d_enum.h:653
int set_Size(Size size_out)
Definition: d_videowriter.cpp:16
static int Draw_CircleField(Mat *pMA_Target, vector< vector< double >> vv_XY_radius_value, vector< vector< double >> vv_XY_radius_error, uchar value=255, int circle_thickness=1, bool circles_filled=true, bool grid_add=false, int grid_thicknes=2, bool label_add=false, int label_thickness=2, double label_scale=1.0)
Definition: d_img_proc.cpp:17593
The D_Viewer class Display images (Mat) in QGraphicsView in the user interface.
Definition: d_viewer.h:58
static int Calc_Stats_Circ_Rad(vector< double > *v_stats, vector< double > v_data_a)
Definition: d_stat.cpp:460
void add_line_point_angle(D_Geo_Point_2D P_support, double angle_rad)
Definition: d_geo_lineset_2d.cpp:38
The D_Storage class Used for storing data. There is only one instance in D_MainWindow .
Definition: d_storage.h:49
static int Plot_Poincare_XY_Single(QChartView *pChartView, vector< double > v_Data, QString name_title, QString name_series, QString name_x, QString name_y, size_t shift_elements=1, bool show_dots=true, bool show_ellipse=true, bool show_line_YequalX=true, Qt::Alignment legend_pos=Qt::AlignTop)
Definition: d_plot.cpp:2340
Mat get_FramePos(int frame_number)
Definition: d_videoslicer.cpp:95
int init_VideoWriter()
Definition: d_videowriter.cpp:67
@ c_STAT_CIRC_CONST_PI
Definition: d_enum.h:921
static int Draw_ArcField(Mat *pMA_Target, vector< vector< double >> vv_XY_arc_angle_value, vector< vector< double >> vv_XY_arc_angle_error, vector< vector< double >> vv_XY_arc_orientation_value, vector< vector< double >> vv_XY_arc_radius_value, vector< vector< size_t > > vv_XY_draw_if_non_zero, uchar value=255, int thickness=3, int arc_draw_steps=360, bool grid_add=true, int grid_thicknes=2, bool label_add=false, int label_thickness=2, double label_scale=1.0)
Definition: d_img_proc.cpp:17517
@ c_STAT_CIRC_BALANCE
Definition: d_enum.h:900
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
static double Distance_AngleRad_Shortest_Signed(double a1, double a2)
Definition: d_math.cpp:1701
int get_Height()
Definition: d_videoslicer.h:83
void Update_Image(Mat *MA_new)
D_Viewer::Update_Image Set and show image.
Definition: d_viewer.cpp:2079
Definition: d_makro_ciliaspheretracker.h:76
void closeEvent(QCloseEvent *event)
Definition: d_makro_ciliaspheretracker.cpp:256
double distance(D_Geo_Point_2D P)
Definition: d_geo_point_2d.cpp:160
bool intersection_rect(D_Geo_Point_2D *P1, D_Geo_Point_2D *P2, double t, double b, double l, double r)
Definition: d_geo_line_2d.cpp:156
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
The D_VideoSlicer class Extracts frames from videos as images.
Definition: d_videoslicer.h:54
~D_MAKRO_CiliaSphereTracker()
Definition: d_makro_ciliaspheretracker.cpp:251
D_Geo_PointSet_2D intersections_pairwise()
D_Geo_LineSet_2D::intersections_pairwise calc pairwise intersections of lines in set.
Definition: d_geo_lineset_2d.cpp:93
@ c_STAT_CIRC_BALANCE_PI_OR_180_1SIGMA
Definition: d_enum.h:902
const double PI_0_5
Definition: d_enum.h:2538
bool vanishing(double delta=0)
Definition: d_geo_point_2d.cpp:135
int set_VideoPath(string S_VideoPath)
Definition: d_videoslicer.cpp:31
int get_Width()
Definition: d_videoslicer.h:82
void set_TW(QTableWidget *TW)
Definition: d_table.cpp:16
bool in_rect(size_t t, size_t b, size_t l, size_t r)
Definition: d_geo_point_2d.cpp:167
const QString D_QS_Release
Definition: d_enum.h:19
static function< double(vector< double >)> Function_SingleStat(int stat)
Definition: d_stat.cpp:683
D_MAKRO_CiliaSphereTracker(D_Storage *pStorage, QWidget *parent=nullptr)
Definition: d_makro_ciliaspheretracker.cpp:12
double get_FrameRateFps()
Definition: d_videoslicer.h:75
static int Calc_Centroids(vector< Point2f > *pvCentroids, Mat *pMA_In, int connectivity=8)
Definition: d_img_proc.cpp:16613
static int ExtremeValuesColor(Mat *pMA_Out, Mat *pMA_In, double rel_low=0.1, double rel_high=0.9, double gamma=1.0, bool color_low=false, bool color_high=true, bool zero_as_lowest=true)
Definition: d_img_proc.cpp:19664
The D_Stat class Calculate statistical quantities of vectors of values.
Definition: d_stat.h:38
static int Threshold_Auto(Mat *pMA_Out, Mat *pMA_In, int out_mode, double max_val, int auto_mode)
Definition: d_img_proc.cpp:6653
static int Calc_Stats_Circ_Grad(vector< double > *v_stats, vector< double > v_data_a)
Definition: d_stat.cpp:572
cv::Point Point
Definition: d_opencv_typedefs.h:35
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
void set_dir_M_CiliaSphereTracker(QString path)
Definition: d_storage.h:115
const QStringList QSL_StatListCirc
Definition: d_enum.h:924
The D_Geo_Line_2D class represents a 2D line and offers usefulls methods for standard tasks for 2D po...
Definition: d_geo_line_2d.h:43
Point CV_Point()
Definition: d_geo_point_2d.h:66
static int ObjectsMovement(vector< double > *pvShift_PxPerFrame, vector< double > *pvDirection_Rad, vector< Point2f > *pvPositions, vector< Mat > *pvMA_In, vector< vector< Point2f >> *pvvCentroids, double max_Shift_PxPerFrame=INFINITY, size_t index_NewImg=0, int connectivity=8)
Definition: d_img_proc.cpp:20212
@ c_STAT_STAN_DEV_TOTAL
Definition: d_enum.h:750
@ c_STAT_MEDIAN
Definition: d_enum.h:764
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
QImage * pQI()
Definition: d_viewer.h:84
double y()
Definition: d_geo_point_2d.h:63
static int ObjectsMovement_Heatmap(Mat *pMA_OutHeatmap, Mat *pMA_OutLegend, Mat *pMA_InValue, vector< vector< Point2f >> vv_FrmObjPositions, vector< vector< double >> vv_FrmObjShifts, vector< vector< double >> vv_FrmObjAngles, Point2f P_VortexCenter, double shift_scale, double value_scale, int blur_size_x, int blur_size_y, int mode, int legend_width, int legend_height, double legend_scale, double legend_thickness, int legend_examples=5, double min_rel=0.1, double max_rel=0.9, double frame2time=0.0417)
Definition: d_img_proc.cpp:20374
The D_VideoWriter class Creates a video from a sequence of images and saves it as a file.
Definition: d_videowriter.h:53
The D_Table class Display tables in QTableWidget in the user interface.
Definition: d_table.h:42
D_Geo_Point_2D scale(double factor)
Definition: d_geo_point_2d.cpp:95
double get_FrameTimeSec()
Definition: d_videoslicer.h:77
size_t size()
Definition: d_geo_pointset_2d.h:51
The D_Error_Handler class takes error codes from D_ERROR_ENUM and shows a popup if an error occures.
Definition: d_error_handler.h:38
static int Split(Mat *pMA_Out, Mat *pMA_In, unsigned int channel)
Definition: d_img_proc.cpp:4007
int EndVideoWriting()
Definition: d_videowriter.cpp:133
D_Geo_Point_2D point(size_t i)
Definition: d_geo_pointset_2d.h:53
Point2f CV_Point2f()
Definition: d_geo_point_2d.h:67
static int Plot_Line_XY_Multi(QChartView *pChartView, vector< vector< double >> vv_XY_Data, QString name_title, QString name_series, QString name_x, QString name_y, int x_trans=c_AXE_TRANS_LIN, int y_trans=c_AXE_TRANS_LIN, bool dots_visible=false, bool heat_color=false, bool heat_color_AllColors=false, Qt::Alignment legend_pos=Qt::AlignTop)
static int MinMax_of_Mat(Mat *pMA_In, double *min_ext, double *max_ext)
Definition: d_img_proc.cpp:2052
int set_PathOut(string S_OutPath)
Definition: d_videowriter.cpp:140
D_Geo_Point_2D intersection(double *deviation)
Definition: d_geo_lineset_2d.cpp:105
cv::Scalar Scalar
Definition: d_opencv_typedefs.h:30
static int Math_Special_IncreaseIfSet(Mat *pMA_Count, Mat *pMA_Check)
Definition: d_img_proc.cpp:14027
int set_FPS(double fps)
Definition: d_videowriter.cpp:42
@ c_STAT_CIRC_NUMBER_OF
Definition: d_enum.h:922
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
void set_ClosingPossible(bool closeable)
Definition: d_makro_ciliaspheretracker.h:85
double x()
Definition: d_geo_point_2d.h:62
void clear_data()
Definition: d_table.cpp:148
@ c_STAT_QUANTIL_10
Definition: d_enum.h:756
static int Insert(Mat *pMA_Target, Mat *pMA_Insert, int offset_x, int offset_y)
Definition: d_img_proc.cpp:2405
void set_GV(QGraphicsView *GV_ui)
Definition: d_viewer.cpp:49
static int Plot_Empty(QChartView *pChartView, QString QS_Text="No_Additional_Information")
Definition: d_plot.cpp:16
static function< double(vector< double >)> Function_SingleStat_Circ_Rad(int stat)
Definition: d_stat.cpp:2825
Definition: d_analysiswindow.h:58
@ ER_other
Definition: d_enum.h:134
Definition: d_geo_pointset_2d.h:38
@ c_STAT_CIRC_MEAN_ANG
Definition: d_enum.h:898
D_Geo_Point_2D add_inhomo(D_Geo_Point_2D P)
Definition: d_geo_point_2d.cpp:107
@ c_MARKER_SYMBOL_CROSS
Definition: d_enum.h:2040
@ c_STAT_STAN_DEV_SAMPLE
Definition: d_enum.h:751
static int Draw_Grid(Mat *pMA_Target, int nx, int ny, bool lines_add, int grid_thickness, bool label_add, int label_thickness, double label_scale, double value)
Definition: d_img_proc.cpp:17899
static double Mean(vector< double > v_data, double nan_value=NAN)
Definition: d_stat.cpp:3650
double get_DurationSec()
Definition: d_videoslicer.h:79
static int Plot_Hist_WithStats_Color(QChartView *pChartView, vector< double > v_DataHist, vector< double > v_DataColor, function< double(vector< double >)> F_ColorStat_Hue, function< double(vector< double >)> F_ColorStat_Value, double min_x_hist, double max_x_hist, double min_x_color_hue, double max_x_color_hue, double min_x_color_value, double max_x_color_value, size_t n_classes, double mean_hist, double std_hist, 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:632
@ c_STAT_CONST_0
Definition: d_enum.h:793
static int Convert_Color(Mat *pMA_Out, Mat *pMA_In, int cvt_mode)
Definition: d_img_proc.cpp:2524
void connect_Zoom(D_Viewer *viewer)
Definition: d_viewer.cpp:128
const QStringList QSL_StatList
Definition: d_enum.h:797
The D_PDF_Writer class Create PDFs by calling simple to use methods.
Definition: d_pdf_writer.h:55
double get_frame_2_timeSec()
Definition: d_videoslicer.h:89
int AddFrame(Mat frame2add)
Definition: d_videowriter.cpp:101
@ c_STAT_NUMBER_OF_STATS
Definition: d_enum.h:795
const double Rad2Grad
Definition: d_enum.h:2541
QString Save_Image()
D_Viewer::Save_Image Saves the image at FI_LastSaved.
Definition: d_viewer.cpp:2157
D_Geo_Line_2D line(size_t i)
Definition: d_geo_lineset_2d.cpp:75
const int BORDER_DEFAULT
Definition: d_opencv_typedefs.h:78
bool is_Init()
Definition: d_videowriter.cpp:90
QDir * dir_M_CiliaSphereTracker()
Definition: d_storage.h:87
The D_Geo_Point_2D class represents a 2D point and offers usefulls methods for standard tasks for 2D ...
Definition: d_geo_point_2d.h:43
Mat * get_Adress(size_t pos)
Definition: d_storage.h:54
static int Filter_Gauss(Mat *pMA_Out, Mat *pMA_In, int size_x, int size_y, int border, double sigma_x, double sigma_y)
Definition: d_img_proc.cpp:9083
static int Convert_Color2Mono(Mat *pMA_Out, Mat *pMA_In, int col2mono_code)
Definition: d_img_proc.cpp:2662
int set_isColor(bool is_color)
Definition: d_videowriter.cpp:56
static int Calc_Stats(vector< double > *v_stats, vector< double > v_data, bool calc_sorted)
Definition: d_stat.cpp:16
void resizeEvent(QResizeEvent *event)
Definition: d_makro_ciliaspheretracker.cpp:270
@ c_STAT_CIRC_CONST_0
Definition: d_enum.h:919
@ c_STAT_MEAN_ARITMETIC
Definition: d_enum.h:740
static int Draw_VectorField(Mat *pMA_Target, vector< vector< double >> vv_XY_length_value, vector< vector< double >> vv_XY_angle_value, vector< vector< double >> vv_XY_length_error, vector< vector< double >> vv_XY_angle_error, uchar value=255, int vector_thickness=3, int error_steps=360, int error_thickness=1, bool grid_add=true, int grid_thicknes=2, bool label_add=false, int label_thickness=2, double label_scale=1.0)
Definition: d_img_proc.cpp:17443
long int get_FrameCount()
Definition: d_videoslicer.h:81