estimate op• Data kinds: image2d × image2d → flow2d
• Call: import fullseye as fs; fs.ledger.piv_multipass(a, b, windows=(64, 32), overlap=0.5, peak='gauss3', window_func='hann', outlier_threshold=2.0, normalize='overlap', search_limit=0.25) (to call the implementation directly, import pivops; pivops.piv_multipass(a, b, windows=(64, 32), overlap=0.5, peak='gauss3', window_func='hann', outlier_threshold=2.0, normalize='overlap', search_limit=0.25); from the registry, opspiv.get("piv_multipass"))
• Return value through the ledger: fullseye.ledger.piv_multipass(...) returns only the declared out type flow2d (the underlying function also returns auxiliary values). When you need what was dropped, use fullseye.ledger.piv_multipass.raw(...) or call pivops.piv_multipass directly.
• Underlying return: (flow, info) -> flow2d
Multi-pass PIV that steps down from coarse windows to fine windows. Returns (flow, info).
The result of each pass is used as the predicted displacement of the next pass (the 2nd image's window is shifted by the integer amount). Removing and filling outliers between passes is intentional —— if a wrong vector is used as-is for the prediction, that window stays wrong, locked in, in the next pass as well.
Args:
a, b: image pair.
windows: sequence of windows in decreasing size. Each pass need not be a multiple of the previous one,
but since the grid changes, the prediction is transferred by nearest neighbour.
overlap / peak / window_func: same as piv_cross_correlate.
outlier_threshold: threshold of the normalised median test between passes. None disables it.
Returns:
(flow, info) of the final pass. info["passes"] holds the window size of each pass.
• piv_displacement family guide
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• piv_field_analysis_tour — py -3.11 examples/piv_field_analysis_tour.py
• piv_flow_from_particles — py -3.11 examples/piv_flow_from_particles.py
• poc_strain_history — py -3.11 examples/poc_strain_history.py
flow2d as input)piv_deform_pass · piv_outlier_mask · piv_replace_outliers · piv_vorticity · piv_divergence · piv_flow_magnitude · piv_to_velocity · piv_velocity_gradient
estimate)piv_cross_correlate · piv_deform_pass · piv_ensemble_correlate
*Provenance: pivops.py — PIV operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.