X光图像的拉伸方法及计算机可读存储介质与流程

文档序号:13447427阅读:270来源:国知局
X光图像的拉伸方法及计算机可读存储介质与流程

本发明涉及医学影像处理技术领域,尤其涉及一种x光图像的拉伸方法及计算机可读存储介质。



背景技术:

由于dr影像显示设备和人眼特征的局限,dr影像的roi区域(感兴趣区域)需要做拉伸操作才能更方便医生诊断。例如,束光区和空气区包含的灰度信息是无效信息,需要压缩灰度范围;而曝光部位的roi区域包含了绝大多数有用信息,需要拉伸灰度范围,增强其对比度。但是,在dr影像采集过程中,由于医生的经验水平不足,选用的拍摄剂量不合适,或者由于dr设备的硬件的稳定性、不同的拍片患者组织密度的差异等原因,导致采集到的原始图像有很明显的亮度差异,此时图像拉伸过程如果选用相同参数,图像后处理输出的图像不能确保亮度及对比度的效果,细节和亮度均衡性也不能很好的表现出来,对医生的诊断有很大的影响。特别是剂量比正常剂量小时,拉伸效果不能达到预期。



技术实现要素:

本发明所要解决的技术问题是:提供一种x光图像的拉伸方法及计算机可读存储介质,可自动识别出有效的组织区域,并且生成稳定、适合的灰度变换曲线,增强roi区域并压制非roi区域。

为了解决上述技术问题,本发明采用的技术方案为:一种x光图像的拉伸方法,包括:

根据高斯-拉普拉斯金字塔分解方法,将x光图像分解为预设层数的高斯金字塔和拉普拉斯金字塔;

对所述拉普拉斯金字塔中第k层的拉普拉斯图中的强边缘点进行过滤,所述k为预设的目标金字塔层数;

在第k层的拉普拉斯图中获取roi区域的点,并根据所获取的点的坐标,获取所述高斯金字塔中第k层的高斯图中相应位置的点的灰度值;

根据所述灰度值,得到累积分布函数;

根据所述累积分布函数中预设位置的点的灰度值以及预设的目标灰度值,拟合得到灰度变换曲线;

根据所述灰度变换曲线,对x光图像进行拉伸。

本发明还涉及一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤:

根据高斯-拉普拉斯金字塔分解方法,将x光图像分解为预设层数的高斯金字塔和拉普拉斯金字塔;

对所述拉普拉斯金字塔中第k层的拉普拉斯图中的强边缘点进行过滤,所述k为预设的目标金字塔层数;

在第k层的拉普拉斯图中获取roi区域的点,并根据所获取的点的坐标,获取所述高斯金字塔中第k层的高斯图中相应位置的点的灰度值;

根据所述灰度值,得到累积分布函数;

根据所述累积分布函数中预设位置的点的灰度值以及预设的目标灰度值,拟合得到灰度变换曲线;

根据所述灰度变换曲线,对x光图像进行拉伸。

本发明的有益效果在于:由于高斯-拉普拉斯金字塔分解是对图像不同尺度和强度的边缘的分解,因此,通过对图像进行高斯-拉普拉斯金字塔分解,得到不同尺度和不同边缘强度的图;根据不同曝光部位纹理的尺度特征,预先指定需要金字塔中哪一层的图,然后对该层的拉普拉斯图过滤强边缘点后获取roi区域的点,在该层的高斯图获取这些点的灰度值,对这些灰度值进行分析处理,得到累积分布函数,然后根据累积分布函数上的几个点的灰度值和预设的灰度值拟合得到灰度变换曲线,最终根据灰度变换曲线,对原图像进行拉伸。本发明通过自适应的分析原始图像的有效灰度信息,得到稳定的曲线拉伸效果,当拍摄剂量设置不恰当时,能自动识别出有效的组织区域,并且生成稳定、适合的灰度变换曲线,增强roi区域并压制非roi区域。

附图说明

图1为一种x光图像的拉伸方法的流程图;

图2为本发明实施例一的方法流程图;

图3为本发明实施例一中灰度变换曲线的示意图;

图4a为本发明实施例一中拉伸前的图像一;

图4b为本发明实施例一中拉伸后的图像一;

图5a为本发明实施例一中拉伸前的图像二;

图5b为本发明实施例一中拉伸后的图像二。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。

本发明最关键的构思在于:根据图像中边缘的强度和尺度,区分roi区域和非roi区域。

请参阅图1,一种x光图像的拉伸方法,包括:

根据高斯-拉普拉斯金字塔分解方法,将x光图像分解为预设层数的高斯金字塔和拉普拉斯金字塔;

对所述拉普拉斯金字塔中第k层的拉普拉斯图中的强边缘点进行过滤,所述k为预设的目标金字塔层数;

在第k层的拉普拉斯图中获取roi区域的点,并根据所获取的点的坐标,获取所述高斯金字塔中第k层的高斯图中相应位置的点的灰度值;

根据所述灰度值,得到累积分布函数;

根据所述累积分布函数中预设位置的点的灰度值以及预设的目标灰度值,拟合得到灰度变换曲线;

根据所述灰度变换曲线,对x光图像进行拉伸。

从上述描述可知,本发明的有益效果在于:可自动对图像进行有效的识别分析,得到稳定、适合的对比度拉伸曲线(即灰度变换曲线),且不受拍摄剂量的影响,拉伸后的图像可很好地显示出roi区域。

进一步地,所述“对所述拉普拉斯金字塔中第k层的拉普拉斯图中的强边缘点进行过滤,所述k为预设的目标金字塔层数”具体为:

根据所述拉普拉斯金字塔中第k层的拉普拉斯图的大小,将其他层的拉普拉斯图进行缩放,所述k为预设的目标金字塔层数;

根据预设的第一阈值,获取每一层的拉普拉斯图中的强边缘点;

根据所述强边缘点的坐标,将第k层的拉普拉斯图中相应位置的点的值置0。

由上述描述可知,由于尺度较大或较强的边缘也是非roi区域的边缘,或者是roi区域中不需要增强的边缘,因此,需去除强边缘点。

进一步地,所述“根据所述拉普拉斯金字塔中第k层的拉普拉斯图的大小,将其他层的拉普拉斯图进行缩放”之后,进一步包括:

根据预设的边界宽度,对所述高斯金字塔中第k层的高斯图以及所述拉普拉斯金字塔中每一层的拉普拉斯图进行裁边。

由上述描述可知,由于roi区域一般都在图像的中间位置,因此裁掉一定宽度的边界,可去除图像边缘对处理效果的影响,也可提高计算效率。

进一步地,所述“根据预设的第一阈值,获取每一层的拉普拉斯图中的强边缘点”之前,进一步包括:

分别根据各层的拉普拉斯图中点的最大值,对所述各层的拉普拉斯图中各个点的值进行归一化处理。

由上述描述可知,通过进行归一化处理,方便阈值处理。

进一步地,所述“在第k层的拉普拉斯图中获取roi区域的点,并根据所获取的点的坐标,获取所述高斯金字塔中第k层的高斯图中相应位置的点的灰度值”具体为:

获取第k层的拉普拉斯图中满足预设条件的点,所述预设条件为点的值大于预设的第二阈值且小于预设的第三阈值;

根据所获取的点的坐标,获取所述高斯金字塔中第k层的高斯图中相应位置的点的灰度值。

由上述描述可知,根据拉普拉斯图做坐标筛选,之后根据高斯图和筛选出的坐标得到相应的灰度。

进一步地,所述“获取第k层的拉普拉斯图中满足预设条件的点”之前,进一步包括:

根据第k层的拉普拉斯图中点的最大值,对第k层的拉普拉斯图中各个点的值进行归一化处理。

由上述描述可知,方便阈值处理。

进一步地,所述“根据所述灰度值,得到累积分布函数”具体为:

根据所述灰度值,统计生成灰度直方图;

归一化所述灰度直方图,得到概率密度函数;

根据所述概率密度函数,得到累积分布函数。

本发明还提出了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤:

根据高斯-拉普拉斯金字塔分解方法,将x光图像分解为预设层数的高斯金字塔和拉普拉斯金字塔;

对所述拉普拉斯金字塔中第k层的拉普拉斯图中的强边缘点进行过滤,所述k为预设的目标金字塔层数;

在第k层的拉普拉斯图中获取roi区域的点,并根据所获取的点的坐标,获取所述高斯金字塔中第k层的高斯图中相应位置的点的灰度值;

根据所述灰度值,得到累积分布函数;

根据所述累积分布函数中预设位置的点的灰度值以及预设的目标灰度值,拟合得到灰度变换曲线;

根据所述灰度变换曲线,对x光图像进行拉伸。

进一步地,所述“对所述拉普拉斯金字塔中第k层的拉普拉斯图中的强边缘点进行过滤,所述k为预设的目标金字塔层数”具体为:

根据所述拉普拉斯金字塔中第k层的拉普拉斯图的大小,将其他层的拉普拉斯图进行缩放,所述k为预设的目标金字塔层数;

根据预设的第一阈值,获取每一层的拉普拉斯图中的强边缘点;

根据所述强边缘点的坐标,将第k层的拉普拉斯图中相应位置的点的值置0。

进一步地,所述“根据所述拉普拉斯金字塔中第k层的拉普拉斯图的大小,将其他层的拉普拉斯图进行缩放”之后,进一步包括:

根据预设的边界宽度,对所述高斯金字塔中第k层的高斯图以及所述拉普拉斯金字塔中每一层的拉普拉斯图进行裁边。

进一步地,所述“根据预设的第一阈值,获取每一层的拉普拉斯图中的强边缘点”之前,进一步包括:

分别根据各层的拉普拉斯图中点的最大值,对所述各层的拉普拉斯图中各个点的值进行归一化处理。

进一步地,所述“在第k层的拉普拉斯图中获取roi区域的点,并根据所获取的点的坐标,获取所述高斯金字塔中第k层的高斯图中相应位置的点的灰度值”具体为:

获取第k层的拉普拉斯图中满足预设条件的点,所述预设条件为点的值大于预设的第二阈值且小于预设的第三阈值;

根据所获取的点的坐标,获取所述高斯金字塔中第k层的高斯图中相应位置的点的灰度值。

进一步地,所述“获取第k层的拉普拉斯图中满足预设条件的点”之前,进一步包括:

根据第k层的拉普拉斯图中点的最大值,对第k层的拉普拉斯图中各个点的值进行归一化处理。

进一步地,所述“根据所述灰度值,得到累积分布函数”具体为:

根据所述灰度值,统计生成灰度直方图;

归一化所述灰度直方图,得到概率密度函数;

根据所述概率密度函数,得到累积分布函数。

实施例一

请参照图2,本发明的实施例一为:一种x光图像的拉伸方法,包括如下步骤:

s1:根据高斯-拉普拉斯金字塔分解方法,将x光图像分解为预设层数的高斯金字塔和拉普拉斯金字塔,即分解为n层高斯金字塔gaupyr(n)和n层拉普拉斯金字塔lappyr(n),其中,n=1,…,n。n可根据图像的尺寸来决定,例如,对于2880*2880大小的图像,一般n=8。

一般认为,尺度较大的边缘(粗边缘,例如束光器边缘和皮肤-空气区边缘)是非roi区域的边缘;较强的边缘(一阶或二阶差分较大值的边缘)也是非roi区域的边缘,或者是roi区域中不需要增强的边缘。

而高斯-拉普拉斯金字塔分解正是对图像不同尺度和强度的边缘(纹理)的分解。拉普拉斯金字塔可以视为提取的不同尺度纹理的集合。每一层拉普拉斯图(也称细节图)都代表了原图像中不同尺度(频率)的纹理。金字塔层数越高,拉普拉斯图尺寸越小,代表了提取的更大尺度的边缘(粗边缘),而较小尺度的边缘(细边缘)被低层的拉普拉斯金字塔所提取。

根据不同曝光部位纹理的尺度特征,预先指定需要哪一层的拉普拉斯图。例如,膝关节roi区域纹理尺度较大,就应该选择更高层的拉普拉斯图。指关节roi区域纹理尺度较小,就应该选择更低层的拉普拉斯图。在实际仿真中,可以根据图像的尺寸和病人体型来自由调整。

s2:对所述拉普拉斯金字塔中第k层的拉普拉斯图中的强边缘点进行过滤,所述k为预设的目标金字塔层数。

本步骤具体包括如下步骤:

s201:根据所述拉普拉斯金字塔中第k层的拉普拉斯图的大小,将其他层的拉普拉斯图进行缩放,所述k为预设的目标金字塔层数。其中,k的值可根据检查的部位来设置。

假设想要的roi纹理在第k层的拉普拉斯图中,为了方便后续计算,将所有层的拉普拉斯图缩放为第k层的拉普拉斯图的大小,这样,每一层的拉普拉斯图中的各个点就可以根据坐标简单直接地进行映射。

s202:根据预设的边界宽度,对所述高斯金字塔中第k层的高斯图以及所述拉普拉斯金字塔中每一层的拉普拉斯图进行裁边。

由于roi区域一般都在图像的中间位置,为了去除图像边缘对处理效果的影响,也为了提高计算效率,把高斯金字塔中第k层的高斯图gaupyr(k)和拉普拉斯金字塔中每一层的拉普拉斯图lappyr(n)裁边,只保留中央区域做后续处理,其中,n=1,...,n。因为经过缩放,所有拉普拉斯图的尺寸都一样,所以裁去相同大小的边界即可。例如,对于2880*2880的图像,可以将图像四周256像素宽度的边界裁掉。

s203:分别根据各层的拉普拉斯图中点的最大值,对所述各层的拉普拉斯图中各个点的值进行归一化处理。

在拉普拉斯图中,某一点(x,y)的值代表了原图中相应位置某一尺度范围的边缘的强度。一般认为,很强的边缘和很弱的边缘都不是想要增强的边缘。所以,需要增强的边缘是处于二者中间的那部分纹理。显然,通过阈值处理可以提取这部分纹理。为了方便阈值处理,需要将每一层的拉普拉斯图按照当前层的最大值做归一化;具体可表示为下述的第一公式;

第一公式:

其中,n=1,...,n;lappyr(n;x,y)为第n层的拉普拉斯图中某一点(x,y)的值;max(lappyr(n))为第n层的拉普拉斯图中点的最大值。

s204:根据预设的第一阈值,获取每一层的拉普拉斯图中的强边缘点;

s205:根据所述强边缘点的坐标,将第k层的拉普拉斯图中相应位置的点的值置0。

在x光图像中,roi区域的纹理尺度、强度和非roi区域的一般不同。由于尺度较大或较强的边缘也是非roi区域的边缘,或者是roi区域中不需要增强的边缘,因此,需去除强边缘点。

本实施例中,强边缘点的定义为值大于预设的第一阈值的点,因此,获取每一层拉普拉斯图中值大于预设的第一阈值的点;进一步地,由这些点的坐标可生成一副与第k层的拉普拉斯图lappyr(k)大小相同的二值图像highmask,具体可表示为下述的第二公式;

第二公式:

其中,highthresh为预设的第一阈值,其优选的范围为0.4-0.5。

然后在第k层的拉普拉斯图lappyr(k)中,二值图像highmask等于1的位置都要置0,也即下述的第三公式;

第三公式:

也就是说,步骤s2中,第k层的拉普拉斯图中过滤的强边缘点包括自身的强边缘点以及其它层的拉普拉斯图中的强边缘点。

s3:在第k层的拉普拉斯图中获取roi区域的点,并根据所获取的点的坐标,获取所述高斯金字塔中第k层的高斯图中相应位置的点的灰度值。

本步骤具体包括如下步骤:

s301:根据第k层的拉普拉斯图中点的最大值,对第k层的拉普拉斯图中各个点的值进行归一化处理。同理,为了方便阈值处理,对第k层的拉普拉斯图根据最大值进行归一化处理,具体可表示为下述的第四公式;

第四公式:

s302:获取第k层的拉普拉斯图lappyr(k)中满足预设条件的点,所述预设条件为点的值大于预设的第二阈值且小于预设的第三阈值;即经过步骤s2去除强边缘点后,满足该条件的点即为roi区域的点。优选地,所述第二阈值为0.05,所述第三阈值为0.10。

s303:根据所获取的点的坐标,获取所述高斯金字塔中第k层的高斯图中相应位置的点的灰度值。

s4:根据所述灰度值,统计生成灰度直方图;即将第k层的拉普拉斯图lappyr(k)中符合阈值要求的点的坐标提取出来,根据这些坐标在第k层的高斯图gaupyr(k)中的灰度值,生成灰度直方图histroi,具体可表示为下述的第五公式;

第五公式:

其中,lowth和upth分别表示roi纹理强度的低阈值和高阈值,即预设的第二阈值和第三阈值;i表示灰度值(对于8位无符号整型的图像来说,i=0,1,2,…,255)。

第五公式的含义为,如果目标拉普拉斯图lappyr(k)中某一个点(x,y)处的值lappyr(k;x,y)满足设定的阈值要求,那么,获取第k层高斯图的相应位置gaupyr(k;x,y)的灰度值i。遍历所有坐标位置(x,y),将获取到的符合阈值条件的点在高斯图gaupyr(k)中的灰度值统计为一个灰度直方图。直方图范围就是i的范围。简而言之,就是使用拉普拉斯图做坐标筛选,之后使用高斯图将筛选出的坐标的灰度统计出灰度直方图。

s5:归一化所述灰度直方图,得到概率密度函数。

s6:根据所述概率密度函数,得到累积分布函数。

灰度直方图是将数字图像中的所有像素,按照灰度值的大小,统计其出现的次数或频率;概率密度函数可以看作一条曲线,横坐标为灰度值,纵坐标为该灰度值出现的频率;累积分布函数为一条单调递增的曲线,横坐标为灰度值,纵坐标为小于等于该灰度值的所有灰度值出现的频率。

由灰度直方图归一化得到概率密度函数pdfroi,使pdfroi的和为1,对pdfroi做累加运算,可以得到累计概率密度分布函数,即累积分布函数cdfroi。

s7:根据所述累积分布函数中预设位置的点的灰度值以及预设的目标灰度值,拟合得到灰度变换曲线。即获取累积分布函数中预设频率的点的灰度值,将该灰度值作为输入灰度,对应的目标灰度值作为输出灰度,拟合得到灰度变换曲线。

例如,可先获取累积分布函数cdfroi上分别频率等于t0th、tath和t1th处的灰度值t0、ta和t1。优选地,t0th=0.05,tath=0.5,t1th=0.95。结合这些灰度想要映射到预设的目标灰度值y0、ya和y1,使用曲线拟合方法拟合出一条单调递增的灰度变换曲线t。t的形状和图像本身相关。当然也可以调节上述这些参数得到满意的图像。算法中所有参数都有很清晰的物理意义,调校起来也很方便。目标灰度值y0、ya和y1的选取要结合实际来调整。一般ya选在中间灰度范围。例如,对于8位无符号整型的图像来说,其最大灰度maxgray=255,ya可以选在255/2=128附近,y0和y1可以分别选在0.05×255=13和0.95×255=242处。

当然,本步骤中,获取的点位置可不限于上述位置,个数也不限于3个。例如,在累积分布函数上获取了五个关键点的灰度值,然后预设与这五个关键点一一对应的目标灰度值,拟合后得到如图3所示的灰度变换曲线。

s8:根据所述灰度变换曲线,对x光图像进行拉伸;即将x光图像中各个点的灰度值作为输入灰度,根据灰度变换曲线转换为对应的输出灰度,即可直接把原图像转换为新的拉伸后的图像。该步骤中,是根据灰度变换曲线,对整幅图像进行灰度变换,如果只针对roi区域做灰度变换,会由于灰度不连续而出现伪像。

图4a和图5a为拉伸前的图像,图4b和图5b为拉伸后的图像,可以看出,本实施例的方法可以压制图像束光区和空气区的灰度范围,拉伸roi区域的灰度范围,即使图像中有大片的束光区和空气区,本实施例所述的方法也不会过度拉伸这些非roi区域。

实施例二

本实施例是对应上述实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤:

根据高斯-拉普拉斯金字塔分解方法,将x光图像分解为预设层数的高斯金字塔和拉普拉斯金字塔;

对所述拉普拉斯金字塔中第k层的拉普拉斯图中的强边缘点进行过滤,所述k为预设的目标金字塔层数;

在第k层的拉普拉斯图中获取roi区域的点,并根据所获取的点的坐标,获取所述高斯金字塔中第k层的高斯图中相应位置的点的灰度值;

根据所述灰度值,得到累积分布函数;

根据所述累积分布函数中预设位置的点的灰度值以及预设的目标灰度值,拟合得到灰度变换曲线;

根据所述灰度变换曲线,对x光图像进行拉伸。

进一步地,所述“对所述拉普拉斯金字塔中第k层的拉普拉斯图中的强边缘点进行过滤,所述k为预设的目标金字塔层数”具体为:

根据所述拉普拉斯金字塔中第k层的拉普拉斯图的大小,将其他层的拉普拉斯图进行缩放,所述k为预设的目标金字塔层数;

根据预设的第一阈值,获取每一层的拉普拉斯图中的强边缘点;

根据所述强边缘点的坐标,将第k层的拉普拉斯图中相应位置的点的值置0。

进一步地,所述“根据所述拉普拉斯金字塔中第k层的拉普拉斯图的大小,将其他层的拉普拉斯图进行缩放”之后,进一步包括:

根据预设的边界宽度,对所述高斯金字塔中第k层的高斯图以及所述拉普拉斯金字塔中每一层的拉普拉斯图进行裁边。

进一步地,所述“根据预设的第一阈值,获取每一层的拉普拉斯图中的强边缘点”之前,进一步包括:

分别根据各层的拉普拉斯图中点的最大值,对所述各层的拉普拉斯图中各个点的值进行归一化处理。

进一步地,所述“在第k层的拉普拉斯图中获取roi区域的点,并根据所获取的点的坐标,获取所述高斯金字塔中第k层的高斯图中相应位置的点的灰度值”具体为:

获取第k层的拉普拉斯图中满足预设条件的点,所述预设条件为点的值大于预设的第二阈值且小于预设的第三阈值;

根据所获取的点的坐标,获取所述高斯金字塔中第k层的高斯图中相应位置的点的灰度值。

进一步地,所述“获取第k层的拉普拉斯图中满足预设条件的点”之前,进一步包括:

根据第k层的拉普拉斯图中点的最大值,对第k层的拉普拉斯图中各个点的值进行归一化处理。

进一步地,所述“根据所述灰度值,得到累积分布函数”具体为:

根据所述灰度值,统计生成灰度直方图;

归一化所述灰度直方图,得到概率密度函数;

根据所述概率密度函数,得到累积分布函数。

综上所述,本发明提供的一种x光图像的拉伸方法及计算机可读存储介质,由于高斯-拉普拉斯金字塔分解是对图像不同尺度和强度的边缘的分解,因此,通过对图像进行高斯-拉普拉斯金字塔分解,得到不同尺度和不同边缘强度的图;根据不同曝光部位纹理的尺度特征,预先指定需要金字塔中哪一层的图,然后对该层的拉普拉斯图过滤强边缘点后获取roi区域的点,在该层的高斯图获取这些点的灰度值,对这些灰度值进行分析处理,得到累积分布函数,然后根据累积分布函数上的几个点的灰度值和预设的灰度值拟合得到灰度变换曲线,最终根据灰度变换曲线,对原图像进行拉伸。本发明通过自适应的分析原始图像的有效灰度信息,得到稳定的曲线拉伸效果,当拍摄剂量设置不恰当时,能自动识别出有效的组织区域,并且生成稳定、适合的灰度变换曲线,增强roi区域并压制非roi区域。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1