#ifndef HIK_CAMER_CONTROL_H #define HIK_CAMER_CONTROL_H #include "camera.h" #include "MvCameraControl.h" #include "commonDefine.h" class HikCamera : public Camera { Q_OBJECT public: enum HikCameraProperty { Width, // 图片宽度 Height, // 图片高度 ExposureTime, // 曝光时间 Brightness, // 亮度 FrameRate, // 帧率 Gain, // 增益 PixelFormat, // 像素格式 TriggerMode // 触发模式 }; ~HikCamera(); //void initCamera(const void* pDeviceInfo); virtual bool initCamera(const QString& serialNumber) override; virtual void destroyCamera() override; virtual bool openCamera() override; virtual bool closeCamera() override; virtual bool startCamera() override; virtual bool stopCamera() override; virtual bool takeAPic(cv::Mat& imgMat) override; virtual bool setTriggerSource(int mode) override; static int EnumDevices(unsigned int nTLayerType, MV_CC_DEVICE_INFO_LIST* pstDevList); //QString getCameraProperty(HikCamera::HikCameraProperty type); // 获取相机参数 CameraType getCameraType() { return m_type; } private: void RGB2BGR(unsigned char* pRgbData, unsigned int nWidth, unsigned int nHeight); bool Convert2Mat(MV_FRAME_OUT_INFO_EX* pstImageInfo, unsigned char * pData, cv::Mat& imageMat); bool setCameraProperty(HikCamera::HikCameraProperty type, double value = 0.0); // 设置相机参数 CameraType m_type = CameraType::Hik; void *m_pDevHandle; unsigned char *m_pData; unsigned int m_size; MV_FRAME_OUT_INFO_EX m_frame_info; MV_CC_DEVICE_INFO *m_pDeviceInfo; }; #endif // HIK_CAMER_CONTROL_H