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
+
+
+
+
+
+
+
+
+
+
+
+
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 许可证。*