doc | ||
img | ||
src | ||
.gitignore | ||
.gitlab-ci.yml | ||
CMakeLists.txt | ||
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 (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.