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 !