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.
smokeboxidentification/src/Camera.h

52 lines
1.3 KiB
C

#ifndef CAMERA_H
#define CAMERA_H
#include <QObject>
#include <QImage>
#include <QTimer>
#include <QMutex>
#include <opencv2/core.hpp>
enum CameraType {
Virtual = 100, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Hik = 140,
Basler = 190, // <20><>˹<EFBFBD><CBB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LXTof = 210 //<2F><>оtof<6F><66><EFBFBD><EFBFBD>
};
enum CameraTriggerMode {
AUTO_CONTINUOUS = 0, //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SOFTWARE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
class Camera : public QObject
{
Q_OBJECT
public:
virtual bool initCamera(const QString& serialNumber) = 0; // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void destroyCamera() = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual bool openCamera() = 0; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual bool closeCamera() = 0; // <20>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>
virtual bool startCamera() = 0; // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
virtual bool stopCamera() = 0; // ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
virtual bool setTriggerSource(int) = 0; //<2F><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>Դ
2 years ago
virtual bool setExposure(int exposure) =0; //<2F><><EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>ʱ<EFBFBD><CAB1>
virtual bool setGain(double gain) = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2 years ago
virtual bool takeAPic(cv::Mat& imgMat, cv::Mat&imgMat3D, int location) = 0; // <20><>ȡ<EFBFBD><C8A1>ǰͼ<C7B0><CDBC>
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