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

49 lines
1.1 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>
};
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>Դ
virtual bool takeAPic(cv::Mat& imgMat) = 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