plane_segmentation — 3D segment op

• Datenarten: points → labels

• Aufruf: import fullseye as fs; fs.ledger.plane_segmentation(points, thresh: 'float', min_inliers: 'int', max_planes: 'int' = 5, iters: 'int' = 300, seed: 'int' = 0) -> 'np.ndarray' (die Implementierung direkt: import segment3d; segment3d.plane_segmentation(points, thresh: 'float', min_inliers: 'int', max_planes: 'int' = 5, iters: 'int' = 300, seed: 'int' = 0) -> 'np.ndarray'; aus dem Register: ops3d.get("plane_segmentation"))

Verwendung

Extrahiert per iteriertem RANSAC nacheinander bis zu max_planes Ebenen (übrige Punkte erhalten −1).

Wiederholt: ransac_fit.ransac_plane auf die verbleibende Punktmenge anwenden, und wenn die Inlier-Anzahl der Ebene mit dem größten Consensus mindestens min_inliers beträgt, ein neues Label vergeben und sie entfernen → im Rest erneut detektieren. Trennt mehrere boden-, wand- oder treppenartige Flächen in einem Durchgang (der Unterschied zu pcseg, das eine einzelne Ebene anpasst). Hält an, sobald die Inlier min_inliers unterschreiten; die übrigen Punkte sind Rest -1 (Kugeln und komplexe Objekte verbleiben hier).

Args:

points: (N,3)-Punktwolke.

thresh: Inlier-Schwellwert für den Punkt-Ebene-Abstand (ein Abstand, muss > 0 sein).

min_inliers: minimale Inlier-Anzahl, um eine Ebene zu übernehmen (muss >= 3 sein).

max_planes: maximale Anzahl zu extrahierender Ebenen (muss >= 1 sein).

iters: Anzahl der Iterationen jedes RANSAC.

seed: Zufallsseed (deterministisch; jede Ebene verwendet seed+Ebenenindex).

Returns:

labels: (N,) int. Vergibt 0,1,2,... an die Ebenen in Detektionsreihenfolge (≈ absteigende Consensus-Größe);

Restpunkte, die zu keiner Ebene gehören, sind -1. Eine leere Eingabe ergibt shape (0,).

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)

• object_segmentation — py -3.11 examples_3d/object_segmentation.py

Typkompatible Folge-Operatoren (nehmen labels als Eingabe)

fuse_to_voxel · vol_region_props

Gleiche Kategorie (segment)

region_growing · euclidean_cluster · vol_watershed


*Provenance: segment3d.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.