wave_fringe_period — MATH wave op

• Data kinds: image2d → measurement

• Call: import fullseye as fs; fs.ledger.wave_fringe_period(image, axis=1) (implementation को सीधे call करना हो तो import mathops; mathops.wave_fringe_period(image, axis=1), registry से लेना हो तो opsmath.get("wave_fringe_period"))

उपयोग

striped image का period, उसी image से वापस मापा गया (pixels)।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

Takes the mean profile along *axis*, removes the mean, and reads the dominant frequency from the FFT with a parabolic interpolation on the log spectrum, so the answer is not quantised to the FFT bin.

★Why this earns its place: it closes the loop on wave_two_slit and on any halftone or grating image — the period predicted by the closed form and the period measured from the pixels are two different computations.

Returns a measurement: the period in pixels.

Raises ValueError: not a 2-D array; fewer than 8 samples along *axis*; non-finite values; a profile with no variation (a flat image has no period).

पूरी family का input contract (fail-closed)

mathops के सभी ops गणना से पहले input की जाँच करते हैं (कुछ भी चुपचाप पास नहीं होता):

• complex input से ValueError — float64 में ज़बरदस्ती बदलने पर imaginary part चुपचाप छूट जाता है (numpy केवल ComplexWarning देता है और "सही दिखने वाला पर गलत" real number लौटाता है)। .real/.imag/abs() स्पष्ट रूप से लिखें, या complex data संभालने वाले complexops का उपयोग करें।

• masked array (masked elements वाला) से ValueError — mask हटाकर नीचे के raw values इस्तेमाल करने वाला implicit conversion अस्वीकार है। भरना है या हटाना है, यह स्पष्ट रूप से बताएँ।

• हर input पर NaN/Inf से ValueError (गिनती बताकर अस्वीकार — क्योंकि यह पूरे परिणाम में फैल जाता है)।

• Shape सख़्त है: 1-D और 2-D को implicit रूप से promote या broadcast नहीं किया जाता (vector slot में matrix या matrix slot में vector देने पर ValueError; reshape स्पष्ट रूप से करें)।

• Size की सीमा: matrix लेने वाले ops और stat_histogram के bins, mathops.MAX_ELEMENTS (2^26 ≈ 6.7 करोड़ elements) से अधिक होने पर ValueError देते हैं।

उपयोग की विस्तृत guide

• math_metrology family guide

संदर्भ (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 के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

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

• poc_beats_fringes_and_screens — py -3.11 examples/poc_beats_fringes_and_screens.py

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

—

इसी category के (wave)

wave_membrane_mode · wave_mode_frequencies · wave_nodal_lines · wave_two_slit · wave_grating_orders


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

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