artifact op• 数据种类:sinogram → sinogram
• 调用:import tomography; tomography.beam_hardening_correct(sinogram, high_energy_fraction=0.5, attenuation_ratio=0.4, poly_coeffs=None, n_table=4096)(或 opstomography.get("beam_hardening_correct"))
消除杯状伪影 —— 用模型的精确逆,或用标定过的多项式。
> 以下的详细说明为原文 —— 摘要与标题已翻译。
Two routes, and the difference between them is what you are allowed to claim:
• Model inverse (default). :func:beam_hardening_apply is a monotone
scalar function of the line integral, so it has an exact inverse; this
builds it by interpolating the forward curve on *n_table* nodes. Round-trip
error on the disc phantom: 1.6e-08 absolute and 8.0e-09 relative to
the peak line integral — the table resolution and nothing else.
This is a *simulation* tool — it needs the same `w and k` the
hardening used, which on real data nobody has.
• Polynomial (*poly_coeffs*). `p_corr = c1 p + c2 p^2 + ...`, the
water-correction of every clinical scanner, whose coefficients come from
scanning a uniform water phantom and fitting for a flat reconstruction.
This is what applies to real data, and it is only as good as the assumption
that everything in the field of view attenuates like water.
The honest limitation is the same one every scanner has: the correction is
material-specific. A water calibration applied to a slice containing bone
or metal over-corrects the dense material and leaves dark bands between dense
objects, and nothing in the sinogram says which case you are in.
:param sinogram: `(n_angles, n_detectors)` hardened line integrals.
:param high_energy_fraction: *w* used by the forward model.
:param attenuation_ratio: *k* used by the forward model.
:param poly_coeffs: `(c1, c2, ...)`; when given, the polynomial route is
used and *w* / *k* are ignored.
:param n_table: nodes of the inverse table, `64 .. 1048576`.
:returns: `(n_angles, n_detectors)` float64 corrected sinogram.
:raises ValueError: as :func:beam_hardening_apply, plus an empty or
non-finite *poly_coeffs*.
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者・年份)与用途见上面的族使用指南。
• ct_reconstruction — py -3.11 examples/ct_reconstruction.py
sinogram 作为输入)backproject_sinogram · filtered_backprojection · sart_reconstruct · beam_hardening_apply · ring_artifact_apply · ring_artifact_remove · metal_trace_interpolate · sinogram_center_of_rotation
artifact)beam_hardening_apply · ring_artifact_apply · ring_artifact_remove · metal_trace_interpolate
*Provenance: tomography.py — TOMOGRAPHY 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.