ImagePulser V5.2.4
Simplification des images prises avec une webcam
Chargement...
Recherche...
Aucune correspondance
/Users/vasilisskarleas/Library/Mobile Documents/com~apple~CloudDocs/Documents/University Sorbonne/3rd year/S6/c-project-rob-3-eleves-gr-2-1/Imagination/contour.h
Aller à la documentation de ce fichier.
1// #############################################################################
2// # File contour.h
3// # Project in C - Polytech Sorbonne - 2023/2024 - S6
4// # Authors: Evinia Anastasopoulou, Yanis Sadoun, Vasileios Filippos Skarleas - All rights reserved.
5// #############################################################################
6
13#ifndef _CONTOUR_H_
14#define _CONTOUR_H_
15
16#include <stdbool.h>
17#include "geometry.h"
18#include "image.h"
19#include "sequence_point.h"
20
21typedef enum {Nord, Est, Sud, Ouest} Orientation;
22
23typedef struct {
24 int x, y;
26} Robot;
27
37void init_robot(Robot *r, int x, int y, Orientation o);
38
45void move_forward(Robot *r);
46
53void turn_left(Robot *r);
54
61void turn_right(Robot *r);
62
71void position(Robot *r, int *x, int *y);
72
80int abscissa(Robot *r);
81
88int ordinate(Robot *r);
89
97
98
106void position_forward(Robot *r, int *x, int *y);
107
108
117void new_orientation(Robot *r, int x, int y, Image I);
118
126
134
141bool image_white(Image I);
142
151Contour algo_contour(Image I, char *file_name, char *repository);
152
160
168void pbm_contour_to_txt(Liste_Contours c, char *file_name, char *repository);
169
179
189
198
207
216void create_postscript(Contour c, char *file_name, int height, int width);
217
226void create_postscript_fill(Contour c, char *file_name, int height, int width);
227
237void create_postscript_contours(Liste_Contours c, char *file_name, int height, int width, char *repository);
238
248Contour simplification_douglas_peucker(Tableau_Point T, int j1, int j2, double d);
249
257Point calcul_ct_bezier2(Bezier2 b2, double t);
258
266Point calcul_ct_bezier3(Bezier3 b3, double t);
267
275
284Bezier2 bezier2_approximation(Contour c, int j1, int j2);
285
294double distance_point_bezier2(Point P1, Bezier2 b2, double ti);
295
305Contour simplification_douglas_peucker_bezier2(Contour C, int j1, int j2,double d);
306
316void create_postscript_contours_bezier2(Liste_Contours c, char *file_name, int height, int width, char *repository);
317
326Bezier3 bezier3_approximation(Contour c, int j1, int j2);
327
336double distance_point_bezier3(Point P1, Bezier3 b3, double ti);
337
347Contour simplification_douglas_peucker_bezier3(Contour C, int j1, int j2,double d);
348
358void create_postscript_contours_bezier3(Liste_Contours c, char *file_name, int height, int width, char *repository);
359
360#endif /* _CONTOUR_H_ */
void create_postscript_contours_bezier2(Liste_Contours c, char *file_name, int height, int width, char *repository)
Crée un file_input EPS pour des courbes de Bézier de degré 2.
Definition contour.c:1267
void turn_left(Robot *r)
Tourne le robot à gauche (changement d'orientation).
Definition contour.c:83
void create_postscript(Contour c, char *file_name, int height, int width)
Génère un file_input EPS contenant la représentation graphique d'un contour en mode trait.
Definition contour.c:794
void create_postscript_contours(Liste_Contours c, char *file_name, int height, int width, char *repository)
Génère un file_input EPS pour une liste de contours donnés.
Definition contour.c:901
void new_orientation(Robot *r, int x, int y, Image I)
Calcule la nouvelle orientation du robot en fonction de son environnement immédiat.
Definition contour.c:215
Contour simplification_douglas_peucker_bezier2(Contour C, int j1, int j2, double d)
Simplifie un contour par la méthode des courbes de Bézier de degré 2.
Definition contour.c:1202
void create_postscript_contours_bezier3(Liste_Contours c, char *file_name, int height, int width, char *repository)
Crée un file_input EPS pour des courbes de Bézier de degré 3.
Definition contour.c:1548
void init_robot(Robot *r, int x, int y, Orientation o)
Initialise le robot à une position donnée avec une orientation spécifique.
Definition contour.c:40
void create_postscript_fill(Contour c, char *file_name, int height, int width)
Génère un file_input EPS contenant la représentation graphique d'un contour en mode remplissage.
Definition contour.c:846
void contours_data_simplification(Liste_Contours c)
Affiche les données des contours simplifiés sur le terminal.
Definition contour.c:672
void position(Robot *r, int *x, int *y)
Récupère la position actuelle du robot.
Definition contour.c:136
Bezier3 conversion_bezier2_to_bezier3(Bezier2 b2)
Convertit une courbe de Bézier de degré 2 en une courbe de degré 3.
Definition contour.c:1063
Orientation orient(Robot *r)
Récupère l'orientation actuelle du robot.
Definition contour.c:170
void contours_data_bezier(Liste_Contours c)
Affiche des informations sur les courbes de Bézier pour les contours sur le terminal.
Definition contour.c:711
void turn_right(Robot *r)
Tourne le robot à droite (changement d'orientation).
Definition contour.c:109
Contour algo_contour(Image I, char *file_name, char *repository)
Calcule et extrait les contours d'une image.
Definition contour.c:421
void pbm_contour_to_txt(Liste_Contours c, char *file_name, char *repository)
Sauvegarde les contours extraits dans un file_input texte.
Definition contour.c:567
int ordinate(Robot *r)
Récupère la coordonnée y de la position actuelle du robot.
Definition contour.c:159
Image mask_image(Image I)
Crée un masque de l'image mettant en évidence les pixels de départ pour les contours.
Definition contour.c:350
Point calcul_ct_bezier3(Bezier3 b3, double t)
Calcule le point sur une courbe de Bézier de degré 3.
Definition contour.c:1043
double distance_point_bezier3(Point P1, Bezier3 b3, double ti)
Calcule la distance entre un point et une courbe de Bézier de degré 3.
Definition contour.c:1457
Point find_departure_pixel(Image I)
Trouve les coordonnées du premier pixel noir avec un voisin blanc au-dessus.
Definition contour.c:303
Orientation
Definition contour.h:21
@ Est
Definition contour.h:21
@ Nord
Definition contour.h:21
@ Sud
Definition contour.h:21
@ Ouest
Definition contour.h:21
void position_forward(Robot *r, int *x, int *y)
Récupère la position de la case directement devant le robot.
Definition contour.c:184
double distance_point_bezier2(Point P1, Bezier2 b2, double ti)
Calcule la distance entre un point et une courbe de Bézier de degré 2.
Definition contour.c:1184
bool image_white(Image I)
Vérifie si l'image est entièrement blanche.
Definition contour.c:390
Contour simplification_douglas_peucker_bezier3(Contour C, int j1, int j2, double d)
Simplifie un contour par la méthode des courbes de Bézier de degré 3.
Definition contour.c:1482
int abscissa(Robot *r)
Récupère la coordonnée x de la position actuelle du robot.
Definition contour.c:148
Bezier2 bezier2_approximation(Contour c, int j1, int j2)
Approxime un contour par une courbe de Bézier de degré 2.
Definition contour.c:1108
Bezier3 bezier3_approximation(Contour c, int j1, int j2)
Approxime un contour par une courbe de Bézier de degré 3.
Definition contour.c:1345
Point calcul_ct_bezier2(Bezier2 b2, double t)
Calcule le point sur une courbe de Bézier de degré 2.
Definition contour.c:1022
Contour simplification_douglas_peucker(Tableau_Point T, int j1, int j2, double d)
Simplifie un contour en utilisant la méthode de simplification des segments de Douglas-Peucker.
Definition contour.c:965
Liste_Contours algo_contours(Image I)
Extrait tous les contours d'une image.
Definition contour.c:506
void contours_data(Liste_Contours c)
Affiche les données des contours sur le terminal.
Definition contour.c:629
void contours_data_bezier3(Liste_Contours c)
Affiche des informations sur les courbes de Bézier de degré 3 sur le terminal.
Definition contour.c:751
void move_forward(Robot *r)
Avance le robot d'une position dans la direction de son orientation actuelle.
Definition contour.c:54
Déclaration des fonctions pour geometry.c.
Déclaration des fonctions pour image.c.
Déclaration des fonctions pour sequence_point.c.
Profil d'une courbe de Bézier de degré 2.
Definition geometry.h:54
Profil d'une courbe de Bézier de degré 3.
Definition geometry.h:64
Structure représentant une image PBM.
Definition sequence_point.h:43
Definition sequence_point.h:27
Type Point.
Definition geometry.h:34
Definition contour.h:23
int x
Definition contour.h:24
Orientation o
Definition contour.h:25
Definition sequence_point.h:55