surfaces-unies/README.org
2018-11-20 15:15:45 +01:00

46 lines
3.3 KiB
Org Mode
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

* Compression d'images par surfaces de couleur unies
** Présentation du projet
Ce projet est un projet de cinquième semestre en faculté dInformatique à lUniversité 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 quun compilateur C (testé avec ~gcc~ et ~clang~), ~cmake~ (version ~2.8~ minimum) et ~make~. Deux options sont disponibles :
Soit on peut utiliser le ~Makefile~ disponible à la racine du dépôt et exécuter lune des deux commandes suivantes :
#+BEGIN_SRC shell
$ make debug # pour compiler la version de débug du projet
$ make release # pour compiler la version de release du projet
#+END_SRC
Soit on utilise la méthode un peu plus manuelle :
#+BEGIN_SRC shell
$ mkdir -p build bin debug
$ cd build
$ cmake --DCMAKE_BUILD_TYPE=Debug .. # si on veut compiler la version de débug du projet
$ cmake --DCMAKE_BUILD_TYPE=Release .. # si on veut compiler la version de release du projet
$ make
#+END_SRC
Dans les deux cas, lexécutable se retrouvera soit dans ~bin/surfaces-unies~ en cas de compilation en release, soit dans ~debug/surfaces-unies~ en cas de compilation en débug.
Pour recompiler le projet au besoin, vous trouverez le makefile généré par CMake dans le répertoire ~build/~ et y exécuter ~make~.
** Utilisation du logiciel
Vous pouvez obtenir de laide sur lutilisation 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 dentré, 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 dentrée doit être compressé
- ~-u / --uncompress~ :: indique au logiciel que le fichier dentrée doit être décompressé
- ~-h / --help~ :: affiche le message daide du logiciel
** Améliorations futures
Une amélioration possible du logiciel peut être lintroduction dune option ~-t / --tolerance~ indiquant un pourcentage de tolérence pour lacceptation dune couleur dans une zone selon sa similarité à la couleur racine dune surface unie. Ainsi, une tolérance par défaut à 0% impliquerait une compression sans perte de limage, alors quune compression avec une tolérance non-nulle induirait une compression avec pertes de limage dentrée.