[DICOM活久见-3] 不是所有的错误图像,都值得挽救的

本文由Markdown语法编辑器编辑完成.

1. 背景:

近日在工作中,突然收到现场运营的反馈,一个医生从信息科老师导出的检查,上传到我们的服务器后,经过AI的预测后,结果是黑屏。
而这个检查对应的患者,是医院一个很有名的专家,第二天要做泌尿外科手术的患者。专家需要提前通过我们的软件,辅助做手术规划之类的工作安排。现场运营立刻联系研发,能不能赶紧支持解决一下。

我一听,慌了神。专家,急着手术,迫不及待,十万火急 !!!

问同事拿到这个有问题的检查数据后,开始仔细地分析开来。

首先这个数据,在我们产品的界面中,是无法展示的, 也就是黑屏。

在这里插入图片描述

但是这里的黑屏,并不是图像不存在。其实图像是存在的,只不过按照我们预设的窗宽窗位,它显示出来是黑屏。但是,通过切换不同的窗宽窗位的预设,比如从胸腹窗,切换到肺窗以后,是可以看到图像的轮廓的,但是图像整体上仍然是偏暗的。

其次,当我将这个序列生成的体数据,放到slicer里面时,slicer是可以显示出来这个序列的,而且看起来还比较“正常”。
至少,在肉眼看起来,看不太明显它有什么问题。

但是,如果从slicer的volumes模块查看,却可以发现这个序列影像,不太正常的地方。

在这里插入图片描述
切换到Volumes模块后,可以看到这个序列影像,它的Scalar Range的范围是: -1024 ~ -769.
这里的Scalar Range, 其实就是CT值。

CT值,指的就是这个影像上面,像素点的灰度值,经过计算后得到的值,

在这里插入图片描述
关于CT值的概念,可以通过咨询kimi助手了解到,它主要就是反映人体内组织的密度。密度越小,CT值越小;反之,则CT值越大。由于肺部里面,主要是充满着很多的空气,因此,如果是包含胸肺的序列,它的影像的最小值,一般是-1024(空气的CT值);而由于胸肺区域,还有肋骨,所以它的影像的最大值,一般是1000+以上(骨骼的CT值)。

但是这个有问题的序列,它的CT的最大值,才-769,显然是不符合常理的。

2. 分析

2.1 为什么slicer可以正常展示序列?

那么,为什么这个有问题的序列,在slicer里面,能够正常展示呢?

其实,之所以这个有问题的序列,在我们的软件产品中黑屏,而在slicer, 或其他的一些dicom viewer里面能够正常展示。是因为,这些软件,它们会根据这个序列的灰度范围,而自动调节显示时使用的窗宽窗位。而我们的软件,由于是给特定部位使用的,所以里面有一个默认的窗宽窗位,就像第一幅图中展示的, ww = 150, wl = 90.

而slicer在加载这个序列后,它的窗宽窗位,会自适应地调整成为: ww = 254, wl = -897.
在这里插入图片描述

2.2 这个灰度范围是怎么计算出来的?

那么到底,这个序列的灰度范围: -1024 ~ -769, 是怎么计算出来的呢?
这就需要查看一下这个dcm的tag, 主要涉及到:

Tag NameTag Value
BitsAllocated8
BitsStored8
High Bit7
Pixel Representation0
Rescale Intercept-1024
Rescale Slope1
PixelData->pixel_array0 ~ 255

其实,为什么PixelData的灰度值的范围是 0 ~ 255呢?
因为这个dicom里面,它的BitsAllocated是8, 也就是每个像素点的灰度值,是由一个8位的二进制数决定的。而一个8位的二进制,它的最大值,就是256.

那么再通过 RescaleIntercept的调整,自然它的CT值的范围就变成了: (0 ~ 255) - 1024 = (-1024 ~ -769).

因此,这个影像的灰度范围,永远都是256个灰阶单位。

那么,如果想让这个序列,能够在我们的软件中显示,该怎么办呢? —— 只能通过扩大它的灰阶,才能实现。

也就好比,我需要在原来256个灰阶的基础上,放大10倍,变成2560个灰阶。而且,需要保持最小的灰阶,仍然是-1024。

那么,这样的灰阶放大,有意义吗?

仔细想想,其实是没有太大意义的。

为什么会有不同的灰阶呢?因为,灰度代表每个点的密度。为什么正常的序列,灰阶会跨越那么大呢。因为,人体内不同组织,它们的密度差异很大。从最小的-1024, 到比较大的2000 ~ 3000。正因为灰阶跨度范围大,我们才能够通过调整窗宽窗位,看到某一个局部部位的细节。细节,其实就是通过不同的灰阶变化来实现的。

由于人的眼睛,对于灰度的范围,识别区域其实很小。比如平时看到的jpg, png, 它的灰度范围就是 0 ~ 255。但是,由于医学诊断要求的精度更高,所以对于医学影像,一般医院都会有专门的医用影像显示器,才能呈现出更加精细的灰度差异。

那么,如果我们要把一个 256灰阶的图像,扩大10倍的灰阶。比较简单的线性变化,就是每个像素点的灰度值,乘以10。经过这样的处理,灰度范围是变大了,但是其实无法达到将丢失的细节,还原回来的目的。那么,即使增大灰度范围后,在后续的处理过程中,也可能会出现各种各样的问题。

因此,我也就放弃了,再将这个问题图像,想办法复原的方法了。

后来的解决方法是,我们找到有经验的同事,从PACS上直接下来下来这个序列,然后再次处理,就可以正常展示了。
也就是说,最后问题,还是需要从下载图像的源头解决。

在这里插入图片描述

如果本身下载下来的图像,就是缺失了很多灰度和细节信息的,那么通过后续的弥补,是很难真正还原的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

inter_peng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值