Dans le but de pouvoir analyser des images de grande taille plus rapidement, un re-développement de l’outil sous Python a été réalisé.
Le code source est disponible librement sur ce dépôt Github : https://github.com/ljegou/PyColorTool
Description du fonctionnement
Ce projet utilise la bibliothèque Flask, qui permet de créer des applications web multi-threads, c’est à dire avec plusieurs traitements possibles en parallèle. Cela permet d’offrir une interface graphique (page HTML) et de pouvoir suivre l’avancement des analyses (barre de progression).
L’analyse elle-même est bâtie autour d’une clusterisation (classification) de type K-Moyennes, réalisée par la bibliothèque SciKit-Learn du projet SciPy (de type KMeans++, plus précisément).
Ainsi, la méthode de regroupement des couleurs est légèrement différente de celle proposée par l’outil JavaScript, mais plus rapide.
Le paramétrage est aussi plus simple : on ne choisit que le nombre de classes de couleurs à créer, puis des paramètres de présentation (taille, opacité des cercles, type d’axe radial).
La représentation graphique des résultats est réalisée automatiquement dans le mode “radar” par la bibliothèque MatPlotLib, ce qui permet d’obtenir un graphe configurable (échelle de la grille, unités des axes, position des libellés, rotation, etc.).
Il reste des possibilités de configuration à fournir, comme le choix de l’espace de couleurs utilisé pour le calcul des regroupements (ici HSV par défaut), mais l’application fonctionne déjà de façon à être testée facilement.
N’hésitez pas à la réutiliser et à proposer des compléments !
OpenEdition vous propose de citer ce billet de la manière suivante :
Laurent Jégou (20 juillet 2017). Une version python pour l’outil de synthèse colorée. Harmonies Colorées. Consulté le 15 octobre 2024 à l’adresse https://doi.org/10.58079/n6rs
Bonjour,
Je suis amené a utiliser votre projet pour comparer des photos réalisées sous différentes scènes d’éclairage (en tunnel).
Je voudrais savoir si votre projet http://www.geotests.net/couleurs/v2/# est disponible sur Git par exemple pour me permettre d’ajouter des fonctions ?
En tous les cas bravo et merci d’avance de votre réponse.
Bonjour, merci de votre commentaire. J’ai réalisé un dépôt GitHub rapide à partir de la dernière version web de l’outil :
https://github.com/ljegou/Color-tool
Il s’agit en fait d’une seule page HTML qui contient le code JS.
Super, je vais essayer de regarder votre dépôt, j’avais commencé à regarder le dépôt python.
Je vous ferais un retour.
Concernant le site web et l’outil j’ai une petite remarque concernant l’utilisation de l’outil “3-Type of representation” et de l’analyse sur une ligne (Line (two clicks): il persiste sur l’image le message ‘Click to Expand’ qui empêche de venir cliquer sur certains pixels de l’image.
Encore une fois merci de votre réponse rapide.
Merci pour ce retour, je vais y regarder dès que possible. N’hésitez pas à revenir vers moi pour ce type de demandes, je suis naturellement sensible à toute réutilisation.
A wonderful tool, that I just found.
Having been analyzing thousands of images, and having to define k of k-means in advance and uniformly for all of them, I found exciting that you don’t have to define the number of color clusters in advance. I wonder if there is a way to batch analyze more than one images at once, e.g., all the images in a folder.
Hello and thanks for your kind comments. As the tool was developed for Python2.7, the code upgrade for 3.x is not trivial, several packages are obsolete. So, to add new functions as a batch mode could be difficult, I can’t promise a new version soon.
Perhaps it is possible to batch use / script the web/JS version.
Thanks a lot. Will give a try!