piv_peak_locking — PIV assess op

• Datenarten: flow2d → table

• Aufruf: import fullseye as fs; fs.ledger.piv_peak_locking(flow, bins=20) (die Implementierung direkt: import pivops; pivops.piv_peak_locking(flow, bins=20); aus dem Register: opspiv.get("piv_peak_locking"))

• GPU: nein (nur CPU-Referenzimplementierung)

Verwendung

Stärke des Peak-Lockings: wie stark die Verteilung der Nachkommaanteile von der Gleichverteilung abweicht.

Subpixel-Schätzungen tendieren zu echten Verschiebungen, wenn der Bruchteil 0 oder 0,5 ist. Bias (aufgrund des Unterschieds in der Form des Korrelationspeaks und der Form der angepassten Funktion) Systematischer Fehler im Lehrbuch). Wenn der Fluss nicht gleichmäßig ist, sollte der Bruchteil einer gleichmäßigen Verteilung nahe kommen, Messen Sie die Abweichung von dort.

Der Index „c0“ ist eine Chi-Quadrat-Abweichung unabhängig von der Stichprobengröße:

„sum((n_i – n_bar)^2 / n_bar) / (2*bins – 1)“ Für die 2*bins-Klasse, die beide Komponenten kombiniert, erhalten wir, wenn wir eine Stichprobe aus einer Gleichverteilung entnehmen Der erwartete Wert ist 1. Wenn er also etwa 1 beträgt, kann er nicht von Uniform unterschieden werden. Je größer er ist, desto stärker ist er verzerrt.

★ Dieser Index geht jedoch davon aus, dass der Dezimalteil der wahren Verschiebung einheitlich ist. Anzahl der Fenster In einem Feld, in dem es wenig gibt oder in dem sich die Verschiebung langsam ändert, wird der wahre Wert selbst, c0, ebenfalls groß (Tatsächliche Messung: Der wahre Wert der linearen Lampe beträgt 82 – Es gibt nur 19 Spalten mit Fenstergittern und der Dezimalteil ist diskret. ). Lesen Sie daher c0, indem Sie es mit dem wahren Wert derselben Eingabe vergleichen.

Die endgültige Diagnose erfolgt separat – Skalierung des Dezimalteils der einheitlichen Übersetzung von 0 auf 0,9, Überprüfen Sie, ob die geschätzten Werte auf der Diagonalen liegen. Tatsächliche Messung (win=32, Dichte 0,02):

========== ================= ================= Schätzmethode RMS maximaler absoluter Fehler oder Bruchteilfehler ========== ================= ================= Gauss3 0,0037 px 0,0088 px parabolisch 0,0104 px 0,0151 px Schwerpunkt 0,2259 px 0,3701 px ========== ================= =================

„centroid“ beantwortet den wahren Wert 0,1 mit 0,02, 0,9 mit 0,98 – zieht eine Ganzzahl an S-Form wie im Lehrbuch. Bestätigung, dass herausgekommen ist, was herauskommen sollte, Dies stellt bei der Implementierung kein Problem dar (deshalb bleiben alle drei bestehen).

Argumente:

Fluss: „(2, h, w)“.

Bins: Anzahl der Histogrammklassen im Bruchteil.

Rückgaben:

dict: c0(Index beider Komponenten zusammen), hist((2, bins)),

„frac_mean“ / „frac_std“, „bins“.

Ausführlicher Anwendungsleitfaden

• Leitfaden zur Familie piv_displacement

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.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

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

• piv_field_analysis_tour — py -3.11 examples/piv_field_analysis_tour.py

• poc_battery_electrode_breathing — py -3.11 examples/poc_battery_electrode_breathing.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

—

Gleiche Kategorie (assess)

piv_sample_at_windows · piv_error_stats · piv_time_statistics


*Provenance: pivops.py — PIV 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.