Ressources numériques en sciences humaines et sociales OpenEdition Nos plateformes OpenEdition Books OpenEdition Journals Hypothèses Calenda Bibliothèques OpenEdition Freemium Suivez-nous

Polar Prism : visualisations expérimentales par transformation polaire dans ImageJ

Fig. 1. Un éventail de bandes colorées convergeant vers un point central, obtenu via une reconstruction polaire vers cartésienne, volontairement déformée.

Polar Prism est un plugin expérimental pour le logiciel ImageJ/Fiji qui s’appuie sur une opération classique de l’analyse d’images : la transformation en coordonnées polaires. La particularité de notre plugin est qu’il détourne volontairement l’étape de reconstruction pour générer des formes visuelles inédites.

Dans un usage “standard”, la transformation polaire sert à :
• linéariser des structures circulaires,
• mesurer des motifs radiaux,
• comparer des textures par angle et distance,
• reconstruire une image (aller-retour cartésien-polaire).

L’objectif de Polar Prism est différent. Pour nous, la transformation devient un instrument de visualisation. On obtient des images qui se comportent comme des signatures radiales, parfois proches d’une “empreinte” chromatique ou d’un diagramme d’angle.

Base conceptuelle de la transformation polaire

Pour un point (x, y) exprimé relativement à un centre (cx, cy) :
• rayon : r = sqrt(x² + y²)
• angle : θ = atan2(y, x) (converti dans [0, 360) degrés)

Dans une image polaire, on encode souvent :
• x_polaire = r (ou une version mise à l’échelle)
• y_polaire = θ (mappé sur la hauteur de l’image)

Pour reconstruire (polaire vers cartésien), on parcourt chaque pixel de l’image de sortie, on calcule (r, θ) correspondant, puis on échantillonne l’image d’entrée au point (x_polaire, y_polaire).

La qualité visuelle dépend largement de l’interpolation. Notre plugin utilise getInterpolatedPixel() pour les images en niveaux de gris et une interpolation bilinéaire “à la main” pour les images RGB (interpolateColorPixel()). C’est notamment ce qui contribue aux “rayons” continus (plutôt qu’à des artefacts en escalier).

Comment l’exécuter dans Fiji/ImageJ

  • Ouvrir Fiji/ImageJ
  • Ouvrir une image
  • (Optionnel) Dessiner une ROI pour définir un centre pertinent
  • Installer :
    • télécharger le script Polar_Prism.java
    • placer dans le dossier plugins/ (ou compiler via l’éditeur de plugins)
  • Lancer le plugin depuis le menu Plugins
  • Tester :
    • Prism + Smooth pour un rendu radial dense
    • désactiver les valeurs par défaut pour régler centre, biais radial, saturation

Refléxion

Le plugin ne suppose pas que l’entrée soit une “scène” photographique. Toute image rectangulaire peut être interprétée comme une carte où :

  • l’axe x encode un “rayon” (ou un index ordonné),
  • l’axe y encode un “angle” (ou une variable cyclique / une série).

Cela permet de visualiser :

  • des cartes polaires calculées en amont,
  • des images type sinogrammes (Fahey 2002),
  • des empilements de “slices”,
  • voire des matrices synthétiques (gradients, cartes de features, encodages).

La sortie devient alors un objet compact, comparable, souvent utile comme signature visuelle.

Version web

J’ai mis en ligne une version web de Polar Prism pour faciliter l’accès à l’outil, en particulier pour les utilisateurs sur Mac Apple Silicon (processeurs série M), où l’installation/compatibilité d’ImageJ/Fiji peut varier selon les versions et les configurations. Cette version JavaScript fonctionne directement dans le navigateur : on charge une image, on ajuste les paramètres, et on génère les rendus “prismatiques” sans dépendance locale.

https://ereyes.github.io/polarprism

Crédits

Variation Polar Prism : Everardo Reyes, 30 août 2017. Basé sur une version originale de Edwin F. Donnelly.

Reyes García, E. (2025). Polar Prism JS (1.0). Zenodo. https://doi.org/10.5281/zenodo.18011274

Références

Expérimentations visuelles des vidéos YouTube

Ce cas d’étude s’inspire directement des méthodologies empiriques issues des recherches sur les plateformes web, et plus spécifiquement des travaux cherchant à décrire la structure de YouTube.

Nous avons étudié les vidéos les plus regardées depuis le lancement de YouTube en 2005, dans l’objectif de concevoir une visualisation interactive web. À partir de la liste officielle « Top Ten » proposée par YouTube , nous avons d’abord noté que les vidéos les plus visionnées sont toutes des clips musicaux. Afin d’élargir notre analyse, nous nous sommes tournés vers une playlist communautaire intitulée « Most Viewed Videos of All Time », publiée par MyTop100Videos, qui recense 532 vidéos cumulant à elle seule plus de 34 milliards de vues.

Méthodologie du cas d’étude : extraction et structuration des données

La première étape de notre démarche a consisté à identifier, collecter et structurer les données nécessaires à notre visualisation interactive. Puisque YouTube ne permet pas directement le téléchargement de ces informations, nous avons analysé le code source HTML de la playlist « Most Viewed Videos of All Time » afin d’en extraire les métadonnées pertinentes (titres, auteurs, nombres de vues, dates et vignettes). Cette approche vise à rendre visible la manière dont l’information est structurée et encodée au sein des pages web.

Pour réaliser cette extraction, nous avons développé un script Python[1], exécuté sur Google Colab, afin de récupérer automatiquement les principales métadonnées associées aux vidéos. Le résultat, accessible en ligne, est enregistré sous la forme d’un fichier CSV[2]. Nous avons ensuite effectué deux opérations complémentaires pour préparer les données à la visualisation. Premièrement, le nombre de vues a été normalisé pour faciliter leur représentation graphique (la vidéo la plus populaire, atteignant 15 milliards de vues, a ainsi été ramenée à une échelle maximale de 1000). Deuxièmement, une analyse colorimétrique des vignettes a été réalisée pour identifier les couleurs dominantes utilisées afin d’attirer l’attention des utilisateurs. Nous avons utilisé à cet effet un second script Python pour télécharger les images[3], puis notre outil Drag & Hue (Reyes, 2024) afin d’extraire leurs valeurs numériques selon les modèles RVB et HSL. Ces deux modèles colorimétriques complémentaires ont permis de générer un ensemble cohérent de six variables numériques, exploitées par une analyse en composantes principales (PCA) réalisée via un troisième script Python[4].

Le recours à cette méthode a également permis de mettre en évidence l’ampleur des médiations techniques propres à YouTube. En effet, l’extraction d’informations telles que les liens, titres, chaînes, vues ou dates de publication nécessite de comprendre les conventions spécifiques adoptées par la plateforme dans son code HTML. Ces conventions sont révélatrices du positionnement de YouTube en tant que média numérique structuré autour d’une logique de recommandation et d’interaction algorithmique. Ainsi, la longueur importante du code HTML d’une seule vidéo issue de la playlist (261 lignes en moyenne, soit plus de 116 000 lignes pour l’ensemble des 532 vidéos étudiées) ne constitue pas seulement un détail technique. Elle témoigne surtout de la stratification complexe du code, résultant des multiples couches d’interfaces, de mesures d’audience, et de gestion automatique des contenus mises en place par YouTube (Liddle, 2023).

Exploration graphique de la visualisation de données

Pour ce cas pratique, nous avons choisi d’utiliser l’élément <canvas> comme support graphique sans avoir recours à des web app ou librairies graphiques, qui tendent à imposer des contraintes sur les modalités visuelles associées aux données. La seule ressource externe employée dans nos prototypes est l’analyseur CSV PapaParse, très répandu pour son efficacité et sa vitesse de traitement.

Nous avons d’abord exploré des représentations simples. Un premier exemple associe chaque vidéo à un cercle dont la couleur dominante reprend celle de sa vignette. Les cercles sont ensuite disposés sous forme tabulaire (figure 1, gauche). Dans un deuxième exemple, le nombre de vues est associé à des points colorés regroupés également sous forme tabulaire (figure 1, droite).

Fig. 1. Deux visualisations du même jeu de données. E. Reyes, 2025

Afin d’exploiter davantage la bidimensionnalité du <canvas>, nous avons ensuite réalisé des représentations plus complexes. La figure 2 (à gauche) présente ainsi un nuage de points organisé en référence au cercle chromatique, où les couleurs les plus saturées sont placées à l’extérieur, et les moins saturées vers le centre. À droite, nous montrons un nuage de nœuds utilisant un algorithme dit de spatial hashing (grille spatiale). Contrairement aux précédentes visualisations, où chaque élément occupe une position fixe et prédéfinie, cet algorithme divise l’espace graphique en cellules afin d’accélérer la détection et d’éviter des superpositions d’éléments visuels. Cette discrétisation spatiale réduit significativement le nombre d’opérations techniques nécessaires à la détection de collisions, accélérant ainsi l’affichage à l’écran.

Fig. 2. Nuage de points et nuages de nœuds. E. Reyes, 2025

Une version interactive du prototype a également été réalisée où chaque cercle peut être cliqué, révélant ainsi une boîte d’information avec les métadonnées associées à la vidéo. Cette version est consultable en ligne[5]. Certes, d’autres variations pourraient être envisagées. Notre objectif est de montrer la flexibilité méthodologique permise par une approche exploratoire.

Références

D. Liddle & J. Sherrill, « Analyzing YouTube Content: Methodological Considerations for Technical Communication Research ». Proceedings of the 41st ACM International Conference on Design of Communication (SIGDOC ’23). ACM Press, 2023. https://doi.org/10.1145/3615335.3623005

E. Reyes, « Drag & Hue (0.1) », Zenodo, 2024. https://doi.org/10.5281/zenodo.13835746


[1] https://colab.research.google.com/drive/13g5QFlxsEhz-szBF4g7Ol5GPgy8epsvL (consulté le 18 mai 2025).

[2] https://nakala.fr/10.34847/nkl.f80cs31m (consulté le 18 mai 2025).

[3] https://colab.research.google.com/drive/1w0HgjWR4ut0Dt6wB4wmYlXuSiudwa8Ml (consulté le 18 mai 2025).

[4] https://colab.research.google.com/drive/149AJ96YUGYrDRpk9w-J9MoDLJBdIMeI6 (consulté le 18 mai 2025).

[5] https://ereyes.github.io/ytviz/ (consulté le 18 mai 2025).

Créativité computationnelle

GR1D organise une journée d’étude (JE) ce mercredi 14 mai 2025 au Campus Condorcet.

Cette JE vise à explorer une variété de perspectives englobées par le terme générique « le numérique » (the digital), en s’appuyant sur des expériences issues des arts, du design et des sciences humaines. Il interroge les limites conceptuelles et remet en question la théorie par la pratique. Il pose la question : dans quelle mesure la créativité dépend-elle du numérique ?

En tant qu’utilisateurs et habitants d’un monde de plus en plus numérique, il est essentiel de remettre en question les technologies familières qui nous entourent, de ne pas les considérer comme acquises et d’en ouvrir les boîtes noires (Sack 2013). Puisque le logiciel lui-même fonctionne comme une série de traductions de modes de pensée, nous devons comprendre ce qui est traduit, transformé et potentiellement effacé au cours du processus (Sack 2019).

Programme de la journée

9:00 – 9:30 – Accueil de participants

9:30 – 10:00 – Ouverture – Everardo Reyes (Université Paris 8, FR)

10:00 – 10:45 – Giuseppe Torre (University of Limerick, IE)

10:45 – 11:30 – Miguel Carvalhais (Universidade do Porto, PT)

11:30 – 12:15 – Discussion 

12:30 – 13:30 – Pause déjeuner

13:45 – 14:15 – Florent Di Bartolo (Université Gustave Eiffel, FR)

14:15 – 14:45 – Arthur Kuhn (Université Paris 8, FR)

14:45 – 15:15 – Discussion

15:15 – 15:30 – Pause

15:30 – 16:15 – Lauren Tilton & Taylor Arnold (University of Richmond, USA)

17:00 – 17:45 – Warren Sack (UCSC, USA) (Zoom talk live from Santa Cruz, CA)

17:45 – 18:15 – Discussion

18:15 – 18:30 – Mots de conclusion

Affiche

Lieu :

Salle 0.010, Bâtiment de Recherche Nord, Campus Condorcet

14 cours des Humanités, 93300 Aubervilliers