Une ellipse très discrète

Lorsqu’on souhaite mesurer avec précision un objet par vision industrielle, il est important de maîtriser l’optique d’une part et les effets de la numérisation d’autre part.

Nous traiterons de l’optique plus tard pour nous concentrer ici sur la numérisation : transformation d’un objet du monde réel dans une représentation discrète.

Dans notre cas deux discrétisations sont effectuées, l’une spatiale, l’autre en intensité. Il y correspond la notion de pixel auquel sont associés une position et un codage de couleur. Nous utiliserons par la suite le terme pixel, tantôt pour désigner une dimension, tantôt une couleur.
Le codage de couleur se résume à une valeur de niveaux de gris correspondant à la luminosité dans le cas d’une image noir et blanc, à plusieurs valeurs de niveaux de couleur correspondant aux intensités de ces composantes dans le cas d’une image couleur – par exemple 3 valeurs pour les canaux rouge, vert et bleu lors d’un affichage sur un écran ou 4 valeurs pour les canaux cyan, magenta, jaune, noir pour une impression en quadrichromie. La résolution (profondeur) de ces niveaux de gris ou de couleur dépend du nombre de bits dédiés à son stockage ou transport. Typiquement ces valeurs de niveau de gris ou niveau de couleur vont de 0 à 255 pour un codage sur 8bits, de 0 à 1024 sur 10 bits, de 0 à 4096 sur 12 bits, etc.
Pour servir de préliminaire à l’étude de la discrétisation de particules réelles, nous allons commencer par considérer le cas d’une ellipse théorique parfaite ayant un grand axe de longueur 2a et un petit axe de longueur 2b.
Pour ce faire, imaginons une grille de discrétisation sous laquelle nous plaçons une ellipse. Translatons ensuite cette ellipse de différents offsets en x et y et faisons la tourner de différents angles. Pour chaque combinaison offset & angle nous mesurerons la surface, le périmètre, l’aspect ratio … de cette ellipse et comparerons ces mesures aux valeurs calculées sur l’ellipse théorique.

ellipse non discrète

Ellipse d'axes x' et y' dans le monde réel sur laquelle est superposée une grille de discrétisation spatiale (des pixels)

 

Il est important de comprendre ici que les offsets qui nous intéressent sont de l’ordre du sous-pixel. En effet un périodicité de la discrétisation spatiale est rencontrée pour des offsets multiples de nombre entier de pixels. Dans les graphiques qui suivront nous déplacerons en fait le centre de l’ellipse en 49 positions suivant une sous-grille de 7×7 au sein d’un même pixel de la grille de discrétisation. Et pour chacune de ces positions nous effectuerons 7 rotations de l’ellipse entre 0 et 180 (0°, 25.7°, 51.4°, 77.1°, 102.8°, 128.6° , 154.3°).

L’effet de ces translations peut être illustré par le disque de diamètre 5 ci-dessous

disque de diamètre 5 avec translations au sous-pixel

disque de diamètre 5 avec translations au sous-pixel

Pour ce qui est de l’ellipse théorique, son équation cartésienne est la suivante :

 \frac{x'^{2}}{a^{2}} + \frac{y'^{2}}{b^{2}} = 1

Différentes formules permettent de caluculer ses surface, périmètre, aspect ratio avec exactitude :

 surface = \pi ab

 circonference = 2 \pi a \left[ 1 - \left(\frac{1}{2}\right)^{2}e^{2} - \left(\frac{1.3}{2.4}\right)^{2}\frac{e^{4}}{3} - \left(\frac{1.3.5}{2.4.6}\right)^{2}\frac{e^{6}}{5} - ... \right]

Avec l’approximation de Ramanujan :

 circonference \approx \pi \left[ 3(a+b) - \sqrt{(3a+b)(a+3b)} \right]

 ratio = \frac{b}{a}

L’effet de la discrétisation spatiale consiste a ne retenir de l’ellipse que l’information suivante : un ensemble de valeurs associées à chaque carré de la maille de discrétisation nous informant si ce carré est entièrement, partiellement ou pas du tout sur l’ellipse. Dans l’exemple de notre illustration, la grille comprend 8×7 = 56 carrés et donc nous ne retiendrons de l’ellipse que 56 valeurs.

La discrétisation en intensité concerne maintenant ces valeurs. Quelle précision souhaite-t-on conserver ? On peut prendre par exemple comme critère que si plus de 50% du carré est sur l’ellipse, on lui donne une valeur de 0 et dans le cas contraire une valeur de 1. Il s’agit alors d’une binarisation. Nous dessinons ci-dessous les pixels à 0 en noir et les pixels à 1 en blanc.

Binarisation d'une ellispe

Binarisation d'une ellispe

Si nous souhaitons plus de précision sur cette valeur, associons à chaque pixel le pourcentage de sa surface située sur l’ellipse. C’est ici que joue la discrétisation en niveau de gris. Selon le codage couleur utilisé, ce pourcentage occupera une plage de valeurs entière 0-255, 0-1024… Dans le cas d’images tels les bitmap, cette information est souvent stockée sur 256 niveaux, le 0 étant le noir (0%) et le 255 le blanc (100%). C’est la précision de rendu de nombre d’écran d’ordinateurs standards.
Une autre façon de le dire est que pour chaque pixel on conserve la couleur moyenne de la région qu’il couvre, couleur moyenne discrétisée entre 0 et 255 dans le cas d’images noir et blanc, en trois valeurs entre 0 et 255 dans le cas d’une image couleur.

Ellipse discrétisée en 255 niveaux de gris

Ellipse discrétisée en 255 niveaux de gris

Pour construire l’image ci-dessus sur base de l’équation de l’ellipse, nous allons procéder de la sorte : chaque pixel sera divisé en 256 sous-pixels (sous cadrillage de 16 par 16). Et la valeur du pixel sera le nombre de sous pixel dont le centre est situé sur l’ellipse.

Chaque centre de sous-pixel sera ramené de l’espace xy vers l’espace x’y’ par la transformation :

 x'= (x-offset_x') \cos \theta + (y-offset_y') \sin \theta
 y'= (y-offset_y') \cos \theta - (x-offset_x') \sin \theta

offset_x’ et offset_y’ étant la position respective de l’origine de l’espace x’y’ par rapport à l’origine de l’espace xy.

Ainsi le sous pixel est sur l’ellipse si
 \frac{x'^2}{a^2 } + \frac{y'^2}{b^2} < 1

 

Venons-en à ce qui intéresse le professeur Pirard qui faut-il le rappeler inventa le pixel en 1874 : Les graphique des bluntness des images de krumbein.

L’échelle de Krumbein (du célèbre géologue William Krumbein), représente de degré de lissage d’une particule suite à un processus d’abrasion.

Une charte de 9 série d’images correspondant aux 9 classes de l’échelle de Krumbein permet au microscopiste de classer ses particules. tent de comparer le comportement de paramètres tels la circularité, la bluntness… par rapport à ces classes.

Le paramètre de Bluntness issu du Calyptre développé par Eric Pirard est une version numérique de cette échelle : les valeurs de bluntness de particules classée selon l’échelle de Krumbein sont bien corrélées à celle-ci. Le paramètre de circularity est également corrélé mais dans une moindre mesure (classes 4 et 5 à valeurs semblables).

bluntness and circularity vs krumbein index

bluntness and circularity vs krumbein index

 

Ces paramètres sont bien entendu sensibles à la résolution spatiale. C’est par exemple le cas lorsque des particules sont acquises à des grossissements différents. On peut simuler cet effet en ré-échantillonnant des particules acquises à une résolution.

Une partie de cette sensibilité est liée au fait qu’au fur et à mesure que l’on ré-échantillonne on perd de l’information.

 

La ligne cyan correspond à la classe 9, la ligne jaune à la classe 1.

roundness_krumbein_1vs9_scale_02_05_10

Particules correspondant aux classes 9 (haut) et 1 (bas) de Krumbein à des échelles de 2, 5, 10% de l'image originale.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>