59 lines
1.2 KiB
C++
59 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <QObject>
|
|
#include <QImage>
|
|
|
|
#include <CameraParams.h>
|
|
#include <MvCameraControl.h>
|
|
#include <MvErrorDefine.h>
|
|
#include <PixelType.h>
|
|
|
|
class HikCamera : public QObject{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
// 获取单例实例
|
|
static HikCamera &getInstance() {
|
|
static HikCamera instance;
|
|
return instance;
|
|
}
|
|
|
|
// 初始化相机
|
|
void init();
|
|
// 去初始化相机
|
|
void deinit();
|
|
|
|
// 开始图像采集
|
|
void startGrabbing();
|
|
// 停止图像采集
|
|
void stopGrabbing();
|
|
|
|
// 设置曝光时间
|
|
void setExposure(double exposure);
|
|
// 设置增益
|
|
void setGain(double gain);
|
|
|
|
// 注册图像回调函数
|
|
void registerImageCallback();
|
|
|
|
// 回调图像处理函数
|
|
void handleFrameData(unsigned char *pData, MV_FRAME_OUT_INFO_EX *pFrameInfo);
|
|
|
|
// 禁用拷贝和移动
|
|
HikCamera(const HikCamera &) = delete;
|
|
HikCamera(HikCamera &&) = delete;
|
|
HikCamera &operator=(const HikCamera &) = delete;
|
|
HikCamera &operator=(HikCamera &&) = delete;
|
|
|
|
private:
|
|
// 私有构造函数
|
|
HikCamera() = default;
|
|
// 私有析构函数
|
|
~HikCamera() = default;
|
|
|
|
// 相机句柄
|
|
void *m_handler = nullptr;
|
|
|
|
signals:
|
|
void newImage(const QImage &qimage);
|
|
}; |