typed op• Data kinds: counts → counts
• Call: fullseye.apply(img, "tb_spad_deadtime_apply", a=0.5, b=0.5) (2-D model = एक image + दो scalar knobs a,b∈[0,1])

*Figure synthetic 128×128 input पर सच में चलाकर मिला output है। बाईं ओर input, दाईं ओर output। Point clouds ऊपर से देखे गए scatter के रूप में (brightness = z), 1-D series line के रूप में, volumes z दिशा में maximum-intensity projection के रूप में, videos बीच के frame के रूप में, complex images amplitude के रूप में, और जो return values चित्र नहीं बन सकते वे स्वयं values के रूप में दिखाए जाते हैं।*
Knob a को बदलकर (0.1 / 0.5 / 0.9, दूसरा knob default पर):
▸ tb_spad_deadtime_apply: knob a को बदलने का figure (docs site)
*Knob b output नहीं बदलता (मापा गया: 0.1 / 0.5 / 0.9 पर एक जैसा)।*
Stages (पहले आने वाले ops → यह op, बाएँ से क्रम में):
▸ tb_spad_deadtime_apply: stages का figure (docs site)
दूसरी images पर भी (synthetic scene / photo / coins। ऊपर की row में inputs, नीचे की row में उनके outputs। Knobs default पर):
▸ tb_spad_deadtime_apply: दूसरी images पर output (docs site)
असली photon rate को detector के dead time से बिगाड़ता है (counts खो जाते हैं)।
> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।
After every detection a SPAD is blind for a recharge (dead) time tau, so the *measured* rate m is always below the *true* incident rate n. Two classical laws, and this op implements both:
• non-paralysable (default) — an arriving photon during the dead time is simply lost: m = n / (1 + n*tau). Monotonic, saturating at 1/tau.
• paralysable (paralyzable=True) — an arriving photon *restarts* the dead time: m = n * exp(-n*tau). This law peaks at n = 1/tau (where m = 1/(e*tau)) and then falls, so a bright scene can read *darker* than a dim one. That is why no inverse op exists for it (see spad_deadtime_correct).
*rate_hz* is a 1-D array of true rates in counts per second; *dead_time_ns* is the dead time in nanoseconds, defaulting to 50 — the middle of the 10-100 ns range a passively quenched SPAD occupies, and a placeholder to be replaced by the datasheet value, never a measurement of your detector. Returns the measured rates as a float64 1-D array of the same length.
Ground truth (pinned in the tests): at n = 1/tau the non-paralysable law gives exactly n/2; the paralysable law's maximum is exactly 1/(e*tau) at n = 1/tau; both reduce to m = n as n*tau -> 0.
Raises ValueError: negative, non-finite or non-1-D *rate_hz*, a non-positive *dead_time_ns*, and a non-bool *paralyzable*.
Typed bridge of the photon op spad_deadtime_apply into the 2-D evolution registry: the same implementation, called under the op(v, a, b) convention. a drives dead_time_ns (default 50); b is unused.
• 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 के स्रोत।
नीचे का program सच में चलता है, यह जाँचा गया है (figure वाला ही input)। Studio की help में यह block buttons बन जाता है, जिनसे इसे वहीं load करके चलाया जा सकता है।
img_to_counts 0.50 0.50 tb_spad_deadtime_apply 0.50 0.50
▸ यह pipeline load करें · Load करके चलाएँ
नीचे के उदाहरण मूल ledger op spad_deadtime_apply को call करते हैं। यह bridge op वही implementation है, बस fn(v, a, b) convention के अनुसार ढाला गया है, इसलिए व्यवहार वैसा ही लागू होता है (केवल call का रूप अलग है)।
• photon_timeresolved — py -3.11 examples/photon_timeresolved.py
counts को input के रूप में लेते हैं)identity · tb_spad_deadtime_correct · tb_tcspc_coates_correct · tb_tcspc_irf_convolve · tb_tcspc_background_subtract · tb_dtof_depth · tb_countrate_to_counts · tb_counts_to_countrate
typed)tb_points_to_voxel · tb_estimate_point_normals · tb_iss_keypoints · tb_project_points · tb_render_point_depth · tb_statistical_outlier_removal · tb_radius_outlier_removal · tb_voxel_grid_downsample
*Provenance: ops.py — 2D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.