In den letzten Jahren ist es einfacher geworden, dreidimensionale Bilder zu erfassen, aber die für dreidimensionale Bilder verwendeten Bildverarbeitungsbibliotheken sind nicht wesentlich. Dieses Mal wollte ich eine Regionsunterteilungsmethode namens Watershed für ein 3D-Bild verwenden, also suchte ich danach und stellte fest, dass eine Funktion zur Durchführung einer 3D-Morphologieberechnung im Plug-In der Bildverarbeitungssoftware Fidschi implementiert ist (Fidschi ist nur imageJ). Also habe ich es versucht. Im Folgenden haben wir die Einführungsmethode und die Verwendung der Funktion zusammengefasst.
Laden Sie MorphoLibJ 1.3.1.jar von https://github.com/ijpb/MorphoLibJ/releases herunter. Um mit der GUI zu installieren, öffnen Sie Fidschi und ziehen Sie die heruntergeladene Datei per Drag & Drop. Wenn Sie vom Terminal aus installieren, können Sie MorphoLibJ_-1.3.1.jar unter /Applications/Fiji.app/plugins/ ablegen. Unten finden Sie die Dokumentation zu diesem Plug-In. http://imagej.net/MorphoLibJ#Watershed_segmentation
Zuerst habe ich das folgende Bild auf Python erstellt, das als Beispiel für die Verwendung der Funktion verwendet wird.
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))
Von hier aus werden wir Beispiele für die Verwendung von Funktionen anhand dieses Bildes zusammenfassen. Visualize verwendet auch den 3D-Viewer des Plugins.
Distance Tranceform Watershed 3D
Plugin > MorphoLibJ > Binary Images > Distance Transform Watershed 3D
Dieses Mal ist das Ergebnis der Ausführung mit der in der obigen Abbildung angegebenen Option unten dargestellt.
Bildwerte sind für jedes Objekt beschriftet. In diesem Zustand ist es jedoch schwierig, den Unterschied zu erkennen, selbst wenn er visualisiert wird. Daher wird als nächstes die Funktion beschrieben, die die Farbbeschriftung durchführt.
Labels to RGB
Plugin > MorphoLibJ > Label images > Labels to RGB
Persönlich ist es gut, dass die Farbkarte goldene Hörner hat. Das Ergebnis der Ausführung mit der in der obigen Abbildung angegebenen Option ist unten dargestellt.
Es ist ersichtlich, dass beim ursprünglichen Zusammenführen von zwei Objekten die Fläche durch eine Wasserscheide geteilt wird.
Ich habe versucht, quantitativ zu überprüfen, wie angemessen die geteilten Objekte sind.
Objekt | Volumen[voxel] | 元のVolumen[voxel] | Prozentsatz[%] |
---|---|---|---|
Grün | 31922 | 33493 | 95.31 |
Blau | 104973 | 113040 | 92.86 |
Zu diesem Zeitpunkt stellt das ursprüngliche Volumen einen Wert dar, der durch Berechnen des Volumens aus dem Radius erhalten wird, der bei der Erstellung des Bildes bestimmt wurde. Das Verhältnis wurde aus $ \ frac {Volumen} {ursprüngliches Volumen} \ mal 100 $ berechnet.
Aus diesem Ergebnis ist ersichtlich, dass es nicht in eines der Objekte unterteilt ist. Wasserscheide für die Entfernungstransformation In 3D ist die Entfernung der Parameter, der die Teilungsgenauigkeit am meisten beeinflusst. Es ist jedoch möglicherweise besser, das hier erhaltene Verhältnis als einen der Indizes zu verwenden, wenn dieser Parameter optimiert wird.
Recommended Posts