Added README
This commit is contained in:
		
							parent
							
								
									df4ad14ef1
								
							
						
					
					
						commit
						a759caff99
					
				
							
								
								
									
										28
									
								
								README.org
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								README.org
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					* Compression d'images par surfaces de couleur unies
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					** Présentation du projet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Ce projet est un projet de cinquième semestre en faculté d’Informatique à l’Université Vincennes-Saint-Denis (Paris VIII). Il consiste à compresser des images via la détection de surfaces de couleur unie et leur stockage dans le fichier compressé. Il est à noter que cet algorithme sera particulièrement efficace pour les images ne contenant que peu de couleurs différentes tels que des images de bandes-dessinées, et sera au contraire très peu performant voire contre-productif pour des images contenant beaucoup de couleurs différentes telles que des photographies.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Les instructions complètes données par M. Bourdin pour ce projet peuvent être trouvées [[http://www.ai.univ-paris8.fr/~jj/Cours/Algo/AA18.html#projets][à cette adresse]], projet numéro 22.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					** Compilation du projet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Afin de compiler le projet, il faut bien évidemment avoir les outils de compilation de base tel qu’un compilateur C (~gcc~ ou ~clang~), ~cmake~ (version ~2.8~ minimum) et ~make~. Un ~Makefile~ est utilisable afin de créer les fichiers nécessaires via CMake dans le bon répertoire et compiler la version voulue. Il est possible de compiler soit une version de débug avec ~make debug~, soit une version de release avec ~make release~ ; l’exécutable se trouvera respectivement dans ~debug/surfaces-unies~ ou dans ~bin/surfaces-unies~.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Pour recompiler le projet au besoin, vous trouverez le makefile généré par CMake dans le répertoire ~build/~.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					** Utilisation du logiciel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Vous pouvez obtenir de l’aide sur l’utilisation du logiciel via la commande ~./surfaces-unies --help~ ou ~./surfaces-unies -h~.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Les options disponibles pour le logiciel sont :
 | 
				
			||||||
 | 
					- ~-i / --input~ :: *OBLIGATOIRE*, doit être suivi du fichier d’entré, peut être soit un fichier image ppm à compresser, soit un fichier ~.su~ généré par ce logiciel pour la décompression.
 | 
				
			||||||
 | 
					- ~-o / --output~ :: Suivit par le chemin vers le fichier de sortie, si le chemin indique un fichier existant, il sera écrasé par le logiciel, sinon il sera créé.
 | 
				
			||||||
 | 
					- ~-c / --compress~ :: *PAR DÉFAUT* indique au logiciel que le fichier d’entrée doit être compressé
 | 
				
			||||||
 | 
					- ~-u / --uncompress~ :: indique au logiciel que le fichier d’entrée doit être décompressé
 | 
				
			||||||
 | 
					- ~-h / --help~ :: affiche le message d’aide du logiciel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					** Améliorations futures
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Une amélioration possible du logiciel peut être l’introduction d’une option ~-t / --tolerance~ indiquant un pourcentage de tolérence pour l’acceptation d’une couleur dans une zone selon sa similarité à la couleur racine d’une surface unie. Ainsi, une tolérance par défaut à 0% impliquerait une compression sans perte de l’image, alors qu’une compression avec une tolérance non-nulle induirait une compression avec pertes de l’image d’entrée.
 | 
				
			||||||
@ -24,7 +24,7 @@
 | 
				
			|||||||
void help(int t_exit_code) {
 | 
					void help(int t_exit_code) {
 | 
				
			||||||
  puts("Usage:");
 | 
					  puts("Usage:");
 | 
				
			||||||
  puts("surfaces-unies -i path [-o path] [-options]\n");
 | 
					  puts("surfaces-unies -i path [-o path] [-options]\n");
 | 
				
			||||||
  puts("The default action is to compress the mandatory input image to a .sf");
 | 
					  puts("The default action is to compress the mandatory input image to a .su");
 | 
				
			||||||
  puts("file saved in the current directory.");
 | 
					  puts("file saved in the current directory.");
 | 
				
			||||||
  puts("The input image MUST be saved in the ppm format.");
 | 
					  puts("The input image MUST be saved in the ppm format.");
 | 
				
			||||||
  puts("Options available:");
 | 
					  puts("Options available:");
 | 
				
			||||||
@ -91,7 +91,7 @@ void get_args(Argres *t_args, int *t_c) {
 | 
				
			|||||||
Argres process_args(const int t_argc, char *t_argv[]) {
 | 
					Argres process_args(const int t_argc, char *t_argv[]) {
 | 
				
			||||||
  Argres res;
 | 
					  Argres res;
 | 
				
			||||||
  res.input = NULL;
 | 
					  res.input = NULL;
 | 
				
			||||||
  res.output = "output.fs";
 | 
					  res.output = "output.su";
 | 
				
			||||||
  while (true) {
 | 
					  while (true) {
 | 
				
			||||||
    int option_index = 0;
 | 
					    int option_index = 0;
 | 
				
			||||||
    static struct option long_options[] = {
 | 
					    static struct option long_options[] = {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user