mean_curvature — 3D curvature op

• Datenarten: points → signal

• Aufruf: import fullseye as fs; fs.ledger.mean_curvature(points, k=25, normals=None) (die Implementierung direkt: import curvature3d; curvature3d.mean_curvature(points, k=25, normals=None); aus dem Register: ops3d.get("mean_curvature"))

Verwendung

Mittlere Krümmung H = (k1+k2)/2. → (N,). Eine orientierungsabhängige Größe.

normals (orientierte Referenznormalen, (N,3)): ohne Angabe wird eine Heuristik der konvexen Seite verwendet (das Konkav/Konvex-Vorzeichen einer offenen Fläche ist unbestimmt). Werden orientierte Normalen übergeben, richtet sich das Ergebnis nach der globalen Orientierung und liefert das korrekte Vorzeichen.

Ergänzungen:

• Die Berechnung ist dieselbe wie bei principal_curvatures (PCA-Normale der k+1-Nachbarschaft + lokaler Quadrikfit) und liefert (k1 + k2) / 2. Einheit ist 1/Länge.

• Das Vorzeichen folgt der Konvention konvex = positiv und entspricht nur dann globalem Konkav/Konvex, wenn normals übergeben wird. Ohne Angabe liegt H einer offenen Fläche immer auf der konvexen Seite (entspricht dem Absolutwert).

• Punkte mit weniger als 5 Nachbarn erhalten 0. k wird auf N-1 gekürzt.

• Eine Kugel mit Radius R ergibt 1/R, ein Zylinder 1/(2R), eine Ebene 0. Ein Sattelpunkt (k1 = -k2) ergibt ebenfalls 0, aber gaussian_curvature ist dort negativ, sodass sich beide unterscheiden lassen.

• normals muss (N,3) mit endlichen, von null verschiedenen Zeilen sein (ValueError). Deterministisch.

Hintergrundwissen (Physik und Konventionen hinter diesem Operator)

• blas_threads_and_memory — Warum Matrixzerlegungen langsam sind — BLAS-Threads, Caches, Speicherlayout

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• curvature_shape_index — py -3.11 examples_3d/curvature_shape_index.py

• minimal_surfaces — py -3.11 examples_3d/minimal_surfaces.py

Typkompatible Folge-Operatoren (nehmen signal als Eingabe)

fuse_to_voxel

Gleiche Kategorie (curvature)

principal_curvatures · gaussian_curvature · shape_index · estimate_normals


*Provenance: curvature3d.py — 3D Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.