首页 > 代码库 > 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,如何设置窗位和窗宽?