You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对头部CT的DICOM图像进行骨骼区域掩膜处理?

头部CT骨骼区域提取的正确处理方式

你当前的方法存在核心问题:直接用DICOM像素数组的数值(200)作为阈值是不准确的,因为DICOM文件里的pixel_array存储的是原始像素存储值,并非CT图像的标准HU(亨氏单位)值——水对应的0HU需要通过DICOM元数据转换得到,和像素数组里的0不是一回事。

正确步骤说明

  1. 将像素值转换为HU值
    CT图像的HU值需要通过DICOM标签里的RescaleSlope(重新缩放斜率)和RescaleIntercept(重新缩放截距)计算,公式为:
    HU = 像素存储值 * RescaleSlope + RescaleIntercept
    这一步是必须的,只有HU值才能准确对应人体组织的密度(水=0HU,骨骼通常在200HU以上,皮质骨可达1000-3000HU)。

  2. 设置HU阈值提取骨骼
    根据需求选择合适的HU阈值:

    • 若要包含松质骨和皮质骨,可使用HU > 200作为阈值
    • 若仅需提取高密度的皮质骨,可将阈值提高到HU > 1000

修正后的代码

import pydicom
import numpy as np

# 读取DICOM文件
dcm_img = pydicom.dcmread("0000200.dcm")
dcm_arr = dcm_img.pixel_array

# 获取HU转换参数
slope = dcm_img.RescaleSlope
intercept = dcm_img.RescaleIntercept

# 转换为HU值
hu_arr = dcm_arr * slope + intercept

# 生成骨骼掩膜:HU>200的区域保留原始值,其余设为0
masked_arr = np.where(hu_arr > 200, hu_arr, 0)

补充说明

  • 如果你的DICOM文件没有RescaleSlope和RescaleIntercept标签(极少数情况),可以默认slope=1,intercept=0,但这种情况非常少见。
  • 若需要更精准的骨骼分割,还可以结合形态学操作(比如膨胀、腐蚀)来去除噪声,或者使用专门的医学图像分割库(如SimpleITK、MONAI)。

内容的提问来源于stack exchange,提问作者kodhoi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 07:22:08