From b09fa3bc7627feaa8eb804ca65e92d2f16644dd6 Mon Sep 17 00:00:00 2001 From: Hilbert Date: Sun, 15 Mar 2026 16:26:34 +0800 Subject: [PATCH 1/2] feat: add mermaid architecture diagram and bilingual README --- README.md | 46 ++++++- diagrams/architecture.html | 245 +++++++++++++++++++++++++++++++++++++ 2 files changed, 286 insertions(+), 5 deletions(-) create mode 100644 diagrams/architecture.html diff --git a/README.md b/README.md index 0eeca1b..f24daf2 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,20 @@ # CTPhysics -简体中文说明 | English version below +[简体中文](#概述) | [English](#overview) -—— +--- ## 概述 + CTPhysics 是一个用于学习与演示计算机断层扫描(CT)成像物理的交互式平台。项目聚焦成像链路的关键环节(采样、重建、噪声和剂量等),通过轻量的前端可视化与实验模块,帮助学习者和从业者理解核心物理概念及工程权衡。 ## 在线站点 + - 生产/演示站点:https://www.ct-physics.xyz - 若链接更新,请在此处同步维护。 ## 功能特性 + - 交互式模块:采样与滤波、卷积核(重建滤波器)对图像的影响、剂量与噪声的权衡等 - 可视化解释:图表/曲线/示意图,直观展示物理量与图像质量指标的关系 - 多语言支持:中/英文内容(可拓展 i18n) @@ -19,6 +22,7 @@ CTPhysics 是一个用于学习与演示计算机断层扫描(CT)成像物 - 可访问性:尽量遵循可访问性规范(ARIA、键盘可操作) ## 技术栈 + - 前端框架:React / Next.js(TypeScript 严格模式) - 样式与组件:Tailwind CSS + Radix UI(或等价组件库) - 可视化:Canvas/WebGL(必要时),可使用 D3/Plotly 等 @@ -26,6 +30,7 @@ CTPhysics 是一个用于学习与演示计算机断层扫描(CT)成像物 - 代码质量:ESLint + Prettier(CI 中强制) ## 快速开始 + 1) 环境准备 - Node.js >= 18 - 推荐使用 pnpm(或 npm / yarn) @@ -40,6 +45,7 @@ CTPhysics 是一个用于学习与演示计算机断层扫描(CT)成像物 - pnpm build && pnpm start ## 测试(Vitest / Playwright) + - 单元与集成测试(Vitest) - 运行:pnpm test - 覆盖率报告:pnpm test --coverage @@ -50,15 +56,17 @@ CTPhysics 是一个用于学习与演示计算机断层扫描(CT)成像物 - 数据与网络:尽量使用可复现数据与网络模拟,避免外部依赖造成不稳定 ## CI 概述 + - GitHub Actions(示例) - 触发:PR / push 到 master - - 阶段:lint → type-check → unit tests(Vitest)→ e2e(Playwright,可选)→ 构建 + - 阶段:lint → type-check → 单元测试(Vitest)→ e2e(Playwright,可选)→ 构建 - 覆盖率阈值:在 CI 中强制(失败则拒绝合并) - 预览部署:Vercel PR preview(自动) - 可选:Sentry release(仅 master) - 安全:GitHub Secret Scanning & Push Protection ## 部署(Vercel) + - 步骤 - 连接 Git 仓库(picspin/CTPhysics) - 配置环境变量(参考 docs/ENV.md) @@ -69,6 +77,7 @@ CTPhysics 是一个用于学习与演示计算机断层扫描(CT)成像物 - Production URL(合并到 master 后自动更新) ## 可观测性(可选:Sentry) + - 启用方式 - 创建 Sentry 项目与 DSN - 在环境变量中配置 SENTRY_DSN(参考 docs/ENV.md) @@ -78,35 +87,46 @@ CTPhysics 是一个用于学习与演示计算机断层扫描(CT)成像物 - 注意隐私和合规要求,避免上传敏感数据 ## PCD 路线图摘要 + - 详见 docs/PCD_ROADMAP.md - 里程碑 M1~M4 - QA 指标:MTF(调制传递函数)、NPS(噪声功率谱)、NEQ(等效量子数) - 测试目标:单元/端到端覆盖率 ## 贡献 + - 欢迎贡献!请先阅读 CONTRIBUTING.md - 分支与提交流程(PR) - 代码风格与提交信息规范 - 测试与环境管理要求 ## 许可证 + - License:参见仓库根目录的 LICENSE 文件(例如 MIT) ## 相关文档 + - 环境变量:docs/ENV.md - 架构与设计:docs/ARCHITECTURE.md -—— +## 架构图 + +项目架构图使用 Mermaid 渲染,查看 [diagrams/architecture.html](../../diagrams/architecture.html)。 -English +> **提示**:在 GitHub 上查看时,需要安装 [Mermaid Markdown Preview](https://marketplace.visualstudio.com/items?itemName=sporiley.mermaid-markdown) 等扩展;或访问在线渲染版本。 + +--- ## Overview + CTPhysics is an interactive learning and demonstration platform for CT (Computed Tomography) imaging physics. It focuses on key parts of the imaging pipeline (sampling, reconstruction, noise and dose trade-offs) and uses lightweight visualizations and hands-on labs to clarify core physical concepts and engineering decisions. ## Live site + - Production / demo: https://www.ct-physics.xyz ## Features + - Interactive modules: sampling and filtering, reconstruction kernels, dose vs. noise trade-offs - Visual explanations: charts/curves/diagrams for relationships between physical quantities and image quality metrics - Multilingual: CN/EN content (i18n-ready) @@ -114,6 +134,7 @@ CTPhysics is an interactive learning and demonstration platform for CT (Computed - Accessibility: strive for ARIA compliance and keyboard operability ## Tech stack + - Frontend: React / Next.js with strict TypeScript - UI/Styling: Tailwind CSS + Radix UI (or similar) - Visualization: Canvas/WebGL as needed; D3/Plotly optional @@ -121,6 +142,7 @@ CTPhysics is an interactive learning and demonstration platform for CT (Computed - Code quality: ESLint + Prettier (enforced in CI) ## Quick start + 1) Prerequisites - Node.js >= 18 - Prefer pnpm (or npm / yarn) @@ -135,6 +157,7 @@ CTPhysics is an interactive learning and demonstration platform for CT (Computed - pnpm build && pnpm start ## Testing (Vitest / Playwright) + - Unit & integration with Vitest - Run: pnpm test - Coverage: pnpm test --coverage @@ -145,6 +168,7 @@ CTPhysics is an interactive learning and demonstration platform for CT (Computed - Data & network: prefer reproducible fixtures and network mocks to avoid flakiness ## CI overview + - GitHub Actions (example) - Triggers: PR / push to master - Stages: lint → type-check → unit tests (Vitest) → e2e (Playwright, optional) → build @@ -154,6 +178,7 @@ CTPhysics is an interactive learning and demonstration platform for CT (Computed - Security: GitHub Secret Scanning & Push Protection ## Deployment (Vercel) + - Steps - Connect repo (picspin/CTPhysics) - Configure environment variables (see docs/ENV.md) @@ -164,6 +189,7 @@ CTPhysics is an interactive learning and demonstration platform for CT (Computed - Production URL (auto after merge to master) ## Observability (optional Sentry) + - Enable - Create Sentry project and DSN - Configure SENTRY_DSN in env (see docs/ENV.md) @@ -173,20 +199,30 @@ CTPhysics is an interactive learning and demonstration platform for CT (Computed - Respect privacy/compliance; avoid sensitive data ## PCD roadmap summary + - See docs/PCD_ROADMAP.md - Milestones M1–M4 - QA metrics: MTF (Modulation Transfer Function), NPS (Noise Power Spectrum), NEQ (Noise Equivalent Quanta) - Test coverage targets (unit/e2e) ## Contributing + - Contributions are welcome! Please read CONTRIBUTING.md - Branch & PR workflow - Code style & commit message conventions - Testing & environment management requirements ## License + - See LICENSE file at the repo root (e.g., MIT) ## Documentation links + - Environment variables: docs/ENV.md - Architecture & design: docs/ARCHITECTURE.md + +## Architecture Diagram + +The project architecture is rendered with Mermaid. View [diagrams/architecture.html](../../diagrams/architecture.html). + +> **Tip**: When viewing on GitHub, install a Mermaid preview extension like [Mermaid Markdown Preview](https://marketplace.visualstudio.com/items?itemName=sporiley.mermaid-markdown), or visit the online rendered version. diff --git a/diagrams/architecture.html b/diagrams/architecture.html new file mode 100644 index 0000000..f9228bd --- /dev/null +++ b/diagrams/architecture.html @@ -0,0 +1,245 @@ + + + + + + CTPhysics Architecture + + + + + + + +
+
+

CTPhysics Architecture

+

Interactive CT Imaging Physics Learning Platform

+
+ +
+
+ + + +
+
+
+ + +
+ + + + From c74f1908a9a8a41a46ded9191687a30d8593179d Mon Sep 17 00:00:00 2001 From: Hilbert Date: Sun, 15 Mar 2026 16:30:21 +0800 Subject: [PATCH 2/2] feat: add PCCT PCD roadmap document - M1: Detector Physics (CdTe/CZT/Si materials, PRF, PSF) - M2: Source & Spectrum (X-ray spectrum, energy binning) - M3: Counting Correction (pile-up, charge sharing, K-escape, QIR) - M4: Material Decomposition & K-Edge (iodine maps, VMI, Z_eff) - M5: QA Standards (MTF, NPS, NEQ, DQE) --- ...---561556b2-5213-4107-8a8d-812d00288e4f.md | 39 ++ ...---23be51cd-810c-4421-a6d0-b747b8d0211e.md | 32 ++ docs/PCD_PCCT.md | 495 ++++++++++++++++++ 3 files changed, 566 insertions(+) create mode 100644 docs/Digital_Twin_Design_Guideline_for_PCCT---561556b2-5213-4107-8a8d-812d00288e4f.md create mode 100644 docs/Direct_Detection---23be51cd-810c-4421-a6d0-b747b8d0211e.md create mode 100644 docs/PCD_PCCT.md diff --git a/docs/Digital_Twin_Design_Guideline_for_PCCT---561556b2-5213-4107-8a8d-812d00288e4f.md b/docs/Digital_Twin_Design_Guideline_for_PCCT---561556b2-5213-4107-8a8d-812d00288e4f.md new file mode 100644 index 0000000..a8b108e --- /dev/null +++ b/docs/Digital_Twin_Design_Guideline_for_PCCT---561556b2-5213-4107-8a8d-812d00288e4f.md @@ -0,0 +1,39 @@ +设计一个针对\*\*光子计数CT(PCCT)\*\*的数字孪生模拟工具,需要从底层物理机制到临床应用端构建全流程的数学模型,以真实反映其与传统能量积分探测器(EID,即您提到的PID类技术)的本质区别。 +作为物理学家和临床学者,建议从以下四个关键维度入手设计该模拟器,并以冠脉CTA为例体现其特性: + +### 1\. 物理采集层的直接转换建模 (Physical Acquisition Layer) + +模拟器应首先体现\*\*直接探测(Direct Conversion)**与**间接探测(Indirect Detection)\*\*的物理差异。 + +* **信号生成机制:** 模拟X射线光子撞击半导体材料(如CdTe或CZT)后,直接产生电子-空穴对(电荷云),而不是像EID那样先转换为可见光再由光电二极管接收 1-3。 +* **点扩散函数(PSF)的重新定义:** 传统EID需要物理隔膜(Septa)来防止可见光散射,这造成了较大的“几何死区” 4, 5。数字孪生应模拟PCCT无需隔膜的特性,反映其更高的几何剂量效率和更小的像素尺寸(如0.11-0.15mm),这是实现**超高空间分辨率**的基础 6-8。 +* **脉冲高度识别:** 模拟电子线路如何测量每个电信号脉冲的高度(与光子能量成正比),并将其与预设的**能量阈值**进行比较 1, 2, 9。 + +### 2\. 噪声抑制与信号保真度建模 (Noise and Fidelity Layer) + +这是体现PCCT优于传统CT的核心物理特征。 + +* **消除电子噪声:** 在模拟器中设置一个低能量阈值(通常在20-25 keV)。所有低于该阈值的基线电子噪声应被“物理剔除”,从而体现PCCT在低剂量或肥胖患者成像时,图像背景的极度纯净和CT值的稳定性 10-12。 +* **能量加权模拟:** 体现PCCT对所有计数的每个光子赋予相等(或优化)权重,而传统EID对高能光子的加权更重(产生更多光)。这可以展示PCCT在模拟碘对比剂成像时,由于对低能光子的捕捉更高效,能显著提升**对比噪声比(CNR)** 13-15。 +* **非理想效应(Artifact Simulation):** 为了真实,模拟器必须包含**脉冲堆积(Pulse Pile-up)**、\*\*电荷共享(Charge Sharing)**和**K-逃逸(K-escape)\*\*等PCCT特有的物理挑战 16-18。 + +### 3\. 多参数图像重建层 (Spectral Reconstruction Layer) + +PCCT本质上是光谱CT,模拟器应支持多能级数据的处理。 + +* **能谱分桶(Energy Binning):** 模拟系统如何同时生成多个能级分段(Bin)的原始数据 9, 19, 20。 +* **物质分解(Material Decomposition):** 利用光电效应和康普顿散射的能量依赖性,在投影域或图像域实现物质分解 21, 22。在模拟器中,用户应能一键提取**碘图(Iodine Map)**、**有效原子序数图(Z-effective)或电子密度图(Electron Density)** 23-25。 +* **量子迭代重建(QIR):** 模拟专为光子计数数据设计的迭代重建算法,展示其如何在降低噪声的同时保持图像纹理的保真度 26-28。 + +### 4\. 冠脉CTA临床应用端展示 (Clinical Application in CCTA) + +在模拟工具的最后环节,需通过冠脉场景突出技术优势: + +* **减少钙化硬化伪影(Calcium Blooming):** 数字孪生应展示在高空间分辨率下,钙化斑块边缘的锐度显著提高,模拟PCCT如何减少传统CT中因空间分辨率不足导致的“钙化膨胀”现象 29-31。 +* **支架腔内评估(In-stent Imaging):** 模拟PCCT对金属支架小梁的清晰刻画,展示其如何减轻支架周围的伪影,使临床医生能够更准确地评估支架内是否存在再狭窄 32-34。 +* **单次扫描多参数评估:** 展示在一次扫描中,既能获得高分辨率的解剖结构,又能生成虚拟单能图像(VMI)以增强血管强化程度,甚至生成虚拟非钙化图像(PureLumen/VNCa)来“抹除”血管壁上的钙化,直接观察管腔狭窄程度 24, 35-37。 +* **时间分辨率与能谱结合:** 模拟双源PCCT在实现66ms极高时间分辨率的同时,依然能够获取全时谱能谱信息,解决心脏运动伪影与能谱成像不可兼得的问题 38-40。 + +### 总结 + +设计这个模拟器时,可以将其比喻为从\*\*“黑白摄影”到“彩色摄影”\*\*的跨越 41, 42。EID数字孪生模拟的是光强的累积,而PCCT模拟器模拟的是光子能量颗粒的精准测量。通过这种多层级的物理仿真,用户能直观看到PCCT如何在不增加辐射剂量的前提下,通过物理底层的革新,彻底解决冠脉成像中的钙化干扰和细微斑块特征识别等难题。 diff --git a/docs/Direct_Detection---23be51cd-810c-4421-a6d0-b747b8d0211e.md b/docs/Direct_Detection---23be51cd-810c-4421-a6d0-b747b8d0211e.md new file mode 100644 index 0000000..16f746d --- /dev/null +++ b/docs/Direct_Detection---23be51cd-810c-4421-a6d0-b747b8d0211e.md @@ -0,0 +1,32 @@ +**直接探测**(Direct Detection)是光子计数计算机断层扫描(Photon-Counting CT, PCCT)的核心技术基础。与传统CT使用的能量积分探测器(EID)不同,直接探测技术通过半导体材料将X射线光子直接转换为电信号,而不需要中间将X射线转换为可见光的闪烁过程。 +根据提供的来源,以下是关于直接探测技术的详细讨论: + +### 1\. 工作原理与机制 + +* **直接转换过程:** 在传统CT中,X射线首先被闪烁体(如硫氧化钆 GOS)吸收并转换为可见光,光信号再被光电二极管转换为电信号(间接探测)1。而在直接探测中,探测器由半导体材料(如碲化镉 CdTe、碲锌镉 CZT 或硅 Si)制成 2。当X射线光子撞击半导体层时,会产生电子-空穴对(电荷云)3。 +* **信号生成:** 在阴极和像素化阳极之间施加的高电压(约800-1000V)产生的强电场作用下,这些电荷被分离并加速移向阳极,诱导产生短电流脉冲 3。 +* **能量识别:** 产生的脉冲高度与吸收的X射线光子的能量成正比。系统通过电子比较器将脉冲高度与预设的能量阈值进行比较,从而不仅能计算光子的数量,还能测量每个光子的能量 3。 + +### 2\. 直接探测的主要优势 + +直接探测技术克服了传统间接探测器的多个局限性: + +* **消除电子噪声:**在直接探测中,可以设置一个低能量阈值(通常在20-25 keV左右),凡是低于该阈值的信号(即低幅度的基线电子噪声)都不会被计数。这使得PCCT能够完全消除电子读出噪声,显著改善低剂量扫描或肥胖患者成像时的图像质量和信噪比 6。 +* **更高的几何剂量效率(无“死区”):**传统EID探测器需要不透光的反射层(隔膜)来防止相邻像素间的光串扰,这些隔膜占据了空间并造成“死区”,降低了剂量效率。直接探测器不需要将X射线转换为光,因此不需要像素间的物理隔膜。这消除了几何死区,提高了剂量效率,并允许制造更小的探测器像素以实现超高空间分辨率 \[8\]9。 +* **光谱信息的获取:**由于直接探测器能够记录每个光子的能量,它本质上就是一种光谱CT。这被比喻为从“黑白摄影”(仅记录强度的传统CT)到“彩色摄影”(记录光谱信息的PCCT)的飞跃 11。这使得在单次扫描中即可进行物质分解、虚拟单能级图像重建和碘图生成 13。 +* **改进的对比度(加权):**传统探测器对高能光子的加权更重(因为它们产生更多的光),这降低了对低能光子(携带高组织对比度信息)的敏感性。直接探测器对所有计数的每个光子赋予相等的权重(或者可以根据能量优化加权),从而提高了碘对比剂的对比噪声比(CNR)15。 + +### 3\. 技术挑战与物理效应 + +尽管直接探测具有显著优势,但在高通量X射线成像中也面临特定的物理挑战: + +* **脉冲堆积 (Pulse Pile-up):** 当多个光子在极短的时间内(快于探测器的响应时间)击中探测器时,它们可能被记录为一个单一的高能光子,而不是多个低能光子。这会导致计数损失和能谱失真 \[17\]18。 +* **电荷共享 (Charge Sharing):** 当X射线在探测器像素边界附近被吸收时,产生的电荷云可能分裂到相邻的像素中。这会导致一个高能光子被错误地记录为多个低能事件,从而降低能量分辨率和空间分辨率 20。 +* **K-逃逸 (K-escape):** 入射X射线可能激发探测器材料(如CdTe)的K层电子,释放出特征X射线。如果这个特征X射线逃逸并在邻近像素被吸收,会导致原本的能量测量不准确 20。 + +### 4\. 探测器材料 + +* **CdTe / CZT:** 碲化镉(CdTe)和碲锌镉(CZT)是目前主要的直接探测材料。它们具有高原子序数,对X射线有很好的吸收效率,适合用于医学CT所需的能量范围。CZT中加入锌可以提高探测器在室温下的性能和稳定性 2。 +* **硅 (Si):** 硅探测器也被用于光子计数,其优势在于电荷载流子迁移率高(速度快),能更好地处理高计数率以避免脉冲堆积。但由于其原子序数低,吸收效率较差,通常需要非常厚的探测器层 2。 + +总结来说,直接探测技术通过消除光转换步骤、去除电子噪声以及保留单个光子的能量信息,从根本上改变了CT成像的物理基础,为实现更高分辨率、更低辐射剂量和多参数定量的医学成像提供了可能 23。 diff --git a/docs/PCD_PCCT.md b/docs/PCD_PCCT.md new file mode 100644 index 0000000..66dcffa --- /dev/null +++ b/docs/PCD_PCCT.md @@ -0,0 +1,495 @@ +# PCCT 模块设计与路线图 (PCD) + +本文档为 CTPhysics 项目中光子计数 CT(PCCT)仿真模块的完整设计路线图。 + +## 目录 + +1. [概述](#概述) +2. [模块架构总览](#模块架构总览) +3. [M1: 探测器物理 (Detector Physics)](#m1-探测器物理-detector-physics) +4. [M2: 源与谱 (Source & Spectrum)](#m2-源与谱-source--spectrum) +5. [M3: 计数校正 (Counting Correction)](#m3-计数校正-counting-correction) +6. [M4: 材料分解与 K-Edge](#m4-材料分解与-k-edge) +7. [M5: 质控标准与可视化](#m5-质控标准与可视化) +8. [实现顺序与里程碑](#实现顺序与里程碑) + +--- + +## 概述 + +光子计数 CT(Photon-Counting CT, PCCT)代表 CT 技术的下一代革命。与传统能量积分探测器(EID)不同,PCCT 采用直接探测技术,通过半导体材料将 X 射线光子直接转换为电信号,实现: + +- **能谱成像**:每个光子能量可被单独测量 +- **电子噪声消除**:低能量阈值(20-25 keV)过滤读出噪声 +- **超高空间分辨率**:无需像素间反射隔膜,可制造更小像素(0.11-0.15mm) +- **改进对比度**:对低能光子(携带高组织对比度信息)更敏感 + +### 物理基础对比 + +| 特性 | 传统 EID | PCCT (直接探测) | +|------|----------|-----------------| +| 信号转换 | X射线 → 可见光 → 电信号 | X射线 → 电荷云 → 电信号 | +| 能量测量 | 积分所有光子能量 | 单光子能量阈值比较 | +| 电子噪声 | 累积叠加 | 低阈值可消除 | +| 像素尺寸 | ~0.5mm (受限于光散射) | 0.11-0.15mm | +| 光谱信息 | 无 | 多能级bin | + +--- + +## 模块架构总览 + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ PCCT Simulation │ +├─────────────────────────────────────────────────────────────────┤ +│ │ +│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ +│ │ M1: Detector │ │ M2: Source │ │ M3: Counting │ │ +│ │ Physics │ │ & Spectrum │ │ Correction │ │ +│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ +│ │ │ │ │ +│ └─────────────────┼─────────────────┘ │ +│ ▼ │ +│ ┌──────────────────┐ │ +│ │ M4: Material │ │ +│ │ Decomposition │ │ +│ │ & K-Edge │ │ +│ └────────┬─────────┘ │ +│ │ │ +│ ▼ │ +│ ┌──────────────────┐ │ +│ │ M5: QA & │ │ +│ │ Visualization │ │ +│ └──────────────────┘ │ +│ │ +└─────────────────────────────────────────────────────────────────┘ +``` + +--- + +## M1: 探测器物理 (Detector Physics) + +### 1.1 目标 + +模拟 PCCT 半导体探测器的基本物理过程,包括电荷生成、收集和响应。 + +### 1.2 关键技术点 + +#### 1.2.1 探测器材料建模 + +| 材料 | 原子序数 Z | 优点 | 局限性 | +|------|-----------|------|--------| +| CdTe | 48/52 | 高吸收效率,适合医学能量范围 | 电荷迁移率较低 | +| CZT | 48/30/52 | 室温稳定性好 | 能量分辨率较差 | +| Si | 14 | 电荷迁移率高,速度快 | 原子序数低,吸收效率差 | + +**简化物理模型**: +``` +光子能量 E → 产生电子-空穴对数 N = E / W +W (产生一对电子-空穴所需的能量): + - Si: 3.62 eV + - CdTe: 4.43 eV +``` + +#### 1.2.2 像素响应函数 (PRF) + +模拟探测器像素对入射光子的响应,包括: +- 几何效率(像素面积/总面积) +- 吸收效率(能量依赖) +- 电荷收集效率(偏置电压依赖) + +#### 1.2.3 点扩散函数 (PSF) + +- **无需物理隔膜**:PCCT 无死区,PSF 仅由电荷云扩散决定 +- **简化模型**:高斯近似,σ 与探测器和偏置电压相关 + +### 1.3 测试建议 + +- [ ] 验证不同能量光子的电荷产生数量 +- [ ] 验证像素几何效率计算 +- [ ] 对比 CdTe/CZT/Si 材料的吸收曲线 + +### 1.4 交付物 + +- `detector/materials.ts` - 探测器材料参数 +- `detector/prf.ts` - 像素响应函数 +- `detector/psf.ts` - 点扩散函数 +- `detector/tests/` + +--- + +## M2: 源与谱 (Source & Spectrum) + +### 2.1 目标 + +模拟 X 射线源的能谱分布,包括连续谱和特征峰。 + +### 2.2 关键技术点 + +#### 2.2.1 X 射线能谱模型 + +使用 TMC(Target Material Characteristic)模型: + +``` +N(E) = K * (E - E_0)² * e^(-μ(E)*t) +``` + +其中: +- K: 常数 +- E_0: 截止能量 +- μ(E): 靶材质量衰减系数 +- t: 靶材厚度 + +#### 2.2.2 特征辐射 + +模拟特征 X 射线峰(Kα, Kβ): +- 钨靶 (W): Kα₁ = 59.3 keV, Kβ₁ = 67.2 keV +- 钼靶 (Mo): Kα₁ = 17.4 keV, Kβ₁ = 19.6 keV + +#### 2.2.3 能谱分桶 (Energy Binning) + +模拟 PCCT 系统的同时多能级采集: + +```typescript +interface EnergyBin { + low: number; // 低阈值 (keV) + high: number; // 高阈值 (keV) + counts: number; // 该能级光子计数 +} + +// 示例:5-bin 系统 +const bins: EnergyBin[] = [ + { low: 20, high: 35, counts: 0 }, + { low: 35, high: 50, counts: 0 }, + { low: 50, high: 65, counts: 0 }, + { low: 65, high: 80, counts: 0 }, + { low: 80, high: 120, counts: 0 }, +]; +``` + +### 2.3 测试建议 + +- [ ] 验证不同管电压的能谱形状 +- [ ] 验证特征峰位置 +- [ ] 验证能谱硬化效应 + +### 2.4 交付物 + +- `source/spectrum.ts` - X 射线能谱生成 +- `source/filtration.ts` - 滤过模型 +- `source/binning.ts` - 能谱分桶 +- `source/tests/` + +--- + +## M3: 计数校正 (Counting Correction) + +### 3.1 目标 + +模拟并校正 PCCT 特有的非理想物理效应。 + +### 3.2 关键技术点 + +#### 3.2.1 脉冲堆积 (Pulse Pile-up) + +**问题**:多个光子几乎同时击中探测器,产生重叠脉冲 + +**简化模型**: +``` +P(pile-up) ≈ 1 - exp(-τ * R) +``` +其中 τ 为探测器响应时间,R 为计数率 + +**校正方法**: +- 死时间模型(paralyzable/non-paralyzable) +- 脉冲形状甄别 + +#### 3.2.2 电荷共享 (Charge Sharing) + +**问题**:一个光子产生的电荷云分裂到相邻像素 + +**简化模型**: +- 电荷云扩散半径:σ ∝ √(d / V) +- d: 吸收位置到像素边界距离 +- V: 偏置电压 + +**影响**: +- 一个高能光子被记录为多个低能事件 +- 能量分辨率下降 + +#### 3.2.3 K-逃逸 (K-escape) + +**问题**:探测器材料 K 层电子被激发,特征 X 射线逃逸 + +**简化模型**: +``` +P(K-escape) ∝ (Z^4 / E^3) +``` + +特征 X 射线能量: +- CdTe Kα: 23.2 keV, Kβ: 26.4 keV +- CZT (CdZnTe): 类似 CdTe + +#### 3.2.4 量子迭代重建 (QIR) + +PCCT 专用迭代重建算法: + +```typescript +interface QIRConfig { + iterations: number; + regularization: number; // λ 参数 + subsets: number; // OS-S (ordered subsets) +} + +function qirRecon( + projections: number[][], + config: QIRConfig +): Image { + // 实现简化的 QIR 算法 +} +``` + +### 3.3 测试建议 + +- [ ] 验证高计数率下的计数损失 +- [ ] 验证电荷共享对能谱的影响 +- [ ] 验证 K-逃逸峰位置 +- [ ] 对比 FBP 与 QIR 重建结果 + +### 3.4 交付物 + +- `correction/pileup.ts` - 脉冲堆积校正 +- `correction/charge-sharing.ts` - 电荷共享校正 +- `correction/k-escape.ts` - K-逃逸校正 +- `correction/qir.ts` - 量子迭代重建 +- `correction/tests/` + +--- + +## M4: 材料分解与 K-Edge + +### 4.1 目标 + +利用 PCCT 的能谱信息实现物质识别和定量分析。 + +### 4.2 关键技术点 + +#### 4.2.1 物理基础 + +**光电效应**:截面 ∝ Z⁴ / E³ +**康普顿散射**:截面 ∝ Z / E + +不同材料的光电效应能量依赖性不同,在 K-Edge 附近突变。 + +#### 4.2.2 K-Edge 影像 + +K-Edge 造影剂(碘 Z=53,钡 Z=56)在特定能量处有显著吸收突变: + +| 元素 | K-Edge 能量 | +|------|-------------| +| I (碘) | 33.2 keV | +| Ba (钡) | 37.4 keV | +| Gd (钆) | 50.2 keV | + +#### 4.2.3 材料分解算法 + +**基分解法**: + +```typescript +interface MaterialDecomposition { + // 输入:多能级投影数据 + // 输出:物质密度图 + + decompose( + bins: EnergyBin[], + materials: Material[] + ): MaterialDensity[]; +} + +const materials = [ + { name: 'Iodine', z: 53, density: 0 }, // 碘 + { name: 'Water', z: 10, density: 0 }, // 水 + { name: 'Bone', z: 13, density: 0 }, // 骨 +]; +``` + +**分解方法**: +- 图像域分解:先重建,后分解 +- 投影域分解:先分解,后重建(更准确) + +#### 4.2.4 虚拟单能级图像 (VMI) + +```typescript +function virtualMonoenergetic( + bins: EnergyBin[], + energy: number // 目标能量 keV +): Image { + // 线性插值生成指定能量的虚拟图像 +} +``` + +#### 4.2.5 有效原子序数 (Z_eff) 与电子密度 + +```typescript +interface SpectralMetrics { + zEff: Image; // 有效原子序数图 + electronDensity: Image; // 电子密度图 +} +``` + +### 4.3 测试建议 + +- [ ] 验证碘溶液的 K-Edge 特征峰 +- [ ] 对比 VMI 与常规 CT 的伪影改善 +- [ ] 验证 Z_eff 计算准确性 + +### 4.4 交付物 + +- `materials/decomposition.ts` - 材料分解算法 +- `materials/kedge.ts` - K-Edge 影像生成 +- `materials/vmi.ts` - 虚拟单能级图像 +- `materials/metrics.ts` - Z_eff 和电子密度 +- `materials/tests/` + +--- + +## M5: 质控标准与可视化 + +### 5.1 目标 + +为 PCCT 系统建立完整的质量控制标准和可视化工具。 + +### 5.2 关键技术点 + +#### 5.2.1 调制传递函数 (MTF) + +评估空间分辨率: + +```typescript +function calculateMTF( + edgeImage: Image, + edgeDirection: 'x' | 'y' +): MTF { + // 从刃边图像计算 MTF + // 报告 50%, 10%, 2% MTF 对应的空间频率 (lp/cm) +} +``` + +**PCCT 优势**: +- 无隔膜死区 → 更高 MTF +- 小像素 (0.11-0.15mm) → 超高分辨率 + +#### 5.2.2 噪声功率谱 (NPS) + +评估噪声特性: + +```typescript +function calculateNPS( + uniformImage: Image, + roiSize: number +): NPS { + // 计算 2D NPS + // 评估噪声频率分布 +} +``` + +#### 5.2.3 等效量子数 (NEQ) + +综合评价检测性能: + +```typescript +function calculateNEQ( + mtf: MTF, + nps: NPS, + dose: number +): NEQ { + // NEQ = (MTF²) / NPS + // 反映给定剂量下的信息传递能力 +} +``` + +#### 5.2.4 DQE (检测量子效率) + +```typescript +function calculateDQE( + neq: NEQ, + dose: number +): DQE { + // DQE = NEQ / (光子数) + // 0-1 之间,越高越好 +} +``` + +### 5.3 可视化模块 + +| 可视化类型 | 用途 | +|-----------|------| +| MTF 曲线 | 空间分辨率评估 | +| NPS 云图 | 噪声空间分布 | +| 能谱曲线 | 光谱质量检查 | +| 物质分解图 | 材料可视化 | +| VMI 对比 | 伪影分析 | + +### 5.4 测试建议 + +- [ ] 验证 MTF 计算与标准模体一致性 +- [ ] 验证 NPS 统计可靠性 +- [ ] 对比 PCCT 与 EID 的 DQE + +### 5.5 交付物 + +- `qa/mtf.ts` - MTF 计算与可视化 +- `qa/nps.ts` - NPS 计算 +- `qa/neq.ts` - NEQ/DQE 计算 +- `qa/viewer.ts` - 质控可视化界面 +- `qa/tests/` + +--- + +## 实现顺序与里程碑 + +### Phase 1: 基础 (M1 + M2) +- [ ] 探测器材料参数库 +- [ ] PRF/PSF 模型 +- [ ] X 射线能谱生成 +- [ ] 基本投影仿真 + +### Phase 2: 核心 (M3) +- [ ] 脉冲堆积模拟 +- [ ] 电荷共享模拟 +- [ ] K-逃逸模拟 +- [ ] 基础重建算法 + +### Phase 3: 高级 (M4) +- [ ] 能谱分桶 +- [ ] 材料分解 +- [ ] K-Edge 影像 +- [ ] VMI 生成 + +### Phase 4: 质控 (M5) +- [ ] MTF/NPS/NEQ 计算 +- [ ] 质控可视化工具 +- [ ] 临床场景演示(冠脉钙化、支架) + +### 里程碑时间线 + +| 里程碑 | 内容 | 预计迭代 | +|--------|------|----------| +| M1 | 探测器物理 | 2 周 | +| M2 | 源与谱 | 1 周 | +| M3 | 计数校正 | 3 周 | +| M4 | 材料分解 | 2 周 | +| M5 | 质控可视化 | 2 周 | + +--- + +## 参考资料 + +- `Direct_Detection.md` - 直接探测技术详解 +- `Digital_Twin_Design_Guideline_for_PCCT.md` - PCCT 数字孪生设计指南 +- `PCD_ROADMAP.md` - 原项目路线图 +- `ARCHITECTURE.md` - 系统架构 + +--- + +*本文档为 CTPhysics 项目的一部分,采用 MIT 许可证。*