• Aucun résultat trouvé

Chapitre 4 : Structuration et organisation d’amas de particules au sein de stries huileuses

4.1 Observation d’amas multiples de particules par photoluminescence

4.1.3 Analyse des images

On cherche à présent à obtenir, pour chaque image à un angle de l’analyseur défini, des informations précises sur les spots de photoluminescence émise par les particules, à savoir la surface de chaque spot, son intensité totale et ses coordonnées. Pour ce faire, un autre code a été rédigé, lui aussi dans le logiciel MATLAB, afin d’extraire ces données. Son algorithme procède de la façon suivante lorsque l’on fournit au code une image au bruit de fond retiré manuellement :

126

127

L’algorithme de traitement fonctionne en deux étapes importantes, à savoir la localisation puis l’analyse des spots individuels pour extraire les informations utiles de ceux-ci. La localisation initiale des spots se fait, une fois le bruit de fond retiré et les zones de bruit pur nivelées à zéro, en faisant une liste exhaustive des sommets non stricts présents sur l’image. Par sommet non strict, on entend ici des sommets locaux pour lesquels on tolère une valeur égale à un voisin. Cette liste va, de façon évidente, souvent présenter plus de points qu’il n’y a de spots puisqu’un même spot peut avoir des variations locales dans son intensité mesurée causant l’apparition de plusieurs sommets en son sein. L’algorithme pallie ce problème au cours de l’analyse individuelle des sommets, qui constitue le cœur du code.

Pour chaque sommet détecté, ses coordonnées sont gardées au sein d’une même liste, et l’analyse des spots va être effectuée sur chaque sommet de valeur non nulle, ce dernier critère permettant d’éliminer au cours du traitement les doublons au sein d’un même spot. Comme il a été indiqué plus tôt, les zones de bruit pur, à savoir celles en-dessous d’une valeur de seuil déterminée par une étude manuelle de l’image, sont ramenées à zéro, ce qui implique qu’un spot quelconque va être un ensemble de pixels contigus et non nuls entourés par des pixels de valeur nulle. On commence alors l’analyse par le sommet actuellement mesuré. La valeur de celui-ci est conservée dans une matrice, tant dans une colonne stockant l’intensité totale du spot que dans celle indiquant la valeur maximale. Les pixels voisins sont alors mesurés dans les quatre directions. Dans le cas où l’un d’entre eux au moins est non nul, l’analyse peut continuer et le programme considère si plus d’un est non nul, auquel cas le pixel est ajouté à une matrice de "chemin" stockant ses coordonnées pour usage ultérieur. Le programme écrase la valeur du pixel pour la ramener à zéro et passe ensuite à l’un des pixels non nuls suivant un ordre de priorité prédéfini, et l’observe à nouveau : sa valeur est ajoutée à celle de l’intensité totale et, si elle est supérieure à la valeur maximale actuelle, remplace cette dernière. L’analyse des pixels voisins est répétée, et le cycle se poursuit d’un pixel à l’autre jusqu’à arriver à un pixel entouré de pixels de valeur nulle. Dans ce cas, après mise à jour des valeurs du spot, le programme cherche le dernier élément ajouté à la matrice de chemin et l’analyse à nouveau : son intensité sera nulle, mais il lui restera des voisins non nuls à partir desquels reprendre l’analyse, jusqu’à à nouveau atteindre un pixel entouré de pixels nuls. Le cycle d’analyses et de retour à l’embranchement précédent se poursuit, comptant le nombre d’analyses effectuées sur des pixels non nuls, jusqu’au moment où l’on revient au pixel initial, celui du sommet de la toute première liste, l’analyse s’arrêtant s’il finit par être entouré de pixels nuls à son tour.

Ce cheminement suivant les pixels formant le spot considéré fournit finalement le nombre de pixels formant le spot – sa surface – ainsi que l’intensité maximale et l’intensité totale de celui-ci. On remarquera que si d’autres sommets locaux étaient présents, ils auront été écrasés par cette analyse et, lorsque leur tour arrivera pour une analyse, ils seront automatiquement exclus puisque déjà nuls et entourés de pixels de valeur nulle. Ces données sont alors enregistrées automatiquement au sein d’une feuille de tableur Excel, dans laquelle on peut rajouter des données additionnelles telles que le nom de l’image ayant été analysée.

Un traitement supplémentaire optionnel est effectué si l’on cherche à comparer plusieurs images entre elles. Dans ce cas, lorsque le programme analyse une série d’images, les coordonnées des

128

spots enregistrés dans la première image sont conservées en mémoire après avoir été sélectionnées suivant, par exemple, un critère de surface minimum (le nombre de pixels correspondant à la tache d’Airy). Pour chaque image supplémentaire, dès qu’un spot est cartographié, ses coordonnées sont comparées avec celles de la première image et, si la distance entre ces coordonnées est suffisamment faible (suivant des critères établis par l’utilisateur – ici une distance vectorielle de cinq pixels ou moins), le spot reçoit le même numéro que son spot associé dans la première image. Il est donc possible de suivre l’évolution des paramètres d’un spot sur plusieurs images de la même zone, dans la mesure où celui-ci ne se déplace pas trop entre chaque image. Il s’agira en particulier de suivre l’évolution de la polarisation des amas par la prise consécutive d’image lorsque l’analyseur est tourné de 10°.