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_viewer.h
Go to the documentation of this file.
1 /************************************
2  * added: 02.11.2018 *
3  * author: David Eilenstein *
4  * contact: D.Eilenstein@gsi.de *
5  * project: ImageD *
6  * facility: GSI Darmstadt, Ger *
7  ************************************/
8 
9 #ifndef D_VIEWER_H
10 #define D_VIEWER_H
11 
12 //own
13 #include <d_enum.h>
14 #include <scenemousetrack.h>
15 #include <d_img_proc.h>
16 #include <d_error_handler.h>
17 #include <d_plot.h>
18 
19 //general
20 #include <iostream>
21 #include <vector>
22 
23 //Qt
24 #include <QObject>
25 #include <QImage>
26 #include <QPixmap>
27 #include <QGraphicsScene>
28 #include <QGraphicsView>
29 #include <QString>
30 #include <QDebug>
31 #include <QMessageBox>
32 #include <QFileDialog>
33 #include <QFileInfo>
34 #include <QDir>
35 #include <QElapsedTimer>
36 #include <QScrollBar>
37 
38 //Qt-Charts
39 #include <QChartView>
40 #include <QChart>
41 
42 //openCV
43 #include <opencv2/core/core.hpp>
44 #include <opencv2/highgui/highgui.hpp>
45 #include <opencv2/imgproc/imgproc.hpp>
46 
47 //namespaces
48 using namespace std;
49 //using namespace cv; (prohibited because of abigous names with qtdatavisualization)
50 #include <d_opencv_typedefs.h>
51 
57 class D_Viewer : public QWidget
58 {
59  Q_OBJECT
60 
61 public:
62 
63  //constructors
64  D_Viewer();
65  //D_Viewer(D_Viewer &copy_viewer);
66  D_Viewer(QGraphicsView *GV_ui);
67  D_Viewer(QGraphicsView *GV_ui, QString viewer_name);
68  D_Viewer(QGraphicsView *GV_ui, QDir default_dir);
69  D_Viewer(QGraphicsView *GV_ui, QDir default_dir, QString viewer_name);
70 
71  //setter
72  void set_GV(QGraphicsView *GV_ui);
73  void set_CV(QtCharts::QChartView *CV_ui);
74  void set_Name(QString viewer_name);
75  void clear_Image();
76 
77  //connector
78  void connect_PointRecord(D_Viewer *viewer);
79  void connect_Zoom(D_Viewer *viewer);
80  void set_zoom_connection_active(int active = 1) {zoom_connection_active = static_cast<bool>(active);}
81 
82  //get pointers to members
83  Mat *pMA() {return &MA_Data;}
84  QImage *pQI() {return &QI_View;}
85  QPixmap *pPX() {return &PX_View;}
86  SceneMouseTrack *pSC() {return &SC_View;}
87  QGraphicsView *pGV() {return GV_View;}
88 
89  //image attributes
90  QString Type_MA() {return D_Img_Proc::Type_of_Mat(&MA_Data);}
91  QString Type_QI() {return D_Img_Proc::Type_of_QImage(&QI_View);}
92  unsigned int img_width() {return MA_Data.cols;}
93  unsigned int img_height() {return MA_Data.rows;}
94  double img_val_min();
95  double img_val_max();
96  double img_val_range();
97 
98  //view attributes
99  double scale_f_x() {return scale_x;}
100  double scale_f_y() {return scale_y;}
101  double zoom_x_rel() {return cursor_x_rel;}
102  double zoom_y_rel() {return cursor_y_rel;}
103  double zoom_fact() {return zoom_factor_cur;}
104 
105  QString name() {return QS_Name;}
106 
107 private:
108  void Init (QGraphicsView *GV_ui);
109 
110  //Processing image->view
111  void Proc_ShowImgOrPlot ();
112  void Proc_MA_2_QI ();
113  void Proc_DrawOverlay2QI ();
114  int Proc_MA_2_QI_NoZoom_NoVistrafo ();
115  int Proc_MA_2_QI_NoZoom_ButVistrafo ();
116  int Proc_MA_2_QI_Zoom_ButNoVistrafo ();
117  int Proc_MA_2_QI_Zoom_And_Vistrafo ();
118  void Proc_QI_2_PX ();
119  void Proc_PX_Scale ();
120  void Proc_PX_2_SC ();
121  void Proc_Plot ();
122 
123  //check if mouse is over image
124  bool Is_MouseOverScene (int x, int y);
125  bool CalcRelativePos (int x, int y);
126  bool Scene2OriginalXY_Scale (int *x, int *y);
127  bool Scene2OriginalXY_Offset (int *x, int *y);
128  bool Scene2OriginalXY_Transform (int *x, int *y);
129 
130  //Error Handling
131  D_Error_Handler ER;
132  void ERR (int err, QString func = "not specified", QString detail = "not specified");
133 
134 private slots:
135 
136  //zoom (connected with signals of scene while ctrl is pressed)
137  void Zoom_Pos (int x, int y);
138  void Zoom_In ();
139  void Zoom_Out ();
140  void Zoom_Reset ();
141  void Zoom_Update ();
142 
143  void ClickRecord_DrawOverlay ();
144  vector<Point> ScaleContour (vector<Point> vContour, double scale, Point scaled_offset);
145  vector<vector<Point>> ScaleContours (vector<vector<Point>> vvContours, double scale, Point scaled_offset);
146  //vector<Point> LimitContourByImgSize (vector<Point> vContour);
147  //vector<vector<Point>> LimitContoursByImgSize (vector<vector<Point>> vvContours);
148 
149 public slots:
150 
151  //Update image/view
152  void Set_Image (Mat *MA_new);
153  void Update_Image (Mat *MA_new);
154  void Update_Image ();
155  void Update_View ();
156 
157  //save image
158  QString Save_Image_Dialog ();
159  QString Save_Image_Dialog (QString path_default);
160  QString Save_Image ();
161  QString Save_Image (QString path);
162 
163  //Viewer options
164  void Set_ViewerMode (int mode);
165  void Set_Transformation_Mode (bool smooth);
166  void Set_Aspect_Mode (bool keep);
167  void Set_PlotType (int mode) {PlotType = mode; Proc_ShowImgOrPlot();}
168  void Set_VisTrafo_ActiveInt (int active = 1) {Set_VisTrafo_ActiveBool(active);}
169  void Set_VisTrafo_ActiveBool (bool active = true) {vis_trafo_active = active; Proc_ShowImgOrPlot();}
170  void Set_VisTrafo_Gamma (double gamma = 1) {vis_trafo_gamma = gamma; Proc_ShowImgOrPlot();}
171  void Set_VisTrafo_SpreadInMin(double spread_min = 0) {vis_trafo_in_min = spread_min; Proc_ShowImgOrPlot();}
172  void Set_VisTrafo_SpreadInMax(double spread_max = 255) {vis_trafo_in_max = spread_max; Proc_ShowImgOrPlot();}
173  void Set_VisTrafo_Center (double center = 0) {vis_trafo_center = center; Proc_ShowImgOrPlot();}
174  void Set_VisTrafo_Divisor (double divisor = 0) {vis_trafo_divisor = divisor; Proc_ShowImgOrPlot();}
175  void Set_VisTrafo_Anchor (double anchor = 127.5) {vis_trafo_anchor = anchor; Proc_ShowImgOrPlot();}
176  void Set_VisTrafo_Range (double range = 127.5) {vis_trafo_range = range; Proc_ShowImgOrPlot();}
177  void Set_VisTrafo_Mode_Crop (int mode = c_VIS_TRAFO_CROP_DYNAMIC) {vis_trafo_mode_crop = mode; Proc_ShowImgOrPlot();}
178  void Set_VisTrafo_Mode_Trafo (int mode = c_VIS_TRAFO_LINEAR) {vis_trafo_mode_trafo = mode; Proc_ShowImgOrPlot();}
179  void Set_VisTrafo_Mode_Anchor(int mode = c_VIS_TRAFO_ANCHOR_DYNAMIC) {vis_trafo_mode_anchor = mode; Proc_ShowImgOrPlot();}
180  void Set_VisTrafo_Mode_Range (int mode = c_VIS_TRAFO_RANGE_DYNAMIC) {vis_trafo_mode_range = mode; Proc_ShowImgOrPlot();}
181  void Set_VisTrafo_Mode_Complex(int mode = c_COMPLEX2REAL_RE_IM) {vis_trafo_mode_complex = mode; Proc_ShowImgOrPlot();}
182  void Set_Zoom (double x_rel, double y_rel, double factor);
183  void Set_Zoom_Extern (double x_rel, double y_rel, double factor);
184  void Set_ZoomReset ();
185  void Set_ZoomReset_Extern ();
186  void Set_Name (QString name) {QS_Name = name;}
187 
188  //slots recieved on actions in scene
189  void MouseMoved (int x, int y);
190  void MouseClicked (int x, int y);
191  void MouseClicked_Left (int x, int y);
192  void MouseClicked_Right (int x, int y);
193  void MouseClicked_Mid (int x, int y);
194 
195  //mouse pos request
196  Point MousePos () {return P_LastMousePos;}
197  int MousePos_X () {return P_LastMousePos.x;}
198  int MousePos_Y () {return P_LastMousePos.y;}
199 
200  //click recording for drawing
201  void ClickRecord_Start ();
202  void ClickRecord_Start_RecieveOnly ();
203  bool ClickRecord_Record (Point P);
204  bool ClickRecord_Record (int x, int y);
205  bool ClickRecord_Record_RecieveOnly (Point P);
206  bool ClickRecord_Record_RecieveOnly (int x, int y);
207  void ClickRecord_Clear ();
208  void ClickRecord_Clear_RecieveOnly ();
209  void ClickRecord_Quit ();
210  void ClickRecord_Quit_RecieveOnly ();
211  vector<Point> ClickRecord_GetPoints ();
212  vector<Point> ClickRecord_GetPoints (double scale_factor, Point scaled_offset);
213  vector<Point> ClickRecord_GetPoints_Ellipse (bool limit_by_img_size = true);
214  vector<Point> ClickRecord_GetPoints_Ellipse (double scale_factor, Point scaled_offset, bool limit_by_img_size = true);
215  vector<Point> ClickRecord_GetPoints_Polygon ();
216  vector<Point> ClickRecord_GetPoints_Polygon (double scale, Point scaled_offset);
217  vector<Point> ClickRecord_GetPoints_ConvexHull ();
218  vector<Point> ClickRecord_GetPoints_ConvexHull (double scale, Point scaled_offset);
219  vector<vector<Point>> ClickRecord_GetPoints_Circles (double radius);
220  vector<vector<Point>> ClickRecord_GetPoints_Circles (double radius, double scale, Point scaled_offset);
221  RotatedRect ClickRecord_Ellipse ();
222  RotatedRect ClickRecord_Ellipse (double scale, Point scaled_offset);
223  void ClickRecord_ChangeOverlayColor (QColor color);
224  void ClickRecord_ChangeOverlayPointDiameter(int d);
225  size_t ClickRecord_RecordedPointsCount();
226 
227 signals:
228 
229  //mouse event
230  void MouseMoved ();
231  void MouseMoved_Pos (int x, int y);
232  void MouseMoved_Pos (QString pos);
233  void MouseMoved_Value (vector<double> val);
234  void MouseMoved_Value (QString val);
235  void MouseClicked ();
239  void MouseClicked_Pos (int x, int y);
240  void MouseClickedLeft_Pos (int x, int y);
241  void MouseClickedRight_Pos (int x, int y);
242  void MouseClickedMid_Pos (int x, int y);
243  void MouseClicked_Pos (QString pos);
244  void MouseClicked_Value (vector<double> val);
245  void MouseClicked_Value (QString val);
246 
247  //image event
248  void TypeChanged ();
249  void TypeChanged_QI ();
250  void TypeChanged_QI (QString type);
251  void TypeChanged_MA ();
252  void TypeChanged_MA (QString type);
254  void Image_Size_Changed (int width, int height);
255  void Image_Size_Changed (QString size);
256 
257  //view event
258  void View_Updated ();
259  void Scaled ();
260  void Scaled_Factor (double f_x, double f_y);
261  void Scaled_Factor (QString scale);
262  void Scaled_Factor_Prz (QString scale_prz);
263  void Zoomed (double x_rel, double y_rel, double factor);
264  void Zoomed_Reset ();
265 
266  //times
267  void Time_View_Update (unsigned int time_ms);
268  void Time_Image_Cvt (unsigned int time_ms);
269 
270  //saved
271  void Image_Saved ();
272  void Image_Saved (QString path);
273 
274  //click recording for drawing
276  void ClickRecordSignal_Record (int x, int y);
280  void ClickRecordSignal_GetPoints (vector<Point> vPoints);
281  void ClickRecordSignal_GetPoints_Ellipse (vector<Point> vPointsEllipse);
282  void ClickRecordSignal_GetPoints_Polygon (vector<Point> vPointsPolygon);
283  void ClickRecordSignal_GetPoints_ConvexHull (vector<Point> vPointsConvexHull);
284  void ClickRecordSignal_GetPoints_Circles (vector<vector<Point>> vvPointsCircles);
286 
287 private: //members
288 
289  //mode
290  int ViewerMode = c_VIEWER_MODE_IMG;
291 
292  //======================Plot======================== (newer than Image version)
293 
294  QtCharts::QChartView *CV_View;
295  bool state_CV_set = false;
296  int PlotType = c_PLOT_SIMPLE_LINE;
297  QString QS_DimX = "X";
298  double PlotX_Offset = 0;
299  double PlotX_Step = 1;
300  QString QS_DimY = "Data";
301 
302 
303 
304  //======================Image=======================
305 
306  //basic elements
307  Mat MA_Data;
308  Mat MA_Zoom;
309  Mat MA_VisTrafo;
310  QImage QI_View;
311  QPixmap PX_View;
312  SceneMouseTrack SC_View;
313  QGraphicsView *GV_View;
314 
315  //paths
316  QDir DIR_Default;
317  QFileInfo FI_LastSaved;
318 
319  //view attributes
320  bool scale;
321  double scale_x = 1;
322  double scale_y = 1;
323 
324  Qt::TransformationMode TransMode;
325  Qt::AspectRatioMode AspectMode;
326 
327  double cursor_x_rel = 0;
328  double cursor_y_rel = 0;
329  int zoom_offset_x = 0;
330  int zoom_offset_y = 0;
331  int zoom_width = 1;
332  int zoom_height = 1;
333 
334  bool zoom_active = false;
335  bool zoom_changed = false;
336  bool zoom_connection_active = true;
337  double zoom_step = 1.10;
338  double zoom_factor_cur = 1.00;
339  double zoom_factor_old = 1.00;
340  double zoom_factor_min = 0.01;
341  vector<D_Viewer*> v_ConnectedViewersZoom;
342 
343  bool vis_trafo_active = false;
344  double vis_trafo_in_min = 0;
345  double vis_trafo_in_max = 255;
346  double vis_trafo_gamma = 1.0;
347  double vis_trafo_center = 0.0;
348  double vis_trafo_divisor = 1.0;
349  double vis_trafo_anchor = 0;
350  double vis_trafo_range = 1;
351  int vis_trafo_mode_crop = c_VIS_TRAFO_CROP_DYNAMIC;
352  int vis_trafo_mode_trafo = c_VIS_TRAFO_LINEAR;
353  int vis_trafo_mode_anchor = c_VIS_TRAFO_ANCHOR_DYNAMIC;
354  int vis_trafo_mode_range = c_VIS_TRAFO_RANGE_DYNAMIC;
355  int vis_trafo_mode_complex = c_COMPLEX2REAL_RE_IM;
356 
357  //other
358  QString QS_Name = "Viewer";
359 
360  //times
361  QElapsedTimer QET_view;
362  unsigned int time_view;
363  QElapsedTimer QET_convert;
364  unsigned int time_convert;
365 
366  //point recording
367  bool click_recording_active = false;
368  vector<Point> vClicksRecorded;
369  vector<D_Viewer*> v_ConnectedViewersClickRecord;
370  QColor ClickRecord_OverlayColor = Qt::white;
371  double ClickRecord_PointDiameter = 1;
372 
373  //other
374  Point P_LastMousePos = Point(0,0);
375 };
376 
377 
378 #endif // D_VIEWER_H
D_Viewer::ClickRecordSignal_GetPoints_ConvexHull
void ClickRecordSignal_GetPoints_ConvexHull(vector< Point > vPointsConvexHull)
Mat
cv::Mat Mat
Definition: d_opencv_typedefs.h:28
ER_okay
@ ER_okay
Definition: d_enum.h:133
D_Img_Proc::Type_of_Mat
static QString Type_of_Mat(Mat *pMA_In)
Definition: d_img_proc.cpp:363
D_Viewer::pPX
QPixmap * pPX()
Definition: d_viewer.h:85
D_Viewer::zoom_x_rel
double zoom_x_rel()
Definition: d_viewer.h:101
D_Viewer::Update_View
void Update_View()
D_Viewer::Update_View Starts the workflow to show an image.
Definition: d_viewer.cpp:2096
D_Viewer::ClickRecordSignal_Ellipse
void ClickRecordSignal_Ellipse(RotatedRect ellipse)
D_Viewer::TypeChanged
void TypeChanged()
D_Img_Proc::Visualize_to8bit
static int Visualize_to8bit(Mat *pMA_Out, Mat *pMA_In, int mode_crop, int mode_trafo, int mode_anchor, int mode_range, double val_anchor, double val_range, double val_min, double val_max, double val_gamma, double val_center, double val_scale, bool keep_min_max=false, int mode_complex=c_COMPLEX2REAL_RE_IM)
Definition: d_img_proc.cpp:5082
D_Viewer::Time_View_Update
void Time_View_Update(unsigned int time_ms)
Vec3i
cv::Vec3i Vec3i
Definition: d_opencv_typedefs.h:54
D_Viewer::img_width
unsigned int img_width()
Definition: d_viewer.h:92
D_Viewer::Set_VisTrafo_Anchor
void Set_VisTrafo_Anchor(double anchor=127.5)
Definition: d_viewer.h:175
D_Viewer::Set_Zoom
void Set_Zoom(double x_rel, double y_rel, double factor)
D_Viewer::Set_Zoom Set zoom parameters and apply zoom.
Definition: d_viewer.cpp:2249
D_Viewer::Set_VisTrafo_Mode_Complex
void Set_VisTrafo_Mode_Complex(int mode=c_COMPLEX2REAL_RE_IM)
Definition: d_viewer.h:181
D_Viewer::ClickRecordSignal_GetPoints_Polygon
void ClickRecordSignal_GetPoints_Polygon(vector< Point > vPointsPolygon)
D_Viewer::TypeChanged_MA
void TypeChanged_MA()
D_Viewer::Image_Size_Changed
void Image_Size_Changed()
Point2f
cv::Point2f Point2f
Definition: d_opencv_typedefs.h:37
Vec2i
cv::Vec2i Vec2i
Definition: d_opencv_typedefs.h:48
D_Viewer::ClickRecord_Start
void ClickRecord_Start()
Definition: d_viewer.cpp:2431
D_Viewer::Set_VisTrafo_ActiveBool
void Set_VisTrafo_ActiveBool(bool active=true)
Definition: d_viewer.h:169
d_viewer.h
d_plot.h
D_Viewer::Set_Aspect_Mode
void Set_Aspect_Mode(bool keep)
D_Viewer::Set_Aspect_Mode Set aspect ratio handling mode to fit an image to a viewer of different siz...
Definition: d_viewer.cpp:2227
D_Viewer::ClickRecord_Quit_RecieveOnly
void ClickRecord_Quit_RecieveOnly()
Definition: d_viewer.cpp:2529
Vec3d
cv::Vec3d Vec3d
Definition: d_opencv_typedefs.h:52
D_Viewer::Type_MA
QString Type_MA()
Definition: d_viewer.h:90
Vec4d
cv::Vec4d Vec4d
Definition: d_opencv_typedefs.h:58
D_Viewer::MouseClickedMid_Pos
void MouseClickedMid_Pos(int x, int y)
D_Viewer
The D_Viewer class Display images (Mat) in QGraphicsView in the user interface.
Definition: d_viewer.h:58
D_Viewer::MouseMoved_Value
void MouseMoved_Value(QString val)
scenemousetrack.h
D_Viewer::Time_Image_Cvt
void Time_Image_Cvt(unsigned int time_ms)
Vec2w
cv::Vec2w Vec2w
Definition: d_opencv_typedefs.h:50
Vec4s
cv::Vec4s Vec4s
Definition: d_opencv_typedefs.h:61
LINE_8
const int LINE_8
Definition: d_opencv_typedefs.h:141
Vec4f
cv::Vec4f Vec4f
Definition: d_opencv_typedefs.h:59
c_VIEWER_MODE_IMG
@ c_VIEWER_MODE_IMG
Definition: d_enum.h:375
D_Viewer::ClickRecord_Clear_RecieveOnly
void ClickRecord_Clear_RecieveOnly()
Definition: d_viewer.cpp:2515
D_Viewer::name
QString name()
Definition: d_viewer.h:105
D_Viewer::Set_VisTrafo_SpreadInMin
void Set_VisTrafo_SpreadInMin(double spread_min=0)
Definition: d_viewer.h:171
D_Viewer::MousePos_Y
int MousePos_Y()
Definition: d_viewer.h:198
D_Viewer::ClickRecord_Record_RecieveOnly
bool ClickRecord_Record_RecieveOnly(Point P)
Definition: d_viewer.cpp:2477
Vec3b
cv::Vec3b Vec3b
Definition: d_opencv_typedefs.h:51
D_Viewer::Update_Image
void Update_Image()
D_Viewer::Update_Image Starts the workflow to process and show an image as image or plot.
Definition: d_viewer.cpp:2088
D_Viewer::Set_VisTrafo_Mode_Anchor
void Set_VisTrafo_Mode_Anchor(int mode=c_VIS_TRAFO_ANCHOR_DYNAMIC)
Definition: d_viewer.h:179
D_Viewer::MouseMoved_Pos
void MouseMoved_Pos(int x, int y)
D_Viewer::MouseClicked_Value
void MouseClicked_Value(QString val)
Vec2b
cv::Vec2b Vec2b
Definition: d_opencv_typedefs.h:45
D_Viewer::Set_VisTrafo_SpreadInMax
void Set_VisTrafo_SpreadInMax(double spread_max=255)
Definition: d_viewer.h:172
D_Viewer::TypeChanged_QI
void TypeChanged_QI(QString type)
D_Viewer::Set_VisTrafo_Gamma
void Set_VisTrafo_Gamma(double gamma=1)
Definition: d_viewer.h:170
D_Viewer::MouseClicked_Left
void MouseClicked_Left(int x, int y)
Definition: d_viewer.cpp:2392
c_VIS_TRAFO_LINEAR
@ c_VIS_TRAFO_LINEAR
Definition: d_enum.h:697
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_Viewer::scale_f_y
double scale_f_y()
Definition: d_viewer.h:100
c_VIEWER_MODE_NUMBER_OF
@ c_VIEWER_MODE_NUMBER_OF
Definition: d_enum.h:377
Vec3w
cv::Vec3w Vec3w
Definition: d_opencv_typedefs.h:56
D_Viewer::ClickRecord_GetPoints_Polygon
vector< Point > ClickRecord_GetPoints_Polygon()
Definition: d_viewer.cpp:2586
D_Viewer::MouseClicked_Mid
void MouseClicked_Mid(int x, int y)
Definition: d_viewer.cpp:2419
Vec4w
cv::Vec4w Vec4w
Definition: d_opencv_typedefs.h:62
c_VIEWER_MODE_PLOT
@ c_VIEWER_MODE_PLOT
Definition: d_enum.h:376
CHAIN_APPROX_NONE
const int CHAIN_APPROX_NONE
Definition: d_opencv_typedefs.h:99
D_Viewer::ClickRecord_Start_RecieveOnly
void ClickRecord_Start_RecieveOnly()
Definition: d_viewer.cpp:2438
D_Viewer::Scaled_Factor
void Scaled_Factor(QString scale)
D_Viewer::Save_Image_Dialog
QString Save_Image_Dialog()
D_Viewer::Save_Image_Dialog Opens a dialog to save the show image (generated default path)
Definition: d_viewer.cpp:2105
c_PLOT_SIMPLE_POINT
@ c_PLOT_SIMPLE_POINT
Definition: d_enum.h:385
c_PLOT_SIMPLE_SPLINE_POINT
@ c_PLOT_SIMPLE_SPLINE_POINT
Definition: d_enum.h:389
D_Viewer::ClickRecordSignal_GetPoints_Circles
void ClickRecordSignal_GetPoints_Circles(vector< vector< Point >> vvPointsCircles)
D_Viewer::Set_VisTrafo_Divisor
void Set_VisTrafo_Divisor(double divisor=0)
Definition: d_viewer.h:174
Point
cv::Point Point
Definition: d_opencv_typedefs.h:35
Vec2s
cv::Vec2s Vec2s
Definition: d_opencv_typedefs.h:49
D_Viewer::ClickRecord_GetPoints_Ellipse
vector< Point > ClickRecord_GetPoints_Ellipse(bool limit_by_img_size=true)
Definition: d_viewer.cpp:2547
D_Viewer::set_zoom_connection_active
void set_zoom_connection_active(int active=1)
Definition: d_viewer.h:80
c_PLOT_SIMPLE_SPLINE
@ c_PLOT_SIMPLE_SPLINE
Definition: d_enum.h:388
D_Viewer::MouseClicked
void MouseClicked()
D_Viewer::Zoomed
void Zoomed(double x_rel, double y_rel, double factor)
D_Viewer::ClickRecord_ChangeOverlayColor
void ClickRecord_ChangeOverlayColor(QColor color)
Definition: d_viewer.cpp:2700
D_Viewer::ClickRecord_Record
bool ClickRecord_Record(Point P)
Definition: d_viewer.cpp:2444
D_Viewer::Scaled_Factor
void Scaled_Factor(double f_x, double f_y)
D_Viewer::pQI
QImage * pQI()
Definition: d_viewer.h:84
D_Viewer::Set_VisTrafo_Mode_Range
void Set_VisTrafo_Mode_Range(int mode=c_VIS_TRAFO_RANGE_DYNAMIC)
Definition: d_viewer.h:180
d_img_proc.h
D_Viewer::set_Name
void set_Name(QString viewer_name)
Definition: d_viewer.cpp:69
D_Img_Proc::ValAtPix
static int ValAtPix(vector< double > *v_value, Mat *pMA_In, size_t x_pos, size_t y_pos)
Definition: d_img_proc.cpp:2192
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_Viewer::Set_VisTrafo_ActiveInt
void Set_VisTrafo_ActiveInt(int active=1)
Definition: d_viewer.h:168
D_Viewer::img_val_min
double img_val_min()
Definition: d_viewer.cpp:146
Vec4b
cv::Vec4b Vec4b
Definition: d_opencv_typedefs.h:57
FILLED
const int FILLED
Definition: d_opencv_typedefs.h:143
D_Viewer::ClickRecord_Quit
void ClickRecord_Quit()
Definition: d_viewer.cpp:2521
Vec3f
cv::Vec3f Vec3f
Definition: d_opencv_typedefs.h:53
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
Vec2f
cv::Vec2f Vec2f
Definition: d_opencv_typedefs.h:47
D_Viewer::MouseMoved_Pos
void MouseMoved_Pos(QString pos)
D_Viewer::D_Viewer
D_Viewer()
Definition: d_viewer.cpp:11
D_Viewer::ClickRecordSignal_RecordedPointsCount
void ClickRecordSignal_RecordedPointsCount(size_t count)
D_Viewer::MouseClickedRight_Pos
void MouseClickedRight_Pos(int x, int y)
D_Viewer::Set_ViewerMode
void Set_ViewerMode(int mode)
D_Viewer::Set_ViewerMode Set view mode to image or plot and show image or plot.
Definition: d_viewer.cpp:2185
D_Viewer::ClickRecordSignal_Record
void ClickRecordSignal_Record(int x, int y)
RETR_TREE
const int RETR_TREE
Definition: d_opencv_typedefs.h:97
D_Img_Proc::Zoom
static int Zoom(Mat *pMA_Out, Mat *pMA_In, double x_rel, double y_rel, double factor)
Definition: d_img_proc.cpp:5649
D_Viewer::Set_VisTrafo_Range
void Set_VisTrafo_Range(double range=127.5)
Definition: d_viewer.h:176
D_Viewer::MouseClickedLeft_Pos
void MouseClickedLeft_Pos(int x, int y)
Scalar
cv::Scalar Scalar
Definition: d_opencv_typedefs.h:30
D_Viewer::ClickRecord_GetPoints
vector< Point > ClickRecord_GetPoints()
Definition: d_viewer.cpp:2536
D_Viewer::ClickRecord_ChangeOverlayPointDiameter
void ClickRecord_ChangeOverlayPointDiameter(int d)
Definition: d_viewer.cpp:2706
D_Viewer::img_val_range
double img_val_range()
Definition: d_viewer.cpp:172
QSL_ViewerMode
const QStringList QSL_ViewerMode
Definition: d_enum.h:379
D_Viewer::zoom_y_rel
double zoom_y_rel()
Definition: d_viewer.h:102
D_Viewer::ClickRecordSignal_Quit
void ClickRecordSignal_Quit()
ER_size_bad
@ ER_size_bad
Definition: d_enum.h:140
D_Viewer::pGV
QGraphicsView * pGV()
Definition: d_viewer.h:87
D_Viewer::Set_VisTrafo_Mode_Trafo
void Set_VisTrafo_Mode_Trafo(int mode=c_VIS_TRAFO_LINEAR)
Definition: d_viewer.h:178
D_Viewer::MouseClicked_Value
void MouseClicked_Value(vector< double > val)
D_Viewer::MouseClicked_Pos
void MouseClicked_Pos(int x, int y)
D_Viewer::Scaled_Factor_Prz
void Scaled_Factor_Prz(QString scale_prz)
D_Viewer::ClickRecordSignal_Clear
void ClickRecordSignal_Clear()
Vec2d
cv::Vec2d Vec2d
Definition: d_opencv_typedefs.h:46
D_Math::Log_Centered
static function< double(double val_in)> Log_Centered(double center, double divisor)
Definition: d_math.cpp:1780
D_Viewer::Image_Saved
void Image_Saved()
Vec4i
cv::Vec4i Vec4i
Definition: d_opencv_typedefs.h:60
c_COMPLEX2REAL_RE_IM
@ c_COMPLEX2REAL_RE_IM
Definition: d_enum.h:978
D_Viewer::ClickRecordSignal_Start
void ClickRecordSignal_Start()
D_Viewer::img_height
unsigned int img_height()
Definition: d_viewer.h:93
D_Viewer::MouseMoved_Value
void MouseMoved_Value(vector< double > val)
D_Viewer::set_GV
void set_GV(QGraphicsView *GV_ui)
Definition: d_viewer.cpp:49
D_Viewer::pMA
Mat * pMA()
Definition: d_viewer.h:83
D_Viewer::MouseClickedRight
void MouseClickedRight()
D_Plot::Plot_Empty
static int Plot_Empty(QChartView *pChartView, QString QS_Text="No_Additional_Information")
Definition: d_plot.cpp:16
D_Viewer::Image_Saved
void Image_Saved(QString path)
D_Viewer::clear_Image
void clear_Image()
Definition: d_viewer.cpp:74
ER_other
@ ER_other
Definition: d_enum.h:134
D_Viewer::scale_f_x
double scale_f_x()
Definition: d_viewer.h:99
D_Viewer::MouseClickedMid
void MouseClickedMid()
D_Viewer::set_CV
void set_CV(QtCharts::QChartView *CV_ui)
Definition: d_viewer.cpp:54
D_Viewer::ClickRecord_Clear
void ClickRecord_Clear()
Definition: d_viewer.cpp:2507
c_VIS_TRAFO_ANCHOR_DYNAMIC
@ c_VIS_TRAFO_ANCHOR_DYNAMIC
Definition: d_enum.h:709
D_Viewer::Set_VisTrafo_Mode_Crop
void Set_VisTrafo_Mode_Crop(int mode=c_VIS_TRAFO_CROP_DYNAMIC)
Definition: d_viewer.h:177
D_Viewer::Set_ZoomReset_Extern
void Set_ZoomReset_Extern()
Definition: d_viewer.cpp:2276
D_Viewer::Image_Size_Changed
void Image_Size_Changed(int width, int height)
D_Viewer::Type_QI
QString Type_QI()
Definition: d_viewer.h:91
D_Math::CopyValue
static function< double(double val_in)> CopyValue()
Definition: d_math.cpp:1724
d_opencv_typedefs.h
D_Viewer::Image_Size_Changed
void Image_Size_Changed(QString size)
D_Viewer::MouseClicked_Right
void MouseClicked_Right(int x, int y)
Definition: d_viewer.cpp:2407
D_Viewer::pSC
SceneMouseTrack * pSC()
Definition: d_viewer.h:86
c_VIS_TRAFO_CROP_FIXED
@ c_VIS_TRAFO_CROP_FIXED
Definition: d_enum.h:688
D_Viewer::Set_Name
void Set_Name(QString name)
Definition: d_viewer.h:186
c_PLOT_SIMPLE_LINE
@ c_PLOT_SIMPLE_LINE
Definition: d_enum.h:386
D_Img_Proc::Type_of_QImage
static QString Type_of_QImage(QImage *pQI_In)
Definition: d_img_proc.cpp:461
D_Viewer::connect_Zoom
void connect_Zoom(D_Viewer *viewer)
Definition: d_viewer.cpp:128
D_Viewer::zoom_fact
double zoom_fact()
Definition: d_viewer.h:103
D_Plot::Free_Memory
static int Free_Memory(QChartView *pChartView)
Definition: d_plot.cpp:3922
D_Img_Proc::Convert_Mat_to_QImage
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
d_enum.h
D_Viewer::ClickRecordSignal_GetPoints
void ClickRecordSignal_GetPoints(vector< Point > vPoints)
D_Viewer::MouseClicked_Pos
void MouseClicked_Pos(QString pos)
c_PLOT_SIMPLE_LINE_POINT
@ c_PLOT_SIMPLE_LINE_POINT
Definition: d_enum.h:387
c_VIS_TRAFO_GAMMA
@ c_VIS_TRAFO_GAMMA
Definition: d_enum.h:698
D_Viewer::Set_PlotType
void Set_PlotType(int mode)
Definition: d_viewer.h:167
RotatedRect
cv::RotatedRect RotatedRect
Definition: d_opencv_typedefs.h:66
D_Viewer::Save_Image
QString Save_Image()
D_Viewer::Save_Image Saves the image at FI_LastSaved.
Definition: d_viewer.cpp:2157
D_Viewer::TypeChanged_MA
void TypeChanged_MA(QString type)
d_error_handler.h
D_Viewer::ClickRecord_Ellipse
RotatedRect ClickRecord_Ellipse()
Definition: d_viewer.cpp:2680
ER_parameter_bad
@ ER_parameter_bad
Definition: d_enum.h:142
D_Viewer::MousePos
Point MousePos()
Definition: d_viewer.h:196
D_Viewer::MouseMoved
void MouseMoved()
D_Viewer::Set_Zoom_Extern
void Set_Zoom_Extern(double x_rel, double y_rel, double factor)
Definition: d_viewer.cpp:2237
D_Viewer::Set_Image
void Set_Image(Mat *MA_new)
D_Viewer::Set_Image Set image.
Definition: d_viewer.cpp:2058
D_Viewer::connect_PointRecord
void connect_PointRecord(D_Viewer *viewer)
Definition: d_viewer.cpp:82
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_Viewer::Set_VisTrafo_Center
void Set_VisTrafo_Center(double center=0)
Definition: d_viewer.h:173
D_Viewer::Scaled
void Scaled()
c_VIS_TRAFO_CROP_DYNAMIC
@ c_VIS_TRAFO_CROP_DYNAMIC
Definition: d_enum.h:687
D_Viewer::TypeChanged_QI
void TypeChanged_QI()
D_Viewer::ClickRecord_RecordedPointsCount
size_t ClickRecord_RecordedPointsCount()
Definition: d_viewer.cpp:2712
D_Viewer::img_val_max
double img_val_max()
Definition: d_viewer.cpp:159
D_Viewer::Zoomed_Reset
void Zoomed_Reset()
D_Viewer::ClickRecordSignal_GetPoints_Ellipse
void ClickRecordSignal_GetPoints_Ellipse(vector< Point > vPointsEllipse)
D_Viewer::MouseClickedLeft
void MouseClickedLeft()
c_VIS_TRAFO_LOG
@ c_VIS_TRAFO_LOG
Definition: d_enum.h:699
SceneMouseTrack
The SceneMouseTrack class Scene to put in a QGraphicsView that emits additional signals.
Definition: scenemousetrack.h:36
D_Viewer::View_Updated
void View_Updated()
D_Viewer::Set_ZoomReset
void Set_ZoomReset()
D_Viewer::Set_ZoomReset Reset zoom parameters to no zoom.
Definition: d_viewer.cpp:2266
Vec3s
cv::Vec3s Vec3s
Definition: d_opencv_typedefs.h:55
D_Math::GammaCorrect_to01
static function< double(double val_in)> GammaCorrect_to01(double min, double max, double gamma)
Definition: d_math.cpp:1764