CT 影像测量:从 DICOM 到 HU、区域面积与报告
用公开 CT DICOM 完成 HU 校准、显示窗和二维区域测量;比较阈值差异,查看实际版本修正,继续开发自己的影像项目。
这篇教程用一张公开 CT 切片,带你在 PathoWish 中完成 DICOM 读取、HU 校准、显示窗生成和高密度区域测量。项目会输出图表、逐区域数据、验证记录与可继续修改的代码。
本例在 200 HU 阈值下得到 6 个高密度候选区域,总二维面积为 803.760824 mm²,通过 21 项检查。下面按插件中的实际工作流程建立项目。
1. 选择 CT 数据和工作目录
从 pydicom 3.0.1 官方仓库下载 CT_small.dcm 的原始文件。它是一张 128 × 128 的单层 CT,大小为 39,206 字节。
- 打开“数据与范围”,选择研究项目和“本地执行”。
- 点击“选择工作目录”,指定代码、图表和报告的保存位置。
- 在“研究数据”点击“+ 增加数据”,用途填写“CT 的 HU 校准与二维区域测量”。
- 数据类型选“单个文件”,点击“选择路径并添加”,选中
CT_small.dcm。 - 选择已有项目环境,或让插件为该项目准备独立环境。
本次复用了 Python 3.12.14 环境,所需包为 pydicom、NumPy、SciPy 和 Matplotlib。数据加载仅保留测量所需的像素与标定字段。
文件 SHA-256 为 3dd31e5cc835b3f2cdd46c9da1982f59251e78518fefa8163d914631c66437d6,可用于核对复现输入。
2. 输入分析目标
点击“提交建模需求”,或在“建模项目”点击“提交新需求”,填写:
请用选中的 CT DICOM 建立一个影像质控与测量项目:读取像素间距和重标定参数,转换为 HU,生成两种显示窗、HU 分布图和高密度区域叠加图;输出逐区域面积与强度统计,并比较几个合理阈值的测量差异。请独立实现代码,验证单位和计算,使用 CPU 运行,生成带 PathoWish 品牌的图表报告。输出中保留分析所需元数据。
点击“下一步:核对需求”,确认输入文件、执行位置和环境后提交。
3. 核对方案与参考资料
阶段 1“调研文献与资源”展示方法调研;阶段 2“确认方案与仓库”展示实施方案。
本例参考 scikit-image 论文 中的数组处理、连通区域与属性测量思想,并依据 pydicom 像素指南 处理 DICOM 标定。模型将这些方法组织成项目自己的代码与依赖。
需要补充论文时,可从 PeerJ 文章页下载 PDF,在阶段 2 的“参考文献与自备材料”点击“+ 添加 PDF 文献”,核对导入后的标题与选中状态。
检查方案是否覆盖四类工作:
| 工作 | 预期输出 |
|---|---|
| 解码与标定 | HU 数组、像素间距、全图统计 |
| 区域测量 | 候选掩膜、逐区域表、阈值敏感性表 |
| 可视化 | 显示窗、HU 直方图、叠加图 |
| 验证 | HU 参考比对、像素计数、单位与面积核对 |
勾选“我已核对方案与所选仓库,确认按以上方案开发”,点击“确认方案并开始定制开发”。
4. 查看开发与执行
在阶段 3“分析源码与定制开发”查看实现进度,在阶段 4“验证并查看结果”查看运行和模型审阅。四个模块按实际数据依赖执行,运行日志与结果文件随版本保存。
本例的转换公式为:
HU = 存储像素值 × RescaleSlope + RescaleIntercept
面积 = 像素数 × 行间距 × 列间距
输入的斜率为 1,截距为 −1024;行、列间距均为 0.661468 mm。显示窗作用于单独的显示数组,测量始终读取 HU 数组。
5. 检查图表与结果

先查看两种窗口,确认图像方向和显示完整,再查看 HU 分布与候选叠加。

本例以高于 200 HU 的像素形成候选掩膜,采用 8 邻域连接并保留至少 3 像素的区域。左图显示保留像素,右图用颜色区分 6 个区域;坐标表示行列方向的物理距离。

16,384 个像素的 HU 范围为 −896 至 1167,均值为 −119.073853 HU。项目的独立转换与 pydicom 标准模态转换逐像素一致,最大差为 0 HU。
| 阈值 | 筛选前像素 | 保留像素 | 区域数 | 总面积 mm² | 占全图比例 |
|---|---|---|---|---|---|
| 150 HU | 2733 | 2731 | 5 | 1194.921508 | 16.6687% |
| 200 HU | 1846 | 1837 | 6 | 803.760824 | 11.2122% |
| 300 HU | 1024 | 1013 | 10 | 443.227934 | 6.1829% |

提高阈值会减少保留面积,也可能把原先连通的区域拆开,因此区域数会增加。表中的占比以整幅图像为分母;这些指标用于比较单层 CT 的阈值测量规则。病灶分割任务应结合病灶标签或相应模型另建方案。
6. 查看一次真实的版本修正
首轮运行完成科学计算和 19 项检查。模型随后读取绘图日志,发现 Matplotlib 将缓存放到了系统临时目录,于是创建新实现版本,把缓存配置到该版本的产物目录,并增加缓存路径和 PNG 文件检查。
新版本重新执行后通过 21 项检查。两版测量指标完全相同,父版 27 项产物的文件哈希保持不变。你可以在项目版本记录中同时查看修正理由、旧版结果和新版运行。
这展示了项目如何通过实际日志继续改进运行配置,并保留实验版本。
7. 打开结果与代码,扩展你的测量
进入“结果与图表”,查看带 PathoWish 标识的汇总报告。点击“打开结果文件夹”,可找到三张 CSV、四张 PNG、HU 与标签数组、标定元数据以及验证记录。点击“打开项目代码”,继续修改阈值、连通规则和显示窗口。
例如,可以继续提出:
请保留当前版本,把主阈值改为 250 HU,增加 250 HU 的对照结果,并在报告中比较面积与区域数量。
使用自己的数据时,先核对像素间距和重标定字段。该项目面向单层 CT 的二维测量;扩展到连续切片后,可进一步设计三维连通区域与体积计算。
数据与方法来源
- 数据:pydicom 3.0.1 的 CT_small.dcm,使用时保留仓库许可和来源说明。
- 方法:scikit-image: image processing in Python。
- 单位:DICOM Pixel Spacing 的值顺序与单位。
实验记录:2026 年 10 月 15 日,最终版本 version-b5860832ffb6、运行 run-7bc589cbc6,四个步骤完成。PathoWish 实际项目后端执行计算,当前会话模型完成资料阅读、代码生成、日志审阅和版本修正。