#ifndef CAMERA_CONTROL_H #define CAMERA_CONTROL_H #include #include "HikCamera.h" struct CameraInfo { CameraType cameraType; //相机类型 QString cameraLabel; //显示的序列号 QString userDefinedName; //用户设置的名字 QString modelName; //相机设备名称(厂家) QString serialNumber; //相机设备序列号(厂家) double exposure; //曝光时间 int imageWidth; //宽度 int imageHeight; //高度 QString saveImgSuffix = ".bmp" ; //保存的图像格式 }; struct ImageInfo { cv::Mat image; QString cameraSn; }; class CameraControl : public QObject { Q_OBJECT public: explicit CameraControl(QObject *parent = nullptr); ~CameraControl(); //static void EnumCameras(QList& cameraInfoList); bool loadCamera(const QList& 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& vecImageInfo); private: QVector m_vecPCamera; QMap m_mapSNIndex; QMutex m_mutex; }; #endif // !CAMERA_CONTROL_H