|
|
|
|
|
#ifndef CAMERA_CONTROL_H
|
|
|
|
|
|
#define CAMERA_CONTROL_H
|
|
|
|
|
|
|
|
|
|
|
|
#include <QMap>
|
|
|
|
|
|
#include "HikCamera.h"
|
|
|
|
|
|
struct CameraInfo
|
|
|
|
|
|
{
|
|
|
|
|
|
CameraType cameraType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
QString cameraLabel; //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
|
|
|
|
|
|
QString userDefinedName; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
QString modelName; //<2F><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD>ң<EFBFBD>
|
|
|
|
|
|
QString serialNumber; //<2F><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD>кţ<D0BA><C5A3><EFBFBD><EFBFBD>ң<EFBFBD>
|
|
|
|
|
|
double exposure; //<2F>ع<EFBFBD>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
int imageWidth; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
int imageHeight; //<2F>߶<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
QString saveImgSuffix = ".bmp" ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>ʽ
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
struct ImageInfo
|
|
|
|
|
|
{
|
|
|
|
|
|
cv::Mat image;
|
|
|
|
|
|
QString cameraSn;
|
|
|
|
|
|
};
|
|
|
|
|
|
class CameraControl : public QObject
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
public:
|
|
|
|
|
|
explicit CameraControl(QObject *parent = nullptr);
|
|
|
|
|
|
~CameraControl();
|
|
|
|
|
|
|
|
|
|
|
|
//static void EnumCameras(QList<CameraInfo>& cameraInfoList);
|
|
|
|
|
|
bool loadCamera(const QList<CameraInfo>& cameraInfoList);
|
|
|
|
|
|
bool openCamera(const QStringList& serialNumberList);
|
|
|
|
|
|
bool closeCamera(const QStringList& serialNumberList);
|
|
|
|
|
|
bool startCamera(const QStringList& serialNumberList);
|
|
|
|
|
|
bool stopCamera(const QStringList& serialNumberList);
|
|
|
|
|
|
bool setSoftwareTrigger(const QStringList& serialNumberList);
|
|
|
|
|
|
Q_SLOT void onCapture(const QStringList& serialNumberList);
|
|
|
|
|
|
|
|
|
|
|
|
bool openCamera(const QString& serialNumber);
|
|
|
|
|
|
bool closeCamera(const QString& serialNumber);
|
|
|
|
|
|
bool startCamera(const QString& serialNumber);
|
|
|
|
|
|
bool stopCamera(const QString& serialNumber);
|
|
|
|
|
|
bool setSoftwareTrigger(const QString& serialNumber);
|
|
|
|
|
|
cv::Mat capture(const QString& serialNumber);
|
|
|
|
|
|
signals:
|
|
|
|
|
|
void sgCapturedImage(const QVector<ImageInfo>& vecImageInfo);
|
|
|
|
|
|
private:
|
|
|
|
|
|
QVector<Camera*> m_vecPCamera;
|
|
|
|
|
|
QMap<QString, int> m_mapSNIndex;
|
|
|
|
|
|
QMutex m_mutex;
|
|
|
|
|
|
};
|
|
|
|
|
|
#endif // !CAMERA_CONTROL_H
|