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.
55 lines
1.8 KiB
C++
55 lines
1.8 KiB
C++
#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, cv::Mat&imgMat3D) override;
|
|
|
|
virtual bool setTriggerSource(int mode) override;
|
|
virtual bool setExposure(int exposure) override;
|
|
virtual bool setGain(double gain) 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
|