validate op• Datenarten: flow2d → mask
• Aufruf: import fullseye as fs; fs.ledger.piv_outlier_mask(flow, threshold=2.0, epsilon=0.1) (die Implementierung direkt: import pivops; pivops.piv_outlier_mask(flow, threshold=2.0, epsilon=0.1); aus dem Register: opspiv.get("piv_outlier_mask"))
Findet Ausreißervektoren mit dem normalisierten Mediantest (Westerweel & Scarano 2005).
Für jeden Vektor wird das Residuum gegenüber dem Median seiner 8 Nachbarn durch den Median der Nachbarresiduen geteilt. epsilon (Default 0.1 px, ein Richtwert der PIV-Messunsicherheit) wird zum Nenner addiert, damit der Nenner in einem gleichförmigen Feld nicht 0 wird und alles zum Ausreißer wird —— ohne diesen Term bricht der Test umso eher, je idealer die Eingabe ist.
★In Feldern mit steilen Gradienten schadet er (gemessen 2026-09-06). Mehrstufiges PIV an einem Wirbel vom Rankine-Typ (Kernradius 28 px): die 5 von Schwelle 2 erfassten Vektoren lagen alle am Rand des Kerns (32 px von der Mitte), ihre tatsächlichen Fehler betrugen 0.07-0.45 px —— keine Ausreißer, sondern Stellen, an denen das Geschwindigkeitsprofil einen Knick hat. Glätten mit dem Nachbarmedian verschlechtert die RMS von 0.134 auf 0.230 (Schwelle 5 erfasst keinen einzigen und bleibt bei 0.134).
Der Test beruht auf der Annahme "anders als die Nachbarn = falsch" und nennt daher eine echte Unstetigkeit einen Fehler. Ob er angewandt wird, nach der Natur des Feldes entscheiden.
Args:
flow: (2, h, w).
threshold: Ausreißer, wenn dieser Wert überschritten wird. Üblich ist 2.
epsilon: Sockel des Nenners [px].
Returns:
bool der Form (h, w). True ist ein Ausreißer (nan ist ebenfalls True).
• Leitfaden zur Familie piv_displacement
• 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.
• piv_flow_from_particles — py -3.11 examples/piv_flow_from_particles.py
• poc_change_detection_misreg — py -3.11 examples/poc_change_detection_misreg.py
• poc_river_surface_velocity — py -3.11 examples/poc_river_surface_velocity.py
mask als Eingabe)validate)*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.