tb_keypoints_to_image2d — 2D typed op

• Datenarten: keypoints → image

• Aufruf: fullseye.apply(img, "tb_keypoints_to_image2d", a=0.5, b=0.5) (das 2-D-Modell ist ein Bild plus zwei skalare Regler a,b∈[0,1])

*Keine Abbildung: der Typ ist erreichbar, aber die generische synthetische Eingabe liegt außerhalb des Definitionsbereichs dieses Ops — 橋渡しで束縛した raster が 64×64 固定で、128×128 の点は外に落ちる. Zur Verwendung siehe die lauffähigen Beispiele unten.*

Verwendung

Bildkoordinaten (N,2) = (u, v) → Zählbild (H, W). Der zweite Ausgang von keypoints.

Addiert jeweils 1 in Zeile round(v), Spalte round(u). Die Quantisierung auf das Pixelgitter ist der Verlust: Ein Hin- und Rückweg mit keypoints_from_image2d verschiebt Positionen um bis zu 0.5 Pixel (gemessen an 225 gut getrennten Punkten: pro Achse RMS 0.2835 px = übereinstimmend mit dem theoretischen Wert gleichmäßiger Quantisierung 1/sqrt(12) = 0.2887. Als 2-D-Abstand das sqrt(2)-Fache, 0.4009 px, gegenüber theoretisch sqrt(2/12) = 0.4082). ★Auch hier lagen wir einmal falsch: Wir hätten den gemessenen 2-D-Abstand beinahe neben den 1-D-Theoriewert gestellt und gelesen "sollte 0.29 sein, ist aber 0.40" —— vermischt man Größen pro Achse mit Abstandsgrößen, sieht eine korrekte Implementierung fehlerhaft aus. Benachbarte Punkte verschmelzen als Zusammenhangskomponente, daher kann beim Hin- und Rückweg auch die Punktzahl sinken (gemessen: 60 zufällig platzierte Punkte ergeben 54 Punkte).

Punkte außerhalb des Bereichs werden nicht stillschweigend verworfen —— sonst ließe sich nicht unterscheiden, ob "die Detektionen weniger wurden" oder "das Bild zu klein war".

Args:

keypoints: (N, 2) aus (u, v).

shape: (H, W).

Returns:

(H, W) float64-Zählbild.

Raises:

ValueError: ungültige Form / nicht endlich / Punkte außerhalb des Bereichs / shape über der Obergrenze.

Die reprconv-Op keypoints_to_image2d, in die 2-D-Evolutionsregistry überbrückt. Die Implementierung ist dieselbe; nur die Aufrufkonvention ist an op(v, a, b) angepasst. Diese Op hat keine Stellgrößen; weder a noch b wird verwendet.

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)

Die folgenden Beispiele rufen den zugrunde liegenden Ledger-Op keypoints_to_image2d auf. Dieser Brücken-Op ist dieselbe Implementierung, angepasst an die Konvention fn(v, a, b); das Verhalten gilt unverändert (nur die Aufrufform unterscheidet sich).

• representation_roundtrip — py -3.11 examples/representation_roundtrip.py

Typkompatible Folge-Operatoren (nehmen image als Eingabe)

identity · gaussian · mean_box · bilateral · unsharp · median · min_filter · max_filter

Gleiche Kategorie (typed)

tb_points_to_voxel · tb_estimate_point_normals · tb_iss_keypoints · tb_project_points · tb_render_point_depth · tb_statistical_outlier_removal · tb_radius_outlier_removal · tb_voxel_grid_downsample


*Provenance: ops.py — 2D 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.