首页 > 代码库 > ITK读取CT DICOM,如何设置窗位和窗宽?

ITK读取CT DICOM,如何设置窗位和窗宽?

关键字: dicom itk CT 不清晰 窗位 窗宽

碎碎念:

最近忽然要用到ITK读取DICOM,在听到任务之前,我连ITK和DICOM是个啥东西都不知道.当然,刚听到任务的时候,我脑子里也只有"这特码是啥?""这特码又是啥?"...

在被进度恶心了几天之后,对这些概念我大概有了些认识.然后在试图将DICOM显示成jpeg时候,按照guide里的例子改了改,结果发现JPEG的图像呈现灰蒙蒙的感觉,完全不如另一款软件读出的清晰.

尝试过程中,由于概念认识有限,搜索能力也大打折扣,个中滋味只有自己能体会了.

当然,折腾了几天后,算是解决了这个问题.为了方便使用中文的其他人,在这里做一个简单记录.

==================

ITK的概念:略

DICOM的概念:略

 

问题:

(CT图像的)DICOM文件使用ITK读取后,进行重新压缩,产生的图像有不清晰 或 对比度奇怪 或 底色不是纯黑色 等多种难以描述的奇特景象.

解决办法:

读入文件后,查找DICOM的窗位(window center)和窗宽(window width),并使用这两个参数通过itkIntensityWindowingImageFilter滤镜进行转换,写入新文件即可.

 

关键点:

1.查找窗位和窗宽时,可参照guide给出的例子("Printing DICOM Tags From One Slice"这一节),用到了itkMetaDataDictionary和itkMetaDataObject.
2.设定时,可参照ITK源代码自带例子(Filtering\ResampleVolumesToBeIsotropic.cxx),用到了itkIntensityWindowingImageFilter.

   注意这里设定的最大值(SetWindowMaximum)和最小值(SetWindowMinimum),需要根据窗位和窗宽计算一下.

   (max = window center + window width/2.0f; min = window center - window width/2.0f )

3.(仅限CT)如果还是觉得有问题,先不要想着用截距和斜率进行再计算.ITK读入DICOM的时候是计算过这两个参数的,理论上说来,不需要再计算一次.

 

以上就是折腾了几天的内容.

另外别问我为啥不喜欢贴代码,贴了代码的好处是代码的语言是全球通用,谁都能读懂,人人都能直接copy,但是坏处就是很多人也不管代码强度就直接copy,到后来出了问题自己也不知道是什么情况.于是我就只写思路,实现什么的,最讨厌了.

ITK读取CT DICOM,如何设置窗位和窗宽?