Tuto Imagej
Tuto Imagej
ImageJ est un logiciel libre, qui fonctionne aussi bien sous plate-forme Windows, Mac ou
Linux. Initialement développé pour analyser des images médicales par le National Instute of
Health, c’est un outil très versatile pour effectuer des mesures physiques à partir d’images ou
de videos. Vous pouvez le télécharger gratuitement sur le site: http://rsb.info.nih.gov. De
multiples macros, plugins et exemples sont également disponibles sur ce site.
Sans chercher à décrire toutes les possibilités de ce logiciel, nous présentons ici quelques
éléments qui pourront être utiles pour les TPs ou tutorats.
Afin d’éviter de manipuler des images trop grosses qui risquent de saturer la mémoire de
l’ordinateur, il est ainsi recommandé de recadrer l’image en sélectionnant la partie intéressante
dans un rectangle puis en appliquant la commande Image/Crop.
Les images issues d’un appareil photo sont en général codées en RGB (Red, Green, Blue) avec
une résolution de 8 bits par pixel. Si la couleur n’est pas nécessaire il est conseillé de convertir
ces images en niveau de gris qui demandent 3 fois moins de mémoire grâce à la commande
Image/Type/8-bit.
Si la partie intéressante de l’image s’avère être claire sur un fond sombre, il est conseillé
d’imprimer le négatif de l’image. Pour cela il suffit d’appliquer Edit/Invert.
1 Image unique
1.1 Imposer une échelle, mesurer des longueurs
Une image numérique est composée de pixels. Une des premières opérations classiques est
donc de convertir la taille des pixels en longueur physique. Pour cela, il ne faut pas oublier
de prendre une échelle sur l’image. À l’aide de l’outil “straight line”, on peut tracer
un ligne entre les extrémités de cette échelle. La longueur de la ligne (en pixels) s’affiche sur
la barre d’outils. Pour passer des pixels à une longueur physique, aller sur Analyse/Set
Scale... et indiquer l’unité de mesure et la longueur dans la case “known distance”.
On peut aussi avoir besoin de mesurer plusieurs longueurs sur la même image. On veut
par exemple mesurer la taille des ronds que font des traceurs dans un cuve à vague.
2
1.4 Binariser une image
Certaines applications (détection de contour par exemple) font appel à une image binarisée
(c’est-à-dire en noir et blanc).Si l’image est en couleur, il faut tout d’abord transformer la
couleur en échelle de gris en allant sur Image/Type/8-bit. Ensuite on définit un seuil
en niveau de gris qui sépare le ‘noir’ du ‘blanc’ grâce à Image/Adjust/Threshold.... Il
suffit de faire glisser les curseur. Ce qui sera noir au final apparaı̂t en rouge sur l’image
intermédiaire, ce qui est commode pour ajuster le seuil.
3
Figure 5: Image ‘sans trous’, contour issu de la dérivation.
4
la caméra. Cependant cela ne fonctionne pas à tous les coups. Le plus simple est alors
de sauvegarder le film sous forme de séquence d’image qu’ImageJ saura ouvrir sans diffi-
culté (un sous-dossier par film, sinon on ne s’y retrouve plus!). Il suffit pour cela d’aller
sur File/Import/Image Sequence..., puis de cliquer sur l’une des images. Si le film est
initialement en couleur, et que celle-ci n’est pas nécessaire, cocher l’option Convert to 8-
bit grayscale. Dès que le nombre d’images est un peu grand, l’importation complète de la
séquence d’images peut saturer la mémoire de l’ordinateur. On peut s’en sortir en cochant
l’option Virtual Stack. Les opérations sont alors un peu plus longues (le programme ouvre
et ferme les images successivement), mais il n’y a plus de limite de mémoire.
Dans l’exemple suivant, nous observons l’éclatement d’un film de savon filmé à 4500
images/secondes. Le diamètre du cadre est de 15 cm. Nous sélectionnons une ligne qui
passe par le centre du trou, puis effectuons l’opération de “reslice”.
Figure 7: Éclatement d’un film de savon: quelques clichés de la séquence d’image, opération
“reslice” à partir de la ligne définie sur la séquence, diagramme spatio-temporel, mesure de
l’angle de la ligne sur la barre d’outils.
5
Nous obtenons un diagramme “spatio-temporel” dans lequel la ligne prélevée sur chaque
image est représentée verticalement, le temps étant représenté par l’axe horizontal. Dans
cet exemple particulier, le trou se traduit par une tache noire dont l’extension augmente au
cours du temps. Nous observons ici que la taille du trou évolue linéairement avec le temps:
la vitesse est constante.
Que vaut cette vitesse? L’angle α que fait la ligne avec l’horizontale est visible sur la barre
d’outils. La tangente de cet angle correspond donc à la vitesse d’ouverture du film. Cependant
tout est en pixel (veiller à ne pas faire “set scale” avant un “reslice”, sinon le temps se retrouve
en unité de longueur). Reste donc à convertir les pixels en longueur et en temps. Dans cet
exemple, le diamètre du cadre vaut 15 cm et représente 190 pixels sur l’image. L’intervalle
entre chaque image vaut 1/4500 s et correspond à 1 pixel sur le diagramme (dans le format
européen, les films standards sont produits à 25 images/s). La vitesse d’ouverture vaut ainsi:
0.15 m
V = tan 65o 4500 im/s = 7.6 m/s
190 pixels
Figure 8: Ascension d’une bulle: la superposition des images permet de visualiser la trajectoire
oscillante.