doc | ||
img | ||
src | ||
.gitignore | ||
.gitlab-ci.yml | ||
CMakeLists.txt | ||
CONTRIBUTING.org | ||
LICENSE | ||
Makefile | ||
README.org | ||
TODOs.org |
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 à 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 (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 l’une des deux commandes suivantes :
$ make debug # pour compiler la version de débug du projet
$ make release # pour compiler la version de release du projet
Soit on utilise la méthode un peu plus manuelle :
$ 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
Dans les deux cas, l’exé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 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.