The Camera of Zelda
 All Classes Files Functions Variables Macros Pages
fonction.h
Go to the documentation of this file.
1 #ifndef FONCTION_H
2 #define FONCTION_H
3 
13 /*INCLUDE*/
14 #include <stdio.h>
15 #include <stdlib.h>
16 #include <cv.h>
17 #include <highgui.h>
18 //#include <opencv2/highgui.hpp> //Pour le cvRound
19 //#include "opencv2/videoio/videoio_c.h" //Pour le CvCapture*
20 //#include <cxcore.h>
21 //#include <SFML/Window.h>
22 #include <SFML/Audio.hpp>
23 #include <SFML/Graphics.hpp>
24 #include <SFML/Window.hpp>
25 //#include <SFML/System.hpp> //inutilisé pour le moment
26 
27 /*DEFINE*/
28 //ATTENTION AFFICHAGE OPENCV INCOMPATIBLE AVEC AFFICHAGE SFML
29 //ATTENTION SFML SUPPORTE UN NOMBRE LIMITE DE SPRITE EN FCT DU PC
30 #define JEU 0.15
31 
50 //#define CONFIG
51 #define SFML
52 #define KIRBY
53 //#define ETOILE
54 
55 #define MAX_FACE 2
56 
57 
64 /*STRUCTURE*/
65 typedef struct _face{
66  CvPoint point;
67  int largeur;
68 } face;
69 
70 typedef face* pface;
71 
72 
73 
74 /*HEADERS*/
75 
85 void maj_angle(int vecX, int vecY, int rayon, double* angle); //Met à jour l'angle selon la distance CentreCamera - Cible
86 
96 int ajust_pos(int pos, int ref);
97 
105 void controle_moteur(double* angle);//Envoie les angles au moteur
106 
115 int limite_moteur(int val_pwm);//Verifie que les valeurs envoyees aux moteurs sont correctes
116 
131 void config(int* LowH, int* HighH, int* LowS, int* HighS, int* LowV, int* HighV); //Affiche le panneau de configuration de tracking avec les arguments comme valeur de base
132 
141 void affichage_config(IplImage* frame, IplImage* HSV, IplImage* Binaire); //Affiche le flux vidéos et ses différent traitements
142 
155 void Affichage_Tracking(IplImage* frame, int posX, int posY, int width, int height); //Dessine les informations de tracking sur frame
156 
165 void Position_moy(IplImage* Binaire, int* posX, int * posY); //Effectue le baricentre des pixels d'une image binaire pour obtenir la postion de l'objet
166 
183 void traitement(IplImage* frame, IplImage* HSV, IplImage* Binaire, int LowH, int HighH, int LowS, int HighS, int LowV, int HighV); //Effectue une binarisation de frame en fonction des bornes HSV
184 
194 int image_CV2SFML(IplImage* imcv, sf::Image imFlux); //Construction de imsf (RGBA) à partir de imcv (BGR), avec alpha constant (=1)
195 
203 CvHaarClassifierCascade* init_cascade();
204 
213 void detect_and_draw( IplImage* img, CvHaarClassifierCascade* cascade, face** tab_face );
214 
223 void get_color(IplImage* image, face* rec_face, int* BGR);
224 
225 #endif
CvPoint point
Definition: fonction.h:66
void Position_moy(IplImage *Binaire, int *posX, int *posY)
Effectue le baricentre des pixels d'une image binaire pour obtenir la postion de l'objet.
Definition: fonction.c:120
int limite_moteur(int val_pwm)
Fonction qui vérifie que les valeurs envoyees aux moteurs sont correctes.
Definition: fonction.c:41
void detect_and_draw(IplImage *img, CvHaarClassifierCascade *cascade, face **tab_face)
Détecte et renvoie un rectangle pour chaque visage sur l'image.
Definition: fonction.c:200
CvHaarClassifierCascade * init_cascade()
Charge les fichiers cascades pour la reconnaissance faciale.
Definition: fonction.c:182
void traitement(IplImage *frame, IplImage *HSV, IplImage *Binaire, int LowH, int HighH, int LowS, int HighS, int LowV, int HighV)
Effectue une binarisation de frame en fonction des bornes HSV.
Definition: fonction.c:99
void affichage_config(IplImage *frame, IplImage *HSV, IplImage *Binaire)
Fonction d'affichage du flux vidéo, du flux en HSV et de sa binarisation.
Definition: fonction.c:151
int image_CV2SFML(IplImage *imcv, sf::Image imFlux)
Convertit une image opencv (IplImage) en une image SFML (sf::Image)
Definition: fonction.c:74
void maj_angle(int vecX, int vecY, int rayon, double *angle)
Met à jour angle selon la distance entre le centre de la caméra et la cible, avec un tolérance circul...
Definition: fonction.c:12
int largeur
Definition: fonction.h:67
Definition: fonction.h:65
int ajust_pos(int pos, int ref)
permet d'éviter des positions supérieures à ref considérées comme aberrantes.
Definition: fonction.c:36
void controle_moteur(double *angle)
Fonction d'envoie des angles aux moteurs.
Definition: fonction.c:54
void Affichage_Tracking(IplImage *frame, int posX, int posY, int width, int height)
Fonction d'affichage des informations de suivi.
Definition: fonction.c:163
void config(int *LowH, int *HighH, int *LowS, int *HighS, int *LowV, int *HighV)
Fonction d'affichage du panneau de configuration de la couleur à suivre.
Definition: fonction.c:136
Contient les informations sur chaque face détectée : positions, largeur.