CamAdventure
 All Classes Files Functions Variables Macros Pages
fonction.h File Reference

Bibliothèque, Headers et Documentation des fonctions. More...

#include <stdio.h>
#include <stdlib.h>
#include <cv.h>
#include <highgui.h>
#include <SFML/Audio.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>

Go to the source code of this file.

Classes

struct  _face
 

Macros

#define JEU   0.15
 Coefficient de tolérance pour le suivi d'objet.
 
#define SFML
 Programme en mode affichage interface utilisateur.
 
#define KIRBY
 Programme en mode suivi de Kirby (Objet rose)
 
#define MAX_FACE   2
 Nombre maximum de faces traitées.
 

Typedefs

typedef struct _face face
 
typedef facepface
 

Functions

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 circulaire définie par rayon. More...
 
int ajust_pos (int pos, int ref)
 permet d'éviter des positions supérieures à ref considérées comme aberrantes. More...
 
void controle_moteur (double *angle)
 Fonction d'envoie des angles aux moteurs. More...
 
int limite_moteur (int val_pwm)
 Fonction qui vérifie que les valeurs envoyees aux moteurs sont correctes. More...
 
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. More...
 
void affichage_config (IplImage *frame, IplImage *HSV, IplImage *Binaire)
 Fonction d'affichage du flux vidéo, du flux en HSV et de sa binarisation. More...
 
void Affichage_Tracking (IplImage *frame, int posX, int posY, int width, int height)
 Fonction d'affichage des informations de suivi. More...
 
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. More...
 
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. More...
 
int image_CV2SFML (IplImage *imcv, sf::Image imFlux)
 Convertit une image opencv (IplImage) en une image SFML (sf::Image) More...
 
CvHaarClassifierCascade * init_cascade ()
 Charge les fichiers cascades pour la reconnaissance faciale. More...
 
void detect_and_draw (IplImage *img, CvHaarClassifierCascade *cascade, face **tab_face)
 Détecte et renvoie un rectangle pour chaque visage sur l'image. More...
 
void get_color (IplImage *image, face *rec_face, int *BGR)
 

Detailed Description

Bibliothèque, Headers et Documentation des fonctions.

Author
Jacques / Antoine
Date
avril - mai 2017

Definition in file fonction.h.

Function Documentation

void affichage_config ( IplImage *  frame,
IplImage *  HSV,
IplImage *  Binaire 
)

Fonction d'affichage du flux vidéo, du flux en HSV et de sa binarisation.

Author
Antoine
Parameters
frameimage contenant la frame capturé par la caméra
HSVimage contenant l'image passé en HSV
Binaireimage contenant l'image binarisée

Definition at line 151 of file fonction.c.

void Affichage_Tracking ( IplImage *  frame,
int  posX,
int  posY,
int  width,
int  height 
)

Fonction d'affichage des informations de suivi.

Dessine sur frame la zone de tolérance de suivie au centre de l'image et le curseur de position de l'objet ayant pour coordonées posX et posY

Author
Antoine
Parameters
frameimage a modifier
posXcomposante X du curseur a dessiner
posYcomposante Y du curseur a dessiner
widthlargeur (en pixel) de frame
heighthauteur (en pixel) de frame

Definition at line 163 of file fonction.c.

int ajust_pos ( int  pos,
int  ref 
)

permet d'éviter des positions supérieures à ref considérées comme aberrantes.

retourne 0 si la position est supérieure à ref.

Author
Jacques
Parameters
posposition à tester
refposition de référence
Returns
renvoie la position corrigée

Definition at line 36 of file fonction.c.

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.

Author
Antoine

Panneau de configuration comprenant 6 slidebarres pour configurer la couleur suivie en HSV. La fonction modifie les valeurs limites LowH/ HighH de la plage HUE, LowS/HighS de la plage SATURATION, LowV/HighV de la plage VALUE.

Parameters
LowHValeur basse de la plage de HUE suivie.
HighHValeur haute de la plage de HUE suivie.
LowSValeur basse de la plage de SATURATION suivie.
HighSValeur haute de la plage de SATURATION suivie.
LowVValeur basse de la plage de VALUE suivie.
HighVValeur haute de la plage de VALUE suivie.

Definition at line 136 of file fonction.c.

void controle_moteur ( double *  angle)

Fonction d'envoie des angles aux moteurs.

Author
Jacques
Parameters
angletableau des angles moteurs

Definition at line 54 of file fonction.c.

void detect_and_draw ( IplImage *  img,
CvHaarClassifierCascade *  cascade,
face **  tab_face 
)

Détecte et renvoie un rectangle pour chaque visage sur l'image.

Author
Jacques
Parameters
imgImage sur laquelle on veut détecter des visages
cascadestructure contenant les données pour alimenter l'algorithme de reconnaissance d'image
tab_facetableau des faces détectées

Definition at line 200 of file fonction.c.

int image_CV2SFML ( IplImage *  imcv,
sf::Image  imFlux 
)

Convertit une image opencv (IplImage) en une image SFML (sf::Image)

Author
Antoine
Parameters
imcvimage OpenCv à convertir
imFluximage SFML convertie en sortie de la fonction
Returns
0 si la convertion est réussie
Bug:
A debugger ! Inutilisable en l'état

Definition at line 74 of file fonction.c.

CvHaarClassifierCascade* init_cascade ( )

Charge les fichiers cascades pour la reconnaissance faciale.

fichier(s) chargé(s) : "haarcascade_frontalface_alt.xml"

Author
Jacques
Returns
Renvoie la cascade

Definition at line 182 of file fonction.c.

int limite_moteur ( int  val_pwm)

Fonction qui vérifie que les valeurs envoyees aux moteurs sont correctes.

Valeur minimale = 30, valeur maximale = 130 (déterminées expérimentalement)

Author
Jacques
Parameters
val_pwmvaleur pwm dont on veut vérifier la valeur
Returns
renvoie l'angle corrigée

Definition at line 41 of file fonction.c.

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 circulaire définie par rayon.

Author
Jacques
Parameters
vecXcomposante X de la cible par rapport au centre de l'image
vecYcomposante Y de la cible par rapport au centre de l'image
rayontolérance avant changement d'angle
angletableau contenant les deux angles à modifier

Definition at line 12 of file fonction.c.

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.

Author
Antoine
Parameters
Binaireimage binarisée (matrice de 0 ou de 1)
posXcontient la composante X du barycentre
posYcontient la composante Y du barycentre

Definition at line 120 of file fonction.c.

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.

Passe la frame en HSV puis binarise l'image en fonction des bornes LowH, HighH, LowS, HighS, LowV, HighV

Author
Antoine
Parameters
frameimage contenant la frame capturé par la caméra
HSVimage contenant l'image passé en HSV au terme de la fonction
Binaireimage contenant l'image binarisée au terme de la fonction
LowHValeur basse de la plage de HUE suivie.
HighHValeur haute de la plage de HUE suivie.
LowSValeur basse de la plage de SATURATION suivie.
HighSValeur haute de la plage de SATURATION suivie.
LowVValeur basse de la plage de VALUE suivie.
HighVValeur haute de la plage de VALUE suivie.
Bug:
Nécessite changement de l'utilisation de cvInRangeS sur certain PC

Definition at line 99 of file fonction.c.