varmodel_alignment — SPC variation op

• Data kinds: video → table

• Call: import fullseye as fs; fs.ledger.varmodel_alignment(stack, max_misalign_px=0.5) (implementation को सीधे call करना हो तो import varmodel; varmodel.varmodel_alignment(stack, max_misalign_px=0.5), registry से लेना हो तो opsspc.get("varmodel_alignment"))

उपयोग

हर अच्छे sample का stack की सामान्य स्थिति से translation offset, और tolerance तक का margin (table)।

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

Each image of stack (n, H, W) is phase-correlated (filters_freq.phase_correlation_fft) against a reference built from the stack itself (the most typical sample, then the registered mean); the integer peak is refined to 1/20 px by an upsampled DFT (Guizar-Sicairos et al. 2008). Offsets are relative to the median offset, so a common shift of every sample is not a misalignment. Returns offset (n, 2) = (row, col) in px (positive = the sample sits further down / right than the typical one), abs_offset (n,) = the larger of the two, margin_px = max_misalign_px - abs_offset (negative = this sample breaks the tolerance), ok (all margins >= 0), worst (index of the most shifted sample) and psr (peak-to- sidelobe ratio of the correlation), shift_sd_px (Cramér–Rao lower bound of the offset's

spread: noise variance over the structural gradient energy of the registered mean; the window makes the real spread a few times larger) and observable. A featureless or pure-noise stack has no structure, so its offsets cannot be measured (observable=False, offsets reported as 0, shift_sd_px capped at the image size) — and for the same reason a shift cannot fatten its band, so such a stack is not refused.

Why it matters: a per-pixel spread learned from a misaligned stack is inflated wherever the image has gradient (edges), so the tolerance band gets fatter and real defects there are missed.

Raises ValueError on an empty stack, a stack that is not (n, H, W) / a list of equal 2-D images, non-finite values, or max_misalign_px <= 0.

संदर्भ (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_good_sample_variation_model — py -3.11 examples/poc_good_sample_variation_model.py

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

msa_anova_table · msa_gauge_rr · msa_bias_linearity · msa_attribute_agreement · gum_standard_uncertainty · gum_propagate · gum_expanded · gum_monte_carlo

इसी category के (variation)

varmodel_band_k · varmodel_fit · varmodel_calibrate · varmodel_score


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

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