#ifndef CAMERA_H #define CAMERA_H #include #include #include #include #include enum CameraType { Virtual = 100, // 虚拟相机 Hik = 140, Basler = 190, // 巴斯勒相机 LXTof = 210 //蓝芯tof相机 }; enum CameraTriggerMode { AUTO_CONTINUOUS = 0, //内触发(自动连续触发) SOFTWARE //软触发 }; class Camera : public QObject { Q_OBJECT public: virtual bool initCamera(const QString& serialNumber) = 0; // 初始化相机 virtual void destroyCamera() = 0; // 销毁相机 virtual bool openCamera() = 0; // 打开相机 virtual bool closeCamera() = 0; // 关闭相机 virtual bool startCamera() = 0; // 开始工作 virtual bool stopCamera() = 0; // 停止工作 virtual bool setTriggerSource(int) = 0; //设置触发源 virtual bool setExposure(int exposure) =0; //设置曝光时间 virtual bool setGain(double gain) = 0; //设置增益 virtual bool takeAPic(cv::Mat& imgMat, cv::Mat&imgMat3D) = 0; // 获取当前图像 void start() { m_timer->start(); } void stop() { m_timer->stop(); } void setInterval(int time) { m_timer->setInterval(time); } signals: void updateImage(QImage image); protected: QMutex m_mutex; QTimer* m_timer; }; #endif // CAMERA_H