Code Monkey home page Code Monkey logo

decomposition-images's Introduction

Decomposition d'images

Projet d'algorithmique 2A INSA Lyon. Le programme découpe une image en plusieurs carreaux, calcule la couleur moyenne de chaque carreau, et l'associe à une image choisie dans une galerie. Puis, il affiche les images choisies à la place des carreaux.

Installation

Nous vous conseillons d'utiliser venv, comme expliqué sur le site suivant : https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/#creating-a-virtual-environment.

On peut ensuite installer les dépendances avec pip:

pip install -r requirements.txt

Utilisation

Pour lancer le programme:

python src/interface-graphique.py

Format des images

Le programme reconnait n'importe quelle image que PIL reconnait, consulter la page suivante pour plus d'informations: https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.html

Charger une galerie

Une galerie est fournie avec le programme dans le fichier src, qui est déjà chargée. Elle se chargera donc très rapidement. Il est possible d'y rajouter des images.

Il est également possible d'utiliser une autre galerie. Les images dans le fichier au format png, jpg et tif seront chargées, ainsi que celles contenues dans les sous-dossiers de la galerie. Le premier chargement peut prendre un certain temps, les utilisations suivantes seront plus rapide.

Charger une image

Nous vous conseillons de choisir une image de plus de 100*100 pixels, pour éviter qu'elle apparaisse floue. Les pixels transparents d'une image PNG seront lus comme des pixels noirs.

Lancer

Pour lancer, choisissez le nombre d'images sur un côté avec le slider. Vous pouvez ensuite choisir entre le mode noir et blanc, le mode couleur ou la démonstration.

La démonstration découpera l'image en puissances de 2 successives. L'exécution est assez lente, patientez 20 secondes entre chaque étape.

Options

Changer la dimensions du canevas

Si vous souhaitez changer la dimension du canevas pour avoir une image découpée plus grande, il suffit de changer la valeur de l'attribut self.taille_canevas dans le fichier interface_graphique.py.

Attention, selon les performances de votre ordinateur, il sera peut être nécessaire de diminuer le nombre maximal d'images par côté. Pour 600 par 600, la limite sur nos ordinateurs est de 70 par exemple.

Enregistrer

L'image est enregistrée au format postscript (.ps) que vous pouvez convertir avec des logiciels de conversion, comme par exemple ce site web: https://convertio.co/ps-jpg/ Elle n'est malheuresement pas de très bonne qualité, prendre un screenshot est peut-être une meilleure solution.

Vous pouvez choisir où enregistrer l'image, un nom par défaut est renseigné.

Fichiers

Racine

  • README.md Le fichier que vous lisez ;)
  • requirements.txt Fichier contenant les dépendances du projet.
  • LICENSE License du projet (MIT).

Dossier src

  • interface-graphique.py Application principale du projet, lance une interface graphique qui gère l'interface.
  • imageGalerie.py Classe imageGalerie, pour gérer les images de la galerie.
  • imageUtilisateur.py Classe imageUtilisateur, pour faire les calculs sur les images de l'utilisateur.
  • fonctions.py Fichier contenant les fonctions d'interaction avec les fichiers.
  • galerie La galerie de base. Le fichier valeur_moyenne.csv contient les valeurs moyennes des images.
  • testcouleurs.py Fichier utilisé pour constituer la galerie, en testant les couleurs.

Auteurs

Emile CARRON, Coline DAMON, Paul GEORGES, Solenn MINGAT

decomposition-images's People

Contributors

radiognu avatar nuage6355 avatar vachettecoco avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.