Glätten und Vereinfachen von Oberflächen
Bei der Arbeit mit Oberflächennetzen ist es eine häufige Aufgabe, diese Netze zu vereinfachen, um ihre Analyse zu ermöglichen. Auch das Glätten kann notwendig sein, beispielsweise um die Messung von voxelierten Strukturen zu vermeiden.
Unser Ausgangspunkt ist das simulierte Branchoid, das wir früher in diesem Kapitel auf der Festplatte gespeichert haben.
|
nppas.SurfaceTuple
origin (z/y/x) | [0. 0. 0.] |
center of mass(z/y/x) | 50.000,46.575,42.589 |
scale(z/y/x) | 1.000,1.000,1.000 |
bounds (z/y/x) | 25.500...74.500 2.500...88.500 2.500...83.500 |
average size | 31.277 |
number of vertices | 19040 |
number of faces | 38076 |
|
Glätten von Netzen
Die kreisförmigen Strukturen, die Sie in diesem Datensatz sehen, resultieren aus dem Ursprung der Daten: Die Oberfläche wurde aus einem Binärbild erstellt. Die Linien entsprechen Voxelkanten. Eine Messung der Oberfläche wäre irreführend. Daher müssen wir den Datensatz glätten, bevor wir quantitative Messungen durchführen.
|
nppas.SurfaceTuple
origin (z/y/x) | [0. 0. 0.] |
center of mass(z/y/x) | 50.000,46.578,42.588 |
scale(z/y/x) | 1.000,1.000,1.000 |
bounds (z/y/x) | 25.347...74.653 2.328...88.704 2.334...83.678 |
average size | 31.345 |
number of vertices | 19040 |
number of faces | 38076 |
|
Wir können auch anpassen, wie fein die Glättung angewendet wird.
|
nppas.SurfaceTuple
origin (z/y/x) | [0. 0. 0.] |
center of mass(z/y/x) | 50.000,46.577,42.588 |
scale(z/y/x) | 1.000,1.000,1.000 |
bounds (z/y/x) | 25.360...74.640 2.296...88.797 2.302...83.693 |
average size | 31.349 |
number of vertices | 19040 |
number of faces | 38076 |
|
Die Parameter erlauben auch das Entfernen lokaler Strukturen, insbesondere durch die Anzahl der Iterationen.
|
nppas.SurfaceTuple
origin (z/y/x) | [0. 0. 0.] |
center of mass(z/y/x) | 50.013,46.548,42.623 |
scale(z/y/x) | 1.000,1.000,1.000 |
bounds (z/y/x) | 27.575...72.373 6.941...82.192 7.009...79.894 |
average size | 29.331 |
number of vertices | 19040 |
number of faces | 38076 |
|
Es gibt auch weitere Funktionen zum Glätten von Oberflächen, z.B. basierend auf Moving Least Squares.
━━━━━━━━━━━━━━━━━━━━━━ elapsed: 5s (3714.7 it/s) (3707.5 it/s) working ...
|
nppas.SurfaceTuple
origin (z/y/x) | [0. 0. 0.] |
center of mass(z/y/x) | 50.000,46.575,42.589 |
scale(z/y/x) | 1.000,1.000,1.000 |
bounds (z/y/x) | 25.500...74.500 2.500...88.488 2.500...83.500 |
average size | 31.218 |
number of vertices | 19040 |
number of faces | 38076 |
|
━━━━━━━━━━━━━━━━━━━━━━ elapsed: 5s (3572.6 it/s) (3577.5 it/s) working ...
|
nppas.SurfaceTuple
origin (z/y/x) | [0. 0. 0.] |
center of mass(z/y/x) | 50.000,46.575,42.589 |
scale(z/y/x) | 1.000,1.000,1.000 |
bounds (z/y/x) | 25.500...74.500 2.500...88.500 2.500...83.500 |
average size | 31.211 |
number of vertices | 19040 |
number of faces | 38076 |
|
Vereinfachen von Oberflächennetzen
Falls ein Oberflächennetz zu viele Vertices und Faces hat, kann die Verarbeitung lange dauern. Zu detaillierte Oberflächennetze bringen möglicherweise auch keine zusätzlichen Informationen. Daher kann es sinnvoll sein, Oberflächen zu vereinfachen, zum Beispiel indem die Anzahl der Vertices und Faces um die Hälfte reduziert wird.
|
nppas.SurfaceTuple
origin (z/y/x) | [0. 0. 0.] |
center of mass(z/y/x) | 50.024,46.096,39.540 |
scale(z/y/x) | 1.000,1.000,1.000 |
bounds (z/y/x) | 25.347...74.653 2.332...88.704 2.338...83.678 |
average size | 32.057 |
number of vertices | 9521 |
number of faces | 19038 |
|
Wenn wir die Oberfläche zu stark vereinfachen, können wir räumliche Informationen und Auflösung verlieren. Das Objekt wird dann möglicherweise nicht mehr angemessen dargestellt.
|
nppas.SurfaceTuple
origin (z/y/x) | [0. 0. 0.] |
center of mass(z/y/x) | 49.963,47.454,39.244 |
scale(z/y/x) | 1.000,1.000,1.000 |
bounds (z/y/x) | 25.366...74.634 2.312...88.678 2.318...83.672 |
average size | 31.565 |
number of vertices | 1905 |
number of faces | 3806 |
|
|
nppas.SurfaceTuple
origin (z/y/x) | [0. 0. 0.] |
center of mass(z/y/x) | 50.146,45.715,39.357 |
scale(z/y/x) | 1.000,1.000,1.000 |
bounds (z/y/x) | 25.440...74.623 2.344...88.258 2.412...83.760 |
average size | 31.898 |
number of vertices | 192 |
number of faces | 380 |
|
|
nppas.SurfaceTuple
origin (z/y/x) | [0. 0. 0.] |
center of mass(z/y/x) | 49.941,45.866,38.671 |
scale(z/y/x) | 1.000,1.000,1.000 |
bounds (z/y/x) | 25.548...75.905 3.858...93.107 3.380...86.408 |
average size | 33.976 |
number of vertices | 22 |
number of faces | 38 |
|