|
|
|
|
|
#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>Դ
|
|
|
|
|
|
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>
|
|
|
|
|
|
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
|