dcm中的DSA算法

       DSA在dcm中也就是多帧减影. 注意一下dcm中的多帧并不是都能做减影,像是us超声设备采集的影像,这种做减影就没有任何意义.我们常说的dsa实际上指的是xa设备的多帧剪影.这种设备在我的博客 dcm文件中XA设备的像素解析_小雷踩坑记的博客-CSDN博客 有过简单的介绍.

   这种设备主要是拍摄的造影剂随着血液扩散,可以帮助医生判断什么地方血管堵塞了.(跟弥散算法一样,不过没人家高大上) 在DSA系统中,根据不同的使用目的,数字减影有各种不同的方法,如时间、能量减影等,区别主要在于相减的两影像即掩模和造影剂充盈像的获取方法不同.

(一)时间减影
     时间减影是DSA常用的方式,在注入的造影剂进入感兴趣区之前将一帧或多帧影像作为掩模像存储,并与按时间顺序出现的造影像一一相减。这样,两帧中相同的影像部分被消除,而造影剂通过血管时形成的高密度部分被突出地显示。这种工作方式因掩模像和造影像获得的时间先后不同,故称为时间减影。它的不足之处是,在摄影过程中由于病人自主或不自主的运动,使掩模像和造影像不能精确匹配,导致影像出现配准不良的伪影或模糊.

   目前我们是采用的这种,等下会重点介绍一下.

二)能量减影
能量减影也称双能减影。在进行感兴趣区血管造影时,几乎同时用两种不同的管电压(如70kV和130kV)取得两帧影像,对它进行减影处理;由于两帧影像利用不同能量的X线摄制,所以称为能量减影。
这种减影方法利用了碘与周围软组织对X线的衰减系数在不同能量下有明显差异的特性(碘在33keV能级时衰减曲线发生跃变,衰减系数突然增大,而软组织衰减曲线是连续的,并且能量越大,衰减系数越小)。若将一块含骨、软组织、空气和微量碘的组织分别用能量略低于和略高于33keV的X线(分别为70和130kV)曝光,则后一帧影像比前一帧影像的碘信号大约减少80%,骨信号大约减少40%,软组织信号减少约25%,气体则在两个能级上几乎不衰减。若将这两帧影像相减,所得的影像将有效地消除气体影,保留少量软组织影及明显的骨影和碘信号。若将130kV时采集的影像用约1.33的系数加权后再减影,能很好地消除软组织和气体影,仅留下较少的骨信号及明显的碘信号。
能量减影法还可把不同衰减系数的组织分开,例如把骨组织或软组织从X线影像中除去,从而得到只有软或骨组织的影像。具体方法是用两种能量的X线束获得两幅影像,一幅在低能X线下获得,另一幅在高能X线下获得,影像都经对数变换进行加权相减,就消除了骨或软组织。
从原理上看,能量减影是一种较好的减影方法,但在实施中要求管电压能在两种能量之间进行高速切换,增加了X线机的复杂性,一般X线机不能采用这种方法。这种方法还不易消除骨骼的残影。
三)混合减影方式
把能量和时间减影技术相结合,产生了混合减影技术。基本原理是在造影剂未注入前,先做一次双能量减影,获得含少部分骨组织信号的影像,将此影像同血管注入造影剂后的双能量减影像作减影处理,就得到单纯的血管影像。混合减影对设备和X线管负载的要求都较高。
上面是DSA系统通用的一些算法.
重点介绍一下我们采用的时间剪影.

主要是思想是选一帧作为模板(比如第二张),然后用整体的每一帧去减这帧(注意一下是影像的像素相减) 这样不出所误的话,第二张减出来是全黑的.

 处理比较麻烦的地方,因为java像素不像c++有short,有符号和无符号型,这边特别需要注意将我们的像素 转为 CvType.CV_8UC1(如果nBitsAllocated大于8位转为 CvType.CV_16UC1) 

 像素区间 0~255  2^8 也就是8位的无符号1通道的

像素区间 0~65535 2^16 也就是16位的无符号1通道
因为要多帧做剪影 ,像素区间 -65535 ~+65535 16位就不合适了,这里主要处理都在32位有符号的1通道处理的.

算法流程:
  1.取某一帧作模板(掩膜) 

 2.其他的帧减这个掩膜

3.gamma矫正 加强区别

4.像素的数据归一化(最好把像素数据归一化到0~255,因为整体帧的图像其实只有造影剂血管那有区别,背景什么的,减了之后,其他都是黑的)

5.图像锐化 (很多同学这里会做个反色,会让造影剂血管差异这边变黑,其他是白的,我这边做的锐化其实也是这个效果.

以此记录,java处理dcm复杂的就是处理像素的位数,大家一定要多小心验证

不过像是心脏那种减影,因为心脏会有一个起伏跳动(目前在常用的医疗里面还没有去除这种心脏起伏的,这个一般会考虑到频率什么的),所以选的这个掩膜一般很重要.

效果展示

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值