2025-06-08 14:51:23 +08:00

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);
};