feature_register op• Datenarten: points × normals → descriptor
• Aufruf: import fullseye as fs; fs.ledger.compute_fpfh(points, normals, k=60, n_bins=11) (die Implementierung direkt: import feat_fpfh; feat_fpfh.compute_fpfh(points, normals, k=60, n_bins=11); aus dem Register: ops3d.get("compute_fpfh"))
Berechnet den FPFH-Deskriptor (N, 3*n_bins) (Rusu 2009).
1) SPFH: für jedes Paar aus einem Punkt p und seinen k Nachbarpunkten wird (α,φ,θ) bestimmt und jedes Merkmal in n_bins Bins histogrammiert.
2) FPFH(p) = SPFH(p) + (1/k)Σ_j (1/d_pj) SPFH(j): kombiniert die Nachbar-SPFHs mit Abstandsgewichten.
Die 3 Teilhistogramme werden jeweils L1-normiert und verkettet (Standard 33 Dimensionen). Die Winkelmerkmale sind starrkörperinvariant.
Argumente: points (N,3), normals (N,3), k (Anzahl FPFH-Nachbarn), n_bins (Anzahl Bins pro 1 Merkmal).
Rückgabewert: Deskriptormatrix der Form (N, 3*n_bins). Raises ValueError: wenn points/normals nicht (N,3) sind, die Zeilenzahlen abweichen, Werte nicht endlich sind oder N<4 (weil k-NN k>=3 verlangt).
• blas_threads_and_memory — Warum Matrixzerlegungen langsam sind — BLAS-Threads, Caches, Speicherlayout
• 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.
• fpfh_correspondence — py -3.11 examples_3d/fpfh_correspondence.py
descriptor als Eingabe)fuse_to_voxel · shape_distance
feature_register)harris3d_keypoints · iss_keypoints · shot_descriptor · register_spin · register_fpfh · register_shot
*Provenance: feat_fpfh.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.