Ich versuche, ein 3D-Array durch Mayavi in Python zu visualisieren. Ich möchte einfach ein strukturiertes 3D-Voxelraster erstellen, in dem ich einige vorgegebene Voxel-Raumfüllpunkte zeigen kann. Ich glaube nicht, dass ich willGrundlegende 3D Voxel Gitter in Mayavi
Das einzige Beispiel, das ich finden kann, dass ich denke, ist relativ relevant ist this MRI example. Ich kann den folgenden Code verwenden, um ein wenig praktikabel Beispiel zu bekommen:
import numpy as np
from mayavi import mlab
data = (100, 100, 100)
data = np.zeros(data)
data[0:50, 50:70, 0:50] = 1
data[0:50, 0:20, 0:50] = 1
src = mlab.pipeline.scalar_field(data)
outer = mlab.pipeline.iso_surface(src)
mlab.show()
Dies ist in der Lage, die folgenden Bilder zu erzeugen:
Wie Sie sehen können, sind nicht alle Seiten der Boxen erzeugt werden, obwohl Diese Punkte haben denselben Wert wie die Seiten der Boxen, die generiert werden.
Gibt es eine Möglichkeit, jeden einzelnen Punkt im Array numpy mit dem Wert 1 zu visualisieren? Mir geht es gut, wenn es keine Iso-Oberflächen-Visualisierung gibt - in der Tat würde ich lieber eine Minecraft-ähnliche Block-Voxel-Visualisierung bevorzugen.
Dank für die Antwort. Gibt es eine Möglichkeit, die Voxel individuell einzufärben? – scicalculator
Soweit ich weiß, können Sie versuchen, eine benutzerdefinierte Farbkarte zu verwenden. Oder Sie können weiterhin jede Voxelgruppe iterativ mit einer anderen Farbe darstellen. – Geodor
Schön, aber sehr langsam mit zu interagieren. – martinako