knn_graph — 3D geodesic op

• Data kinds: points → graph

• Call: import fullseye as fs; fs.ledger.knn_graph(points: numpy.ndarray, k: int = 8) -> Tuple[numpy.ndarray, numpy.ndarray] (implementation को सीधे call करना हो तो import geodesic3d; geodesic3d.knn_graph(points: numpy.ndarray, k: int = 8) -> Tuple[numpy.ndarray, numpy.ndarray], registry से लेना हो तो ops3d.get("knn_graph"))

उपयोग

हर point के k nearest-neighbour indices और Euclid distances (खुद को छोड़कर)। → (idx (N,k) int, dist (N,k) float)।

scipy.spatial.cKDTree से हर point के k+1 nearest neighbours ढूँढता है, और ख़ुद point (दूरी 0) को छोड़कर k लौटाता है। idx[i, j] point i से j-वें सबसे निकट point का index है, dist[i, j] उसकी Euclid दूरी (coordinates की इकाई में), और हर row दूरी के बढ़ते क्रम में है।

• points: (N,3) जैसे किसी भी dimension के coordinates (float64 में बदले जाते हैं)। shape की जाँच नहीं होती।

• k: neighbours की संख्या (default 8)। N-1 से बड़े मान चुपचाप N-1 तक काट दिए जाते हैं।

• N < 2 होने पर exception नहीं होता, और shape (N,0) के 2 ख़ाली arrays लौटते हैं।

सावधानी: duplicate coordinates होने पर KD-tree ख़ुद point को column 0 में नहीं लौटा सकता। उस स्थिति में हर row में ख़ुद point की स्थिति ढूँढकर हटाई जाती है, और अगर k+1 में ख़ुद point न हो तो सबसे दूर वाला 1 हटा दिया जाता है (परिणाम फिर भी k होते हैं)। geodesic_distances / farthest_point_sampling इस परिणाम को adjacency matrix (directed CSR, Dijkstra की ओर undirected बनाया जाता है) बनाकर geodesic distance के approximation में इस्तेमाल करते हैं।

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• pcl_geodesic — py -3.11 examples_3d/pcl_geodesic.py

वे अगले ops जिनसे type जुड़ता है (graph को input के रूप में लेते हैं)

fuse_to_voxel

इसी category के (geodesic)

geodesic_distances · geodesic_mesh · farthest_point_sampling


*Provenance: geodesic3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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