You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
smokeboxidentification/src/CameraControl.h

55 lines
1.6 KiB
C

#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