-
Notifications
You must be signed in to change notification settings - Fork 10
/
imagestreamwindow.h
137 lines (113 loc) · 3.85 KB
/
imagestreamwindow.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#ifndef IMAGESTREAMWINDOW_H
#define IMAGESTREAMWINDOW_H
#include <QMainWindow>
#include <QDebug>
#include <QTreeWidgetItem>
#include "imageacquisition.h"
#include <QMap>
#include <QLabel>
#include <QGraphicsScene>
#include <QGraphicsPixmapItem>
#include<QPixmap>
#include <QGraphicsView>
#include <QSpinBox>
#include <QCheckBox>
#include "spinboxcontainer.h"
#include "parametercontainer.h"
#include "histogramwindow.h"
#include <QtCharts/QChartView>
#include <QPushButton>
#include <customscene.h>
//using namespace QtCharts;
class ImageStreamWindow : public QMainWindow
{
Q_OBJECT
private:
ImageAcquisition *imageAcquisitionThread;
public:
explicit ImageStreamWindow(ImageAcquisition* imageAcquisitionThread, QWidget *parent = nullptr);
QDir qDir;
// widgets
QTreeWidgetItem *exposureControls;
QTreeWidgetItem *exposureTime;
QSpinBox *exposureTimeSpinBox;
QTreeWidgetItem *analogGain;
QDoubleSpinBox *analogGainSpinBox;
QTreeWidgetItem *autoGain;
QCheckBox *autoGainCheckbox;
QTreeWidgetItem *autoExposure;
QCheckBox *autoExposureCheckbox;
QTreeWidgetItem *colorAppearance;
QTreeWidgetItem *hue;
QSpinBox *hueSpinBox;
QTreeWidgetItem *saturation;
QSpinBox *saturationSpinBox;
QTreeWidgetItem *brightness;
QSpinBox *brightnessSpinBox;
QTreeWidgetItem *contrast;
QSpinBox *contrastSpinBox;
QTreeWidgetItem *gamma;
QDoubleSpinBox *gammaSpinBox;
QTreeWidgetItem *acquisitionFrameRate;
QSpinBox *acquisitionFramerateSpinBox;
QTreeWidgetItem *acquisitionFrameRateEnable;
QCheckBox *acquisitionFrameRateEnableCheckbox;
QTreeWidgetItem *monochrome;
QCheckBox *monochromeCheckbox;
QTreeWidgetItem *rgb;
QCheckBox *rgbCheckbox;
QToolBar* toolBar;
QLabel *imageLabel;
QGraphicsView *graphicsView;
CustomScene *graphicsScene;
QGraphicsPixmapItem *graphicsPixmapItem;
QActionGroup *actionGroup;
QList<QGraphicsPixmapItem *> graphicsPixmapItemList;
QList<ParameterContainer *> containers;
CameraParameters cameraParameters;
// Actions
QAction *imageSaveButton, *recordButton, *recordPauseButton, *recordStopButton, *grayHistogramButton, *fixedAspectRatioButton,
*rotateClockwise90Button, *rotateAntiClockwise90Button, *mirrorImageHorizontalButton, *mirrorImageVerticalButton, *resetImageButton,
*gridButton, *selectButton, *lineButton;
Qt::AspectRatioMode fixedAspectRatio=Qt::KeepAspectRatio;
// Chart window
HistogramWindow *histogramWindow;
QChartView *chartView;
// member functions
void setupCameraWindow();
// setters and getters
HalconCpp::HFramegrabber getAcquisitionHandle() const;
void setAcquisitionHandle(const HalconCpp::HFramegrabber &value);
ImageAcquisition *getImageAcquisitionThread() const;
void setImageAcquisitionThread(ImageAcquisition *value);
CameraParameters getCameraParameters() const;
void setCameraParameters(const CameraParameters &value);
void restoreDeviceSpecificSettings();
void createToolBar();
void addToContainer(ParameterContainer *container, bool exists);
public slots:
void renderImage(QImage qImage);
void updateStatusBar(QString statusMsg);
void saveImage();
void startVideoRecord();
void pauseVideoRecord();
void stopVideoRecord();
void setFixedAspectRatio();
void rotateAntiClockwise90Deg();
void mirrorImageHorizontalSlot();
void mirrorImageVerticalSlot();
void gridSlot();
void resetImageSlot();
void selectSlot();
void lineSlot();
void actionGroupClicked(QAction*);
void writeQueue();
void updateAllParameters();
void createHistogramWindow();
void renderHistogramSlot(QList<QLineSeries*>, int);
void renderHistogramSlotForLine(QList<QLineSeries*>, int);
signals:
protected:
void closeEvent(QCloseEvent *event);
};
#endif // IMAGESTREAMWINDOW_H