Exploration du contenu des images avec ImageJ

Décomposition d’une image RGB

Une image RGB est une image numérique qui utilise le modèle de couleur rouge-vert-bleu pour représenter les couleurs. Le modèle RVB est le modèle de couleur le plus couramment utilisé dans l’affichage et la création d’images numériques. Comme nous l’avons vu au chapitre sur les capteurs, à chaque pixel d’une image RGB sont associées 3 valeurs d’intensités pour chacun de ces canaux de couleurs (voir Capteurs “RGB”). A contrario, pour une image en niveaux de gris, un seul canal existe, il y a donc une seule valeur d’intensité sur une échelle allant du noir au blanc (Figure 1).

Deux versions (échelle de gris et RGB) de la même image de feuille
ouvertes dans ImageJ
(Fiji) Deux versions (échelle de gris et RGB) de la même image de feuille
ouvertes dans ImageJ
(Fiji)

Deux versions (échelle de gris et RGB) de la même image de feuille ouvertes dans ImageJ (Fiji)

Les images sont des matrices de valeurs numériques

L’outil “Pixel values” permet de visualiser les valeurs numériques associées à chaque pixel. Dans le cas de l’image de la feuille en échelle de gris (8 bits, voir plus loin l’explication sur la profondeur des couleurs), il existe 256 niveaux de couleurs allant progressivement du noir (valeur 0) ou blanc (valeur 255) (Figure 2).

Illustration de l’outil “Pixel values”. Notez que les coordonnées x,y
des pixels sont encodées par rapport à l’origine située dans le coin
supérieur gauche des
images. Illustration de l’outil “Pixel values”. Notez que les coordonnées x,y
des pixels sont encodées par rapport à l’origine située dans le coin
supérieur gauche des
images.

Illustration de l’outil “Pixel values”. Notez que les coordonnées x,y des pixels sont encodées par rapport à l’origine située dans le coin supérieur gauche des images.

On distingue très nettement dans la matrice de valeurs celles relatives à la zone ‘verte’ de la feuille (valeurs proches de 70) de celles des pixels de la zone décolorée (valeurs supérieures à 100).

Transformation d’une image RGB en une image composée des 3 canaux
rouge, vert et bleu. Chaque canal peut être analysé individuellement en
déplaçant le sélecteur ‘c’ dans le bas de
l’image. Transformation d’une image RGB en une image composée des 3 canaux
rouge, vert et bleu. Chaque canal peut être analysé individuellement en
déplaçant le sélecteur ‘c’ dans le bas de
l’image.

Transformation d’une image RGB en une image composée des 3 canaux rouge, vert et bleu. Chaque canal peut être analysé individuellement en déplaçant le sélecteur ‘c’ dans le bas de l’image.

Les espaces de couleurs

Plusieurs méthodes ou espaces de couleurs existent pour représenter et gérer les couleurs des images digitales: en plus du RGB, les plus connus sont CMYK, HSL (ou HSB) et CIELab.

Les espaces de couleurs les plus utilisés <a href="https://doi.org/10.1186/s40543-021-00271-9" target="_blank">Source: Phuangsaijai et
al. (2021)</a> Les espaces de couleurs les plus utilisés <a href="https://doi.org/10.1186/s40543-021-00271-9" target="_blank">Source: Phuangsaijai et
al. (2021)</a>

Les espaces de couleurs les plus utilisés Source: Phuangsaijai et al. (2021)

Le modèle RGB est basé sur la combinaison additive des trois couleurs primaires : rouge, vert et bleu. En mélangeant différentes intensités de ces trois couleurs, on peut obtenir une large gamme de couleurs. Les valeurs RGB sont généralement représentées par des nombres entiers ou des valeurs normalisées entre 0 et 1 pour chaque canal de couleur (0 pour aucune intensité, 1 pour une intensité maximale) en fonction de la profondeur des couleurs (voir plus loin).

Le modèle CMYK est basé sur la combinaison soustractive des couleurs cyan, magenta, jaune et noir (ou “key” en anglais). Les couleurs sont obtenues en soustrayant de la lumière blanche (ou d’une surface blanche) les couleurs cyan, magenta et jaune, tandis que le noir est ajouté pour améliorer la reproduction des couleurs sombres et des détails fins. L’espace CMYK est essentiel pour garantir la correspondance des couleurs lors de l’impression de documents mais il n’est généralement pas utilisé pour l’analyse d’images biologiques.

Le modèle HSL (Teinte-Saturation-Luminosité, HSV en anglais) ou HSB (Teinte-Saturation-Brillance) décrit une couleur en termes de teinte (hue), de saturation et de luminosité (ou de brillance dans le modèle HSB). La teinte représente la couleur elle-même, la saturation mesure la pureté ou la vivacité de la couleur, et la luminosité ou la brillance indique la luminosité de la couleur (du noir au blanc). Ces espaces de couleurs peuvent être utiliser pour ajuster le contraste et la luminosité afin de mettre en évidence des structures spécifiques dans des images biologiques. Il a par exemple été montré qu’utiliser cet espace de couleur permettait de distinguer plus efficacement et de manière plus robustes les feuilles des plantes dans des images prises dans des conditions variables de luminosité en extérieur (voir par exemple Yang et al. (2015) et Hamuda et al. (2017)).

L’espace de couleur CIELab est un espace de couleur perceptuel basé sur les propriétés de la vision humaine. Il a été développé pour être indépendant du dispositif et permettre une description précise des couleurs perçues. Il est basé sur trois composantes : L* pour la luminosité, a* pour la composante verte-rouge, et b* pour la composante bleue-jaune. L’espace CIELab est largement utilisé dans l’analyse d’images biologiques pour des tâches telles que la segmentation d’objets, la mesure de couleurs, la détection de tissus et la quantification des éléments biologiques. Tout comme l’espace HSV, l’espace CIELab semble particulièrement adapté pour pour isoler des plantes dans des images complexes (voir par exemple: Riehle et al. (2020) et Tausen et al. (2020))

Canaux et histogrammes

L’usage des espaces de couleurs et des canaux qu’ils définissent sont extrêmement utiles pour l’analyse d’images. La figure 5 illustre que certains des canaux dans une image RGB, HSV ou CIELab permettent d’obtenir un constraste important entre les valeurs des pixels qui appartiennent à des zones différentes de l’image. C’est une base essentielle à l’objectif de segementation des images qui nous occupera plus loin dans le cours.

Transformation d&rsquo;une image d&rsquo;un espace de couleurs RGB (à gauche) vers
les espaces HSV (au centre) et CIELab (à droite). L&rsquo;impact de ces
transformations sur la distinction des différentes partie de l&rsquo;image
(background, feuille décolorée et feuille verte) est visible sur le
profil de valeurs des pixels se situant sur le segment de droite tracé
sur l&rsquo;image. Les canaux bleu, saturation et b* sont analysés,
respectivement, pour les images RGB, HSV et
CIELab Transformation d&rsquo;une image d&rsquo;un espace de couleurs RGB (à gauche) vers
les espaces HSV (au centre) et CIELab (à droite). L&rsquo;impact de ces
transformations sur la distinction des différentes partie de l&rsquo;image
(background, feuille décolorée et feuille verte) est visible sur le
profil de valeurs des pixels se situant sur le segment de droite tracé
sur l&rsquo;image. Les canaux bleu, saturation et b* sont analysés,
respectivement, pour les images RGB, HSV et
CIELab

Transformation d’une image d’un espace de couleurs RGB (à gauche) vers les espaces HSV (au centre) et CIELab (à droite). L’impact de ces transformations sur la distinction des différentes partie de l’image (background, feuille décolorée et feuille verte) est visible sur le profil de valeurs des pixels se situant sur le segment de droite tracé sur l’image. Les canaux bleu, saturation et b* sont analysés, respectivement, pour les images RGB, HSV et CIELab

Dans le cas de l’image utilisant l’espace de couleurs RGB, la séparation des canaux (Figure 6) révèlent que le canal bleu est celui qui constraste le plus les différentes partie de l’image.

&hellip; &hellip;

On distingue 4 zones sur l’histogramme: une à l’extrémité “noire” (valeur 0), une à l’extrémité bleue (valeur proche de 255) et 2 autres zones plus diffuses entre ces 2 extrêmes (Figure 7).

&hellip; &hellip;

Lorsqu’on calcule l’histogramme de chaque partie de l’image, la feuille verte, la feuille décolorée et le fond, on constate que 3 des 4 zones observées sur l’histogramme de la figure 7 correspondent à chacune de ces parties (Figure 8). Cela implique qu’il est possible de segmenter ces différentes parties en séparant les pixels en 3 groupes de valeurs.

&hellip; &hellip;

Les images composites

Une image composite est une image numérique qui est créée en combinant plusieurs images individuelles pour former une seule image à plusieurs couches. Cela s’apparente à superposer des calques sur une même image. Ces images individuelles peuvent provenir de différentes sources ou de différentes acquisitions, et elles sont généralement superposées ou fusionnées pour créer une représentation visuelle combinée. Les images composites sont trsè utilisées en microscopique à fluorescence afin de combiner sur une seule image plusieurs canaux de fluorescence pour visualiser, par exemple, des marqueurs spécifiques à différentes structures cellulaires (Figure 9).

&hellip; &hellip;

L’outil “Channel tools” permet de visualiser chaque calque ou canal d’une image composite (Figure 10)

&hellip; &hellip;

Lookup tables

Les images en niveaux de gris sont composées de pixels ayant différentes valeurs de luminosité (du noir au blanc), généralement codées en niveaux de gris de 0 (noir) à 255 (blanc) dans une image 8 bits. L’outil Lookup Table (LUT) permet de modifier la façon dont ces niveaux de gris sont associés à des couleurs dans une image couleur. Il permet de créer des variations de couleurs pour rendre plus visuellement distincts différents niveaux de gris.

ImageJ propose plusieurs LUT prédéfinies, également appelées palettes de couleurs, que vous pouvez appliquer à une image en niveaux de gris. Par exemple, vous pouvez utiliser la palette “Fire” pour rendre les niveaux de gris plus chauds, ou la palette “3-2-2 RGB” pour mettre en évidence des dégradés subtils dans une plage de valeurs d’échelle de gris.

Vous avez également la possibilité de créer vos propres Lookup Tables personnalisées. Cela vous permet de spécifier comment chaque niveau de gris doit être associé à une couleur particulière. Vous pouvez créer des LUT qui correspondent à des besoins spécifiques, par exemple pour mettre en évidence des structures particulières dans une image.

&hellip; &hellip;

Remarque

Bien que l’outil Lookup Table modifie la manière dont les images sont affichées, il n’affecte pas les données sous-jacentes de l’image. Les modifications apportées à la palette de couleurs n’affectent pas les valeurs numériques réelles des pixels, ce qui signifie que vous pouvez toujours effectuer des analyses quantitatives sur l’image d’origine.

Profondeur des couleurs

La profondeur des couleurs, également connue sous le nom de “profondeur de bits” ou “bit depth”, d’une image numérique fait référence à la quantité d’informations de couleur contenue dans chaque pixel de l’image. Elle détermine le nombre de nuances de couleurs que chaque pixel peut représenter. La profondeur des couleurs est un aspect essentiel de la qualité visuelle et de la fidélité des couleurs d’une image.

&hellip; &hellip;

La profondeur des couleurs est souvent exprimée en termes de “bits par pixel” (BPP), ce qui indique le nombre de bits alloués à chaque pixel pour représenter la couleur. Par exemple, une image en niveaux de gris avec une profondeur de couleur de 8 bits par pixel peut représenter 256 nuances de gris différentes (2^8 = 256). Au plus la profondeur des couleurs (même quand on parle d’une image en échelle de gris) d’une image est élevée, au plus la précision et la quantité de données (donc la mémoire physique occupée par l’image) sont grandes. La profondeur maximale d’une image est bien entendu définie par les caractéristiques du capteur qui a été utilisé pour la produire.

Les images couleur RGB sont généralement codées en utilisant des profondeurs de couleur de 24 bits (8 bits par canal), ce qui permet de représenter plus de 16 millions de couleurs différentes. Ce format est souvent appelé “True Color” (couleur réelle).

Z-stacks et hyperstacks

Un Z-stack est une série d’images acquises à différentes profondeurs le long de l’axe Z (l’axe de la profondeur) d’un échantillon en 3D. Les images d’un z-stack servent généralement à étudier des échantillons tridimensionnels tels que des cellules, des tissus ou d’autres objets biologiques. Les images d’un z-stack peuvent être utilisées pour reconstruire une image 3D complète de l’échantillon. En empilant les images les unes sur les autres dans l’ordre approprié, on obtient une représentation tridimensionnelle de l’échantillon. Les z-stacks sont couramment obtenus à l’aide de techniques d’imagerie telles que la microscopie confocale, la microscopie à fluorescence, la tomographie à rayons X, l’imagerie par résonance magnétique (IRM) et d’autres techniques d’imagerie médicale avancées.

Un hyperstack est une extension ou une généralisation des (Z-)stacks, conçu pour gérer des données multi-dimensionnelles complexes. Un hyperstack peut inclure des informations supplémentaires, telles que le temps. Par exemple, un hyperstack peut représenter une séquence d’images 3D en temps réel d’un échantillon biologique, où chaque image contient des données de plusieurs canaux de fluorescence et de différentes profondeurs de la scène (Figure 13).

Illustration d&rsquo;un hyperstack à 5 dimensions: une matrice [x,y],
plusieurs couches sur l&rsquo;axe z, 2 canaux de couleurs, et une série
temporelle Illustration d&rsquo;un hyperstack à 5 dimensions: une matrice [x,y],
plusieurs couches sur l&rsquo;axe z, 2 canaux de couleurs, et une série
temporelle

Illustration d’un hyperstack à 5 dimensions: une matrice [x,y], plusieurs couches sur l’axe z, 2 canaux de couleurs, et une série temporelle