basis_material_decompose — TOMOGRAPHY spectral_xray op

• Data kinds: images → images

• Call: import fullseye as fs; fs.ledger.basis_material_decompose(signal, channels=None, basis=('WATER', 'AL'), photons_per_pixel: 'float' = 100000.0, flat=None) -> 'dict' (implementation को सीधे call करना हो तो import dualxray; dualxray.basis_material_decompose(signal, channels=None, basis=('WATER', 'AL'), photons_per_pixel: 'float' = 100000.0, flat=None) -> 'dict', registry से लेना हो तो opstomography.get("basis_material_decompose"))

• Ledger के ज़रिए return value: fullseye.ledger.basis_material_decompose(...) केवल घोषित out type images का value लौटाता है (मूल function सहायक जानकारी भी लौटाता है)। जो हिस्सा छोड़ दिया गया है उसकी ज़रूरत हो तो fullseye.ledger.basis_material_decompose.raw(...) का उपयोग करें, या dualxray.basis_material_decompose को सीधे call करें।

उपयोग

channel signals → basis materials के thickness maps (Alvarez–Macovski / Lehmann basis decomposition)।

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

各画素で、多色の順方向模型 L_c(b) = −ln(Σ_k W_ck g_k e^{−Σ_j μ_j(E_k) b_j} / Σ_k W_ck g_k) を測った L_c に合わせる b(基底ごとの厚み [cm])を、分散 var(L_c) ≈ var_c/mean_c² で重みをつけた Gauss–Newton で解く(チャネル数 = 基底の数なら連立方程式の厳密解、多ければ重みつき最小二乗 = 高計数での最尤)。初期値は空きのスペクトルの実効 μ の線形解。基底の厚みは負になりうる(水と Al の基底でポリエチレンは Al が負)—— 物理の厚みではなく「同じ減衰を作る基底の組合せ」。

拒否(fail-closed): 信号が 0 以下・非有限の画素、DECOMP_MAX_ITER 回で DECOMP_TOL_CM に収束しない画素、|b| > DECOMP_MAX_THICKNESS_CM に飛ぶ画素は NaN にして rejected に数える(黙って値を返さない)。反復の上限・収束の幅・厚さの上限は引数にしない —— Gauss–Newton は 3〜6 回で 1e-6 cm に収束し、どの値にしても解ける画素の答えは変わらない(効かないノブは置かない、2026-10-18)。チャネル数 < 基底の数は ValueError(解が決まらない)。

返り値: dict(thickness (B, H, W) [cm], basis, rejected (H, W) bool, n_rejected, iterations, residual (H, W) = 重みつき残差の二乗和)。opstomography.call は thickness だけを返す。

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

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

xray_channel_projection · r_value_map · effective_z_map

इसी category के (spectral_xray)

material_xray_table · material_xray_attenuation · material_xray_constants · material_effective_z · xray_tube_spectrum · xray_beam_quality · photon_counting_channels · dual_kvp_channels


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

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