Ces dernières années, il est devenu plus facile d'acquérir des images tridimensionnelles, mais les bibliothèques de traitement d'image utilisées pour les images tridimensionnelles ne sont pas substantielles. Cette fois, je voulais utiliser une méthode de division de région appelée Watershed pour les images 3D, alors je l'ai recherchée et j'ai trouvé qu'une fonction permettant d'effectuer des opérations de morphologie 3D était implémentée dans le plug-in du logiciel de traitement d'image Fiji (Fiji est juste imageJ). Alors j'ai essayé. De ce qui suit, nous avons résumé la méthode d'introduction et comment utiliser la fonction.
Téléchargez MorphoLibJ 1.3.1.jar depuis https://github.com/ijpb/MorphoLibJ/releases. Pour installer avec GUI, ouvrez Fidji et faites glisser et déposez le fichier téléchargé. Si vous installez à partir du terminal, vous pouvez mettre MorphoLibJ_-1.3.1.jar sous /Applications/Fiji.app/plugins/. Voir ci-dessous pour la documentation de ce plug-in. http://imagej.net/MorphoLibJ#Watershed_segmentation
Tout d'abord, j'ai créé l'image suivante sur python, qui est utilisée comme exemple d'utilisation de la fonction.
import numpy as np
import skimage.io as skimage
img = np.zeros((100, 100, 100))
for i in range(100):
for j in range(100):
for k in range(100):
if (i - 40)**2 + (j - 40)**2 + (k - 40)**2 < 400:
img[i][j][k] = 255
if (i - 60)**2 + (j - 60)**2 + (k - 60)**2 < 900:
img[i][j][k] = 255
skimage.imsave('example.tif', img.astype(uint8))
À partir de là, nous résumerons des exemples d'utilisation de fonctions à l'aide de cette image. Visualize utilise également la visionneuse 3D du plugin.
Distance Tranceform Watershed 3D
Plugin > MorphoLibJ > Binary Images > Distance Transform Watershed 3D
Cette fois, le résultat de l'exécution avec l'option spécifiée dans la figure ci-dessus est indiqué ci-dessous.
Les valeurs d'image sont étiquetées pour chaque objet. Cependant, dans cet état, il est difficile de voir la différence même si elle est visualisée, donc la fonction qui effectue l'étiquetage couleur sera décrite ci-après.
Labels to RGB
Plugin > MorphoLibJ > Label images > Labels to RGB
Personnellement, il est bon que la carte des couleurs ait des cornes dorées. Le résultat de l'exécution avec l'option spécifiée dans la figure ci-dessus est indiqué ci-dessous.
On peut voir que lorsque deux objets sont fusionnés à l'origine, la zone est divisée par bassin versant.
J'ai essayé de vérifier quantitativement la pertinence des objets divisés.
objet | le volume[voxel] | 元のle volume[voxel] | Pourcentage[%] |
---|---|---|---|
vert | 31922 | 33493 | 95.31 |
Bleu | 104973 | 113040 | 92.86 |
A ce moment, le volume d'origine représente une valeur obtenue en calculant le volume à partir du rayon déterminé lors de la création de l'image. Le ratio a été calculé à partir de $ \ frac {volume} {volume original} \ fois 100 $.
De ce résultat, on peut voir qu'il n'est divisé en aucun des deux objets. Transformation de la distance du bassin versant En 3D, la distance est le paramètre qui affecte le plus la précision de la division, mais il peut être préférable d'utiliser le rapport obtenu ici comme l'un des indices lors de l'optimisation de ce paramètre.
Recommended Posts