前言
医学图像中CT切片很多都是.dcm格式,怎么把它转换成.jpg图片格式以便观察或者后续操作。主要利用窗位窗宽对dcm文件中的数值进行调节。
一、窗位窗宽是什么?
当解释CT(计算机断层扫描)图像时,窗位(Window Level)和窗宽(Window Width)是两个重要的概念。它们用于调整和优化图像以显示不同组织和结构的对比度和亮度。下面我会详细解释这两个概念:
窗位(Window Level):
定义:窗位是图像上显示的灰度级别的中心值,通常以Hounsfield Units(HU)为单位。它决定了图像中哪些灰度级别被认为是图像中间的,因此影像上显示的组织将以这个中心值为基准进行亮度调整。
作用:窗位允许你调整图像中感兴趣的结构的亮度级别,以便更好地显示这些结构。通过改变窗位,你可以将兴趣区域的灰度值调整到图像中间,从而提高可视化效果。
窗宽(Window Width):
定义:窗宽是图像上显示的灰度级别的范围,通常以HU为单位。它决定了图像中有多少不同灰度级别被包含在窗宽范围内,即图像的对比度。
作用:窗宽允许你控制图像的对比度。较大的窗宽将包括更多灰度级别,导致低对比度图像,而较小的窗宽将限制灰度级别范围,导致高对比度图像。
如何调整窗位和窗宽:
增加窗位:将图像中心的灰度级别向高密度方向移动,使组织变亮。
减小窗位:将图像中心的灰度级别向低密度方向移动,使组织变暗。
增加窗宽:扩大灰度级别范围,增加对比度。
减小窗宽:缩小灰度级别范围,降低对比度。
例如,当查看头部CT扫描时,你可以使用窗位和窗宽来优化显示脑组织和骨骼结构的对比度。通过适当调整窗位和窗宽,你可以确保脑部组织在图像中清晰可见,同时不会过度增强或模糊骨骼结构。
总之,窗位和窗宽是用于调整CT图像外观的参数,以提供更好的可视化效果和更准确的诊断信息。医生通常会根据患者的需要和疾病特征来调整这些参数,以获得最佳的影像质量。
二、代码实现
分为两步,一步是HU值获取。一步是利用窗位窗宽进行调整。
HU值获取
def getCtHU(dcm_name):
'''直接传入dicm文件/IMA文件'''
dcm = pydicom.dcmread(dcm_name, force=True)
dcm.file_meta.TransferSyntaxUID = pydicom.uid.ImplicitVRLittleEndian
# 获取图像HU,部分参数没有或者报错的话可以自己手动查看它的属性,可以debug
hu_values = dcm.pixel_array.astype(np.float32) * float(dcm.RescaleSlope) + float(dcm.RescaleIntercept) # float64
return hu_values
根据窗位窗宽进行调整
def windowsLevelTransform(Hu, window, level):
img = Hu
min = level - float(window) * 0.5
max = level + float(window) * 0.5
img[img < min] = min
img[img > max] = max
norm_ = (img - min) / window
norm_.astype('float32')
return norm_
总结
本文介绍了把.dcm文件转换为.jpg文件的过程和代码。