 Je vais vous parler de Scikit Image, qui est une librairie en piton dédiée au traitement d'image. Évidemment, je vais vous montrer comme c'est chouette et facile d'accès, et puis nous sommes intéressées à étendre notre base d'utilisateur pour éventuellement étendre notre base de contributeur, évidemment. Je prends juste deux secondes pour me présenter. En fait, ma page web n'est pas à jour, mais au moins mon nom est imprimé. Je suis physicienne, donc je fais un postdoc à McGill au département de physique, plus précisément sur des problèmes de biophysique. Donc je suis dans le monde académique, mais je m'intéresse aux bonnes pratiques pour la programmation. Software Carpentry, c'est quelque chose que j'ai découvert récemment et que je suis en contact avec eux, et puis ça m'intéresse beaucoup. Et après, si vous voulez retrouver ce que j'ai utilisé aujourd'hui, le code source est ici. Donc c'est pseudo-interactif. Alors on commence toujours par importer NumPy quand on fait du piton scientifique. Et puis pipe plot de matplotlib pour pouvoir montrer des plots. Donc le nom du module c'est skimage, comme ça. Donc c'est ça qu'on va utiliser. La version c'est 0.7.2, qui est la version par défaut. Là si vous faites un pip install, scikit image tout de suite. La version 0.8 va sortir très bientôt avec plein de nouvelles features. Donc je vais utiliser l'N1 un petit peu puisque tout le monde la connaît en traitement d'image. Et moi je l'aime bien aussi. Donc elle est encarrée comme ça de 512 pixels par 512. Puis il est 3 canaux. RGB c'est une image en couleur. Donc c'est telle, voilà. Vous la connaissez. Comme en fait on fait de la science aussi. Je vais prendre une image expérimentale qui vient d'une manipulation biologique. Donc ce sont des cellules. Oui, alors c'est pas direct. La valeur d'intensité va de 0 à 1. Donc je vais la convertir en une intensité qui va de 0 à 255. Elle est plus grande que l'ENA. Donc je vais prendre des tranches pour la mettre la même taille. Et je vais décider que la science c'est l'ENA plus de fois mes cellules. Je vais vous les montrer. Voilà, donc c'est ça. C'était une vraie expérience avec de la fluorescence. Puis quand on ajoute les deux, je trouve ça drôle. Et on va essayer de trouver les cellules. Et en fait, oui, on pensera que ça ne nous aide pas d'ajouter ces deux images. C'est comme totalement mélangé. Mais voilà, c'est un problème typique en science. Quand on a une image et on veut en tirer des analyses quantitative, on va faire ce qu'on appelle la segmentation d'objets. C'est-à-dire trouver les objets par rapport à un background, un fond. Donc c'est ça qu'on veut faire. Donc il y a un filtre qui permet de trouver les contours, les bords d'objets qui est donc basé sur l'algorithme de Kani. Donc il y a une implementation de ça dans Scikit Image. Donc j'ai besoin des filtres. Ça s'applique sur une image 2D. Donc là, je prends juste le canal vert. Donc c'est le troisième argument dans Science, qui est la fluence euro-sens est en vert. Et puis je divise par 255 pour retrouver le range de 0 à 1. Donc ça me donne ça. Ça, c'est tous les contours de l'image que je vous ai montrés. C'est un peu, on ne voit pas grand chose là, il y a beaucoup de... Donc je vais filtrer plus largement. Donc il y a un argument dans cette implementation de Kani qui permet de modifier la valeur du Sigma pour le filtre gaussien qui est appliqué au début. On peut l'agrandir. Par défaut, c'est juste un pixel. Et puis là, j'obtiens quelque chose de légèrement plus clair. Alors les titres et tout ça, c'est pas obligé de les mettre, mais je veux illustrer aussi comme c'est chouette d'utiliser MatPotlib et puis on peut mettre du latech dedans aussi. Donc voilà, on reconnaît un peu plus les formes qu'on avait. Donc il y a à la fois les nains et puis des cellules dedans. Et là, typiquement, ce qu'on veut faire, c'est remplir les contours pour retrouver nos cellules identifiées, donc trouver ces objets-là. Donc dans SciPy, il y a quelques outils basiques de traitement d'image dans ND Image, mais vraiment pour faire des choses bien faux. C'est souvent utile de passer à Scikit Image. Donc avec cette fonction de ND Image, on remplit les trous et puis ça donne ça. Donc en fait, évidemment, les lignes qui sont connectées entre elles sont des objets, mais les objets d'intérêt, là, c'est comme là où c'est rempli qu'on espère ça correspond à des cellules de notre expérience. Donc Morphology, c'est un autre module qui est très utile qui, je pense, vient en grande partie d'un logiciel cell profiler qui a été développé pour des biologistes OMIT et que la licence a été modifiée. Donc on n'a plus l'incorporé à Scikit Image, donc c'est super. Et là, je donne un label à chaque objet de mon image qui est où il n'y a que des 0 et des 1. Là, en fait, par objet, je vais remplacer leur données. En fait, il y avait comme un fond de 0 et des amas d'entier, donc des 1, 2, 3. Et puis voilà, donc c'est bien l'image. Il y a donc 564 objets dans cette image. Maintenant, je vais calculer la taille de ces images avec BenCount. Pour ça, j'ai besoin de rendre plat mon array qui est Objects. Donc oui, là, il y a 565 parce que le fond compte aussi comme un objet. Je vais dire que je veux ignorer tous les objets qui sont plus petits que 30 pixels. Le premier, je vais mettre que c'est faux aussi puisque c'est le fond, puis c'est juste le truc énorme que je ne veux pas. Et donc les objets qui vont rester, c'est ceux qui passent ce masque, ce filtre. Alors, il n'y a pas une énorme différence, mais c'est parce que par rapport à ce que je vais comparer après, je ne voulais pas mettre une taille trop sélective, mais les tout petits objets polluants, là, j'en ai enlevé quelques-uns, que je sais que ce n'est pas des choses d'intérêt. Et puis il y a aussi un module Major où il y a plein de propriétés intéressantes, donc juste pour illustrer, par exemple, quand vous appelez cette fonction, la propriété des régions, vous aurez une liste avec chaque objet pour lesquels, par défaut, on va donner l'air, les coordonnées du centroid. Et donc ça c'est mettons l'objet numéro 1 puis l'objet numéro 121. Il a ça. Donc c'est ça. Et juste pour comparer par curiosité, par rapport avec... Donc l'image, la vraie image scientifique des cellules à gauche, au milieu, c'est si j'applique tout ce que je vous ai montré là, directement sur juste cette image, et à droite, c'est là où on en est arrivé ensemble. Donc en fait c'est assez drôle parce que mettons par exemple cette cellule-là, on la trouve grâce à l'ENA alors qu'on ne la trouvait pas comme ça. Il y a aussi dans le sens que là on trouve des objets que là on ne trouve pas. Mais la réalité c'est que utiliser uniquement de la segmentation par contour, c'est pas suffisant et puis il faut raffiner ça avec d'autres algorithmes, mais je voulais juste faire une courte démo. Et je suis dans les temps et je veux bien prendre des questions. Merci.