pl_groove_visibility — GENERATIVE pl op

• Data kinds: none → table (an op determined by its arguments alone — it takes no image or data input)

• Call: import fullseye as fs; fs.ledger.pl_groove_visibility(width_px: 'float' = 3.0, diffusion_length_px: 'float' = 8.0, *, sink_velocity: 'float' = 0.0, noise_rel: 'float' = 0.01, cnr_min: 'float' = 1.0) -> 'dict' (to call the implementation directly, import pl; pl.pl_groove_visibility(width_px: 'float' = 3.0, diffusion_length_px: 'float' = 8.0, *, sink_velocity: 'float' = 0.0, noise_rel: 'float' = 0.01, cnr_min: 'float' = 1.0) -> 'dict'; from the registry, opsgenerative.get("pl_groove_visibility"))

Usage

Closed-form contrast and CNR of a shadow groove and a sink groove from groove width, diffusion length and noise (table).

> The detailed description below is the original text — the summary and the headings are translated.

Parameters

width_px : float

溝の幅 w[px]。

diffusion_length_px : float

拡散長 L[px]。

sink_velocity : float

沈みの溝の再結合速度 s = S·px/D(無次元、1 画素あたり)。0 なら沈みの項は 0。

noise_rel : float

像の雑音 σ(地 1 に対する相対値)。CNR = コントラスト / σ。

cnr_min : float

「見える」とする CNR の下限(既定 1 = 雑音と同じ深さ)。

Returns

dict

contrast_shadow(連続 1 − e^{−w/2L})/ contrast_shadow_grid(w が奇数の

整数なら格子の厳密値、そうでなければ None)/ contrast_sink(sL/(sL+2))/

fwhm_shadow_px / fwhm_sink_px(2L·ln2)/ cnr_shadow / cnr_sink /

visible_shadow / visible_sink / L_star_shadow_px(この L より長いと

影は CNR < cnr_min で消える)/ L_star_sink_px(この L より短いと沈みは

消える。sink_velocity = 0 か cnr_min·noise_rel ≥ 1 なら境界が無いので

None = どの L でも見えない)/ deficit_shadow_px(影の欠け量の積分 = w、

L によらない)。

Notes

影は w ≪ L で ≈ w/2L と消え、沈みは L と共に深く広くなる。欠陥の種類で向きが逆なので、「拡散長が長いほど欠陥が隠れる」は影にだけ当てはまる。

Examples

>>> t = pl_groove_visibility(2.0, 20.0, sink_velocity=0.5, noise_rel=0.02)

>>> round(t["contrast_shadow"], 4)

0.0488

>>> round(t["contrast_sink"], 4)

0.8333

>>> t["visible_shadow"], t["visible_sink"]

(True, True)

Detailed usage guide

• generative_art family guide

References (sample data, literature)

• 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.

Runnable examples (verified samples that actually call this op)

• poc_si_wafer_pl_defect_visibility — py -3.11 examples/poc_si_wafer_pl_defect_visibility.py

Ops the type connects to (they accept table as input)

perpetual_step · perpetual_render

Same category (pl)

pl_diffusion_psf · pl_image_simulate


*Provenance: pl.py — GENERATIVE 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.