/* * Copyright (C) 2011, Mathieu Labbe - IntRoLab - Universite de Sherbrooke */ #ifndef CAMERA_H_ #define CAMERA_H_ #include "find_object/FindObjectExp.h" // DLL export/import defines #include #include #include #include class CameraTcpServer; class FINDOBJECT_EXP Camera : public QObject { Q_OBJECT public: Camera(QObject * parent = 0); virtual ~Camera(); virtual bool start(); virtual void stop(); virtual bool isRunning() {return cameraTimer_.isActive();} void pause(); int getTotalFrames(); int getCurrentFrameIndex(); int getPort(); void moveToFrame(int frame); Q_SIGNALS: void imageReceived(const cv::Mat & image); void finished(); public Q_SLOTS: virtual void updateImageRate(); virtual void takeImage(); protected: void startTimer(); void stopTimer(); private: cv::VideoCapture capture_; QTimer cameraTimer_; QList images_; unsigned int currentImageIndex_; CameraTcpServer * cameraTcpServer_; }; #endif /* CAMERA_H_ */