ROV'NET  0.2
BTS SNIR LaSalle Avignon 2020
camera.h
Aller à la documentation de ce fichier.
1 
7 #ifndef CAMERA_H
8 #define CAMERA_H
9 
10 #include <QDebug>
11 #include <QObject>
12 #include <QThread>
13 #include <opencv.hpp>
14 #include <video/video.hpp>
15 #include <QPixmap>
16 #include <QImage>
17 #include <QTime>
18 #include <QCameraInfo>
19 
20 #include "rov.h"
21 
22 //#define SANS_DETECTION
23 
29 #define CAMERA_DEFAUT 0
30 
35 #define LARGEUR_DEFAUT 1600 //2048
36 
41 #define HAUTEUR_DEFAUT 1200 //1024
42 
47 #define SEUIL_DEFAUT 0.5
48 
49 using namespace cv;
50 
51 class Rov;
52 
58 class Camera : public QThread
59 {
60  Q_OBJECT
61 private:
62  Rov *rov;
63  QString nomCamera;
64  int numero;
65  int largeur;
66  int hauteur;
67  double luminosite;
68  double contraste;
69  double saturation;
71  QList<QSize> listeResolutionsCamera;
73 
80  void acquerirImageVideo(cv::VideoCapture &camera, cv::Mat &frame);
81 
82 public:
90  Camera(Rov *rov, int numero, int choixResolution=-1);
98  Camera(Rov *rov, QString nomCamera, int choixResolution=-1);
99 
104  ~Camera();
105 
110  void run();
111 
117  QString getNom() const;
123  void setProprietes(cv::VideoCapture &camera);
129  QSize getResolution();
135  int getChoixResolution();
140  void recupererListeResolutionsCamera();
146  void recupererListeResolutionsCamera(int numero);
152  void recupererListeResolutionsCamera(QString nomCamera);
158  void recupererListeResolutionsCamera(QCameraInfo &cameraInfo);
164  QList<QSize> getListeResolutionsCamera();
170  static int getNbCameras();
177  static int extraireNumero(QString nomCamera);
184  static QString creerNomCamera(int numero);
191  static QList<QSize> lireListeResolutionsCamera(QCameraInfo &cameraInfo);
192 
193 signals:
199  void nouvelleImage(QPixmap image);
204  void finVideo();
205 
206 public slots:
213  void setResolution(int largeur, int hauteur);
219  void setResolution(QSize resolution);
225  void setResolution(int choix);
231  void setLuminosite(int luminosite);
237  void setContraste(int contraste);
243  void setSaturation(int saturation);
244 };
245 
246 #endif // CAMERA_H
int numero
Attribut contenant le numéro de la caméra sélectionnée.
Definition: camera.h:64
QList< QSize > listeResolutionsCamera
Liste contenant les résolutions supportés par la caméra.
Definition: camera.h:71
QString nomCamera
Attribut contenant le nom de la caméra sélectionnée.
Definition: camera.h:63
double luminosite
Attribut contenant la luminosite de la vidéo.
Definition: camera.h:67
Class permettant de mettre en place une communication avec la camera.
Definition: camera.h:58
Classe controlant tout les traitements en provenance et en direction de la communication avec le rov...
Definition: rov.h:91
int choixResolution
Choix dans la liste contenant les résolutions supportés par la caméra.
Definition: camera.h:72
bool changementProprietes
Attribut désignant si une propriete de la caméra doit être modifiée.
Definition: camera.h:70
double contraste
Attribut contenant le constraste de la vidéo.
Definition: camera.h:68
int hauteur
Attribut contenant la hauteur (heigth) en pixels de la vidéo.
Definition: camera.h:66
int largeur
Attribut contenant la largeur (width) en pixels de la vidéo.
Definition: camera.h:65
La classe QThread fournit un moyen indépendant de gérer les threads dans Qt.
Fichier qui contient la déclaration de la classe rov.
double saturation
Attribut contenant la saturation de la vidéo.
Definition: camera.h:69
Rov * rov
Objet rov permettant de récuperer les dernière mesures issues des capteurs.
Definition: camera.h:62