一种从胸部CT图像中提取肺叶的方法及装置与流程

文档序号:11178349阅读:1838来源:国知局
一种从胸部CT图像中提取肺叶的方法及装置与流程

本发明属于计算机技术领域,涉及一种从胸部ct图像中提取肺叶的方法及装置。



背景技术:

ct(computedtomography)是利用精确准直的x线束与灵敏度极高的探测器一同围绕人体的某一部位做一个接一个的断面扫描,以不同的灰度表示器官和组织对x线的吸收程度,例如,在胸部ct图像上,低密度的区域表示气管、肺实质,高密度的区域表示血管、胸腔、骨骼等,具有扫描时间快,图像清晰等特点,可用于多种疾病的检查,为医生观察诊断疾病提供了方便可靠的依据。

由于ct设备可获得清晰的胸部ct图像,因此借助于ct图像成了诊断慢阻肺病情的一个主要手段,然而目前的医学水平只能做到对单个肺的定量诊断,对于单个肺叶病情的定量评估无法做到。慢阻肺的治疗通常需要肺叶减容手术,然而手术前却无法进行肺叶减容的定量评估,这势必会影响慢阻肺的治疗效果。如果能够精确的分割出左右肺以及左右肺的各个部分,即肺叶,准确的完成对每个肺叶的病情程度的定量评估,必将对慢阻肺的诊断和治疗有重大意义。



技术实现要素:

(一)要解决的技术问题

为了解决现有技术的上述问题,本发明提供一种从胸部ct图像中提取肺叶的方法,该方法能够准确的从胸部ct图像中提取出肺叶,准确的完成对每个肺叶的病情程度的定量评估,对肺部疾病的诊断和治疗更加准确和有效。

本发明还提供一种从胸部ct图像中提取肺叶的装置,该装置能够准确的从胸部ct图像中提取出肺叶,准确的完成对每个肺叶的病情程度的定量评估,对肺部疾病的诊断和治疗更加准确和有效。

(二)技术方案

为了达到上述目的,本发明采用的主要技术方案包括:

一种从胸部ct图像中提取肺叶的方法,包括以下步骤:

s1、接收输入的n层胸部ct图像,获取中间图像层,选取肺部区域的指定像素点为种子点,根据设定分割阈值以及初始种子点进行3d区域增长,获得不带肺血管的肺实质区域,其中,n为自然数;

s2、在步骤s1所得的肺实质区域通过腐蚀近似粘连边界的左右肺粘连剔除方法,剔除粘连得到两个独立的肺实质;

s3、利用先膨胀后腐蚀的操作把血管填充到步骤s2所得的肺实质中,通过最大类间方差法自动获得最优分割阈值t0;

s4、以步骤s3所得的最优分割阈值t0作为分割血管的阈值,计算大于阈值的点作为血管种子点,进行3d区域增长,获得肺血管;

s5、从血管根部断开不同肺叶的血管,使每一个肺叶中的血管成为一个独立的连通域;

s6、根据步骤s5所得的肺血管,采用消去法来提取肺血管中心路径;

s7、训练二分类支持向量机模型,得到二分类支持向量机分类器,通过该分类器找到不同肺叶血管之间的分界面,以此分界面作为肺叶的分界面并计算获得肺实质像素点的分类判别函数对肺实质上的每一个像素点进行判别,获得肺叶组织。

优选的,所述步骤s1包括以下步骤:

s11、接收输入的n(n为自然数)层胸部ct图像,获取中间图像层,在中间图像层上选取肺部区域的指定像素点作为初始种子点;

s12、根据肺实质的特点设置分割阈值;

s13、搜索被标记的初始种子点的26邻域,选取其中的一个像素点;

s14、判断所选取的像素点是否已经被标记过,若是则返回步骤s13,否则执行步骤s15;

s15、判断所选取的像素点的灰度值是否小于分割阈值,若是,则把该像素点作标记并加入标记队列,否则停止标记该像素点,执行步骤s16;

s16、判断种子点的26邻域像素点是否全部搜索并判断完毕,若是则执行步骤s17,否则返回步骤s13;

s17、判断标记队列是否为空,如不为空,则从该队列中取出一个标记点作为初始被标记种子点,返回步骤s13,否则已经被标记的像素点集合就是分割出的不带肺血管的肺实质区域。

优选的,所述步骤s2包括以下步骤:

s21、对获得的肺实质区域判断其是否为两个大小近似相等的连通域,若是则结束,否则执行步骤s22;

s22、统计中间图像层的连通域个数,剔除像素点数较小的连通域区域,保留像素点数较大的连通域区域,并判断连通域的个数及每个连通域的大小,如果有两个连通域并且大小近似相等则结束,否则执行步骤s23;

s23、逐层统计连通域个数,如果只有一个连通域,则肺实质一定在该层粘连,执行步骤s24,否则记录每一个连通域像素点的个数,找到像素点数最大的两个连通域,如果面积最大的两个连通区域像素点数个数相当,则该层ct图像左右肺实质不粘连,执行步骤s26,否则粘连且较大的连通域为肺实质,执行步骤s24;

s24、用线段近似代替粘连区域,转化为确定直线的位置,下边界在y方向的最高点即为近似直线的下端点,上边界的所有点中离下端点最近的点则为近似直线的上端点,寻找到这两点后确定直线,执行步骤s25;

s25、腐蚀掉每层肺实质区域粘连图像上的近似直线边界,以及直线边界周围的26邻域点的标记值,得到两个不粘连的左右肺区域,执行步骤s26;

s26、判断所有层是否扫描完毕,若是则结束,否则执行步骤s23。

优选的,所述步骤s3包括以下步骤:

s31、通过选取合适的结构元素在所有胸部ct图像层上执行先膨胀后腐蚀的闭运算操作,将肺血管填充进已经分割好的肺实质中;

s32、在ct图像中选取出靠近中间的一层,利用最大类间方差法自动获得最优分割阈值t0。

优选的,所述步骤s4包括以下步骤:

s41、获取步骤s3的带血管的肺实质中像素灰度值大于分割阈值t0的所有像素点,并标记为血管。

s42、在步骤s41所得的血管中选取一个像素点作为初始种子点;

s43、搜索被标记的初始种子点的26邻域,选取其中的一个像素点;

s44、判断所选取的像素点是否已经被标记过,若是则返回步骤s43,否则执行步骤s45;

s45、判断所选取的像素点的灰度值是否大于分割阈值,若是,则把该像素点作标记并加入标记队列,否则停止标记该像素点,执行步骤s46;

s46、判断种子点的26邻域像素点是否全部搜索并判断完毕,若是则执行步骤s47,否则返回步骤s43;

s47、判断标记队列是否为空,如不为空,则从该队列中取出一个标记点作为初始被标记种子点,返回步骤s43,否则已经被标记的像素点集合就是分割出的肺血管。

优选的,所述步骤s5包括以下步骤:

s51、寻找肺部边缘并靠近气管的肺血管像素,若找到则执行步骤s52,否则继续扫描肺部组织;

s52、采用腐蚀肺实质的边缘的血管来断开肺血管,并统计血管形成的连通域的个数,若连通域的个数为五个,则执行步骤s53,否则执行步骤s51;

s53、对每个连通域标记不同的颜色,全标记完结束。

优选的,所述步骤s6包括以下步骤:

s61、扫描肺血管像素点,判断其是否为边界点,若该像素点6邻域或26邻域存在背景区像素则为边界点,执行步骤s62,否则标记已经扫描过,跳过继续执行步骤s61;

s62、判断边界点的欧拉特性,若欧拉特性不变则执行步骤s63,否则跳过继续执行步骤s61;

s63、判断边界点是否为简单点,若该点对原三维空间拓扑结构无影响则为简单点,同时将该点删除,执行步骤s64;否则执行步骤s61;

s64、判断血管像素是否还有其他简单点,若无,中心路径提取结束,否则执行步骤s61。

优选的,所述步骤s7包括以下步骤:

s71、根据肺叶间的分界面最接近径向基函数的轨迹,选择径向基核函数作为向高维空间映射的函数,确定了核函数后,执行步骤s72;

s72、对于左肺,假设左肺的像素点为n1,血管像素点个数为n1,把左肺的上叶的所有血管像素点标记为正,同时把下叶上所有血管像素点标记为负,得到一个判别函数,执行步骤s73;

s73、用判别函数去判断左肺实质上的每一个像素点的符号,若符号为正,则该点属于上叶,否则该点属于下叶,并统计像素的个数,若为n1则左肺分割完成,执行步骤s74,否则继续执行步骤s73;

s74、对于右肺,假设右肺的像素点为n2,血管像素点个数为n2,为使用二分类支持向量机分类,把右肺的上叶和中叶合为一个整体看做为“上叶”,执行步骤s75;

s75、利用和左肺分割一样的方法得到一个分类判别函数,首先提取出下叶,把步骤s74所看做的“上叶”的所有血管像素点标记为正,同时把下叶上所有血管像素点标记为负,得到一个判别函数,执行步骤s76;

s76、用判别函数去判断右肺实质上的每一个像素点的符号,若符号为正,则该点属于步骤s74所看做的“上叶”,否则该点属于下叶,并统计像素的个数,若为n2则下叶分割完成,执行步骤s77,否则继续执行步骤s76;

s77、分割完成下叶后,然后再用上叶和中叶的血管训练支持向量机模型,得到一个判别面函数,对右肺除去下叶的部分分割,提取出上叶和中叶,执行步骤s78;

s78、对于右肺的上叶和中叶,假设右肺的像素点为n3,血管像素点个数为n3,把右肺的上叶的所有血管像素点标记为正,同时把右肺的中叶上所有血管像素点标记为负,得到一个判别函数,执行步骤s79;

s79、用判别函数去判断右肺实质上的每一个像素点的符号,若符号为正,则该点属于上叶,否则该点属于中叶,并统计像素的个数,若为n3则右肺上叶和中叶分割完成,至此左右肺分割肺叶结束。

一种从胸部ct图像中提取肺叶的装置,包括:

ct图像输入单元,用于接收输入的n层胸部ct图像,其中n为自然数;

不带肺血管的肺实质获取单元,其选取肺部区域的指定像素点为种子点,根据设定分割阈值以及初始种子点进行3d区域增长,获得不带肺血管的肺实质区域;

两个独立肺实质获取单元,其在获得左右肺实质后,判断左右肺实质是否粘连,若粘连,则通过剔除气管和近似直线的粘连边界得到两个独立的肺实质;

肺血管分割阈值获取单元,其利用先膨胀后腐蚀的操作把血管填充到肺实质中,通过最大类间方差法自动获得最优分割阈值t0;

肺血管提取单元,其以所得的最优分割阈值t0作为分割血管的阈值,计算大于阈值的点作为血管种子点,进行3d区域增长,获得肺血管;

肺血管分割为独立连通域单元,其从血管根部断开不同肺叶的血管,使每一个肺叶的血管成为一个独立的连通域;

肺血管中心路径提取单元,其根据所述肺血管分割为独立连通域单元所得的肺血管,采用消去法来提取肺血管中心路径;

肺叶分割单元,其将相邻的肺叶的血管训练支持向量机二分类器模型,左肺有两个肺叶,训练一个,右肺有三个肺叶,训练两次,左右肺共得到三个支持向量机二分类器,通过支持向量机找到不同肺叶血管之间的分界面,分割出肺叶。

(三)有益效果

本发明的有益效果是:

本发明提供了一种从胸部ct图像中提取肺叶的方法及装置,其中,方法包括基于3d区域生长的肺实质提取过程、基于区域特征的左右肺粘连气管剔除过程、肺血管根部剔除过程、基于拓扑细化的肺血管中心路经提取过程和基于支持向量机分类的肺叶分割算法,通过以上处理过程来获得肺叶组织。本发明能够准确的从胸部ct图像中提取出肺叶,准确的完成对每个肺叶的病情程度的定量评估,对肺部疾病的诊断和治疗更加准确和有效。

附图说明

图1是优选实施例的从胸部ct图像中提取肺叶的关键步骤流程图。

图2是优选实施例的从胸部ct图像中提取肺叶的方法流程图。

图3是优选实施例胸部ct图像的灰度直方图。

图4是优选实施例不带血管的肺实质区域结果示意图。

图5是优选实施例带气管的肺实质区域结果示意图。

图6是优选实施例剔除气管的肺实质区域结果示意图。

图7是优选实施例边界黏连的肺实质区域结果示意图。

图8是优选实施例血管填充的肺实质区域结果示意图。

图9是优选实施例肺血管提取结果示意图。

图10是优选实施例肺血管中心路径提取结果示意图。

图11是优选实施例肺血管断开根部提取结果示意图。

图12是优选实施例肺叶提取结果示意图。

具体实施方式

为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。

优选实施例

如图1和图2所示,本实施例提出了一种优选的从胸部ct图像中提取肺叶的方法,该从胸部ct图像中提取肺叶的方法包括以下步骤:

s1、接收输入的n(n为自然数)层胸部ct图像,获取中间图像层,选取肺部区域的指定像素点为种子点,根据设定分割阈值以及初始种子点进行3d区域增长,获得不带肺血管的肺实质区域。

具体的,步骤s1包括以下步骤:

s11、接收输入的n(n为自然数)层胸部ct图像,获取中间图像层,在中间图像层上选取肺部区域的指定像素点作为初始种子点;

s12、根据肺实质的特点设置分割阈值;

s13、搜索被标记的初始种子点的26邻域,选取其中的一个像素点;

s14、判断所选取的像素点是否已经被标记过,若是则返回步骤s13,否则执行步骤s15;

s15、判断所选取的像素点的灰度值是否小于分割阈值,若是,则把该像素点作标记并加入标记队列,否则停止标记该像素点,执行步骤s16;

s16、判断种子点的26邻域像素点是否全部搜索并判断完毕,若是则执行步骤s17,否则返回步骤s13;

s17、判断标记队列是否为空,如不为空,则从该队列中取出一个标记点作为初始被标记种子点,返回步骤s13,否则已经被标记的像素点集合就是分割出的不带肺血管的肺实质区域。

s2、在步骤s1所得的肺实质区域通过腐蚀近似粘连边界的左右肺粘连剔除方法,剔除粘连得到两个独立的肺实质。

有些研究人员用形态学的方法对粘连的肺实质先腐蚀,直到左右肺不粘连,然后分别标记,再膨胀回来原来的大小。这种方法虽然成功的分离了左肺和右肺实质,但却损失了边界的细节,使一些肺的边界偏离原来的位置,增加了分割的误差。还有些计算复杂的方法虽然可以准确的分离左肺和右肺实质,但是却付出了大量的计算时间代价,以至于在应用上很难满足时间的要求。

通过对大量的粘连区域观察发现,左肺和右肺实质的粘连只是存在于某些层ct图像上,大多数层ct图像不存在粘连的情况,即便是粘连,也只是很小的一块区域粘连。因此可以首先找到粘连的具体层ct图像,然后逐层剔除粘连。

寻找粘连层的办法是,逐层统计连通域个数,如果只有一个连通域,则肺实质一定在该层粘连。如果有多个连通域,则记录每一个连通域像素点的个数,找到像素点数最大的两个连通域,像素点数分别用n1和n2来表示,如果

上式中threshold通常设置为10,公式的具体意思是:如果面积最大的两个连通区域像素点数个数相当,则该层ct图像左右肺实质不粘连,因为在同一层的ct图像上左肺实质区域和右肺实质区域的面积是相当的;反之,如果两个最大的两个连通区域像素点个数比例悬殊,则该层ct图像左右肺实质粘连,此时较大的连通域表示的肺实质区域保函了左肺实质区域和右肺实质区域,而较小的连通域表示的组织区域有些为噪声的干扰,有些为细小的支气管,且这些支气管不会使左右肺粘连。

确定具体粘连层ct图像之后,则是要找到具体的粘连边界位置。因为粘连只有很小的区域,而且粘连的边界是一条很短的曲线,因此可以用线段近似代替。这样做的好处是,即可以减少计算量,从而减少算法的运行时间,而且几乎不影响肺实质分割的精度。

具体的,步骤s2包括以下步骤:

s21、对获得的肺实质区域判断其是否为两个大小近似相等的连通域,若是则结束,否则执行步骤s22;

s22、统计中间图像层的连通域个数,剔除像素点数较小的连通域区域,保留像素点数较大的连通域区域,并判断连通域的个数及每个连通域的大小,如果有两个连通域并且大小近似相等则结束,否则执行步骤s23;

s23、逐层统计连通域个数,如果只有一个连通域,则肺实质一定在该层粘连,执行步骤s24,否则记录每一个连通域像素点的个数,找到像素点数最大的两个连通域,如果面积最大的两个连通区域像素点数个数相当,则该层ct图像左右肺实质不粘连,执行步骤s26,否则粘连且较大的连通域为肺实质,执行步骤s24;

s24、用线段近似代替粘连区域,转化为确定直线的位置,下边界在y方向的最高点即为近似直线的下端点,上边界的所有点中离下端点最近的点则为近似直线的上端点,寻找到这两点后确定直线,执行步骤s25;

s25、腐蚀掉每层肺实质区域粘连图像上的近似直线边界,以及直线边界周围的26邻域点的标记值,得到两个不粘连的左右肺区域,执行步骤s26;

s26、判断所有层是否扫描完毕,若是则结束,否则执行步骤s23。

s3、利用先膨胀后腐蚀的操作把血管填充到步骤s2所得的肺实质中,通过最大类间方差法自动获得最优分割阈值t0。

在图像上进行形态学的先膨胀后腐蚀运算称为闭运算,目的是填充比结构元素小的孔洞以及平滑图像的边缘。

膨胀是在二值图像中“加长”或“变粗”的操作。这种特殊的方式和变粗的程度由一个称为结构元素的集合控制,结构元素用0和1的矩阵表示。对于腐蚀,其像在膨胀中一样,收缩方式和程度由一个结构元素控制。

最大类间方差法是利用阈值将原图像分成前景和背景两部分。记t为前景与背景的分割阈值,前景点数占图像比例为w0,平均灰度为u0;背景点数占图像比例为w1,平均灰度为u1,则图像的总平均灰度为:

u=w0u0+w1u1(1.1)

前景和背景图象的方差:

σ2=w0(u0-u)2+w1(u1-u)2(1.2)

把公式(1.1)带入公式(1.2)得到类间方差的计算公式如下:

σ2=w0w1(u0-u1)2(1.3)

利用公式(1.3)求出另σ2最大的阈值tmax,作为分割图像前景和背景的阈值。

具体的,步骤s3包括以下步骤:

s31、通过选取合适的结构元素在所有胸部ct图像层上执行先膨胀后腐蚀的闭运算操作,将肺血管填充进已经分割好的肺实质中;

s32、在ct图像中选取出靠近中间的一层,利用最大类间方差法自动获得最优分割阈值t0。

s4、以步骤s3所得的最优分割阈值t0作为分割血管的阈值,计算大于阈值的点作为血管种子点,进行3d区域增长,获得肺血管。其中,肺血管提取效果如图9所示。

具体的,步骤s4包括以下步骤:

s41、获取步骤s3的带血管的肺实质中像素灰度值大于分割阈值t0的所有像素点,并标记为血管。

s42、在步骤s41所得的血管中选取一个像素点作为初始种子点;

s43、搜索被标记的初始种子点的26邻域,选取其中的一个像素点;

s44、判断所选取的像素点是否已经被标记过,若是则返回步骤s43,否则执行步骤s45;

s45、判断所选取的像素点的灰度值是否大于分割阈值,若是,则把该像素点作标记并加入标记队列,否则停止标记该像素点,执行步骤s46;

s46、判断种子点的26邻域像素点是否全部搜索并判断完毕,若是则执行步骤s47,否则返回步骤s43;

s47、判断标记队列是否为空,如不为空,则从该队列中取出一个标记点作为初始被标记种子点,返回步骤s43,否则已经被标记的像素点集合就是分割出的肺血管。

s5、从血管根部断开不同肺叶的血管,使每一个肺叶中的血管成为一个独立的连通域。

具体的,步骤s5包括以下步骤:

s51、寻找肺部边缘并靠近气管的肺血管像素,若找到则执行步骤s52,否则继续扫描肺部组织;

s52、采用腐蚀肺实质的边缘的血管来断开肺血管,并统计血管形成的连通域的个数,若连通域的个数为五个,则执行步骤s53,否则执行步骤s51;

s53、对每个连通域标记不同的颜色,全标记完结束。

s6、根据步骤s5所得的肺血管,采用消去法来提取肺血管中心路径。

具体的,步骤s6包括以下步骤:

s61、扫描肺血管像素点,判断其是否为边界点,若该像素点6邻域或26邻域存在背景区像素则为边界点,执行步骤s62,否则标记已经扫描过,跳过继续执行步骤s61;

s62、判断边界点的欧拉特性,若欧拉特性不变则执行步骤s63,否则跳过继续执行步骤s61;

s63、判断边界点是否为简单点,若该点对原三维空间拓扑结构无影响则为简单点,同时将该点删除,执行步骤s64;否则执行步骤s61;

s64、判断血管像素是否还有其他简单点,若无,中心路径提取结束,否则执行步骤s61。

s7、训练二分类支持向量机模型,得到二分类支持向量机分类器,通过该分类器找到不同肺叶血管之间的分界面,以此分界面作为肺叶的分界面并计算获得肺实质像素点的分类判别函数对肺实质上的每一个像素点进行判别,获得肺叶组织。其中,肺叶提取结果如图12所示。

支持向量机(svm,supportvectormachines)是由vapnik等人首先提出的,是从线性可分的最优分类面逐渐发展而来。

在三维空间中,两个相邻肺叶的肺血管之间并不存在一个平面,使一个肺叶上的肺血管的每一个像素都在平面的一侧,而使另一个肺叶上的肺血管的每一个像素点都在平面的另一侧,因此这是一个线性不可分问题。

对于用svm分类解决线性不可分问题,首先要选择一个恰当的核函数,使这些三维空间中的数据映射到一个更高维的特征空间中,从而使得这些样本数据变得线性可分。通过对大量的肺组织ct数据观测发现,肺叶间的分界面最接近径向基函数的轨迹,因此选择径向基核函数作为向高维空间映射的函数。

径向基核函数的形式为:

此时的支持向量机构造出的判别函数为:

其中,s为支持向量的个数,支持向量可以确定径向基函数的中心位置。径向基核函数对应的特征空间的维数是无穷大,有限的数据样本在该特征空间一定是线性可分的,因此径向基核函数的使用最为普遍。

支持向量机算法最后归结为求二次规划(qp)的问题,可以改写为如下的矩阵形式。给定样本(xi,yi),i=1,2,3...n,核函数k(xi,xj)和调节参数c,求极小值。

约束条件为:

αty=0,0≤α≤c(1.7)

核函数矩阵h的定义为:

h=[hij]=yiyjk(xi,xj)(i,j=1,2,3...n)(1.8)

其中,α=(α1,α2,...αn)t,α=(y1,y2,...yn)t

如果训练数据的规模很大,因为矩阵h的规模为训练数据的平方,矩阵h有可能大到无法用计算机正常处理。

针对以上问题,人们已经提出以下针对大规模数据样本训练的方法。

1.chunking算法

vapnik等人首先提出了一种解决svm训练存储空间问题的方法,称为chunking算法。在公式(1.6)中,如果去掉与零拉格朗日乘子对应的行与列,则其值不变。因此可将求解支持向量机的qp问题分解成一系列较小的qp问题。求解这些较小的qp问题的最终目标是确定所有的非零拉格朗日乘子,并去除所有的零拉格朗日乘子。

2.分解算法

osuan等人首先提出了分解算法,分解算法是把求解支持向量机的qp问题分解成一系列较小的qp问题,但是其工作集大小保持不变,对内存的需求从与s成平方关系变为线性关系。可以处理数据样本点多达11万个,支持向量超过10万个的问题。

3.smo算法

串行最小优化算法(sequentialminimaloptimization,smo)是由platt首先提出,smo算法也属于一种分解算法,其工作空间只包含两个数据样本,在每一步迭代中只对两个拉格朗日乘子进行优化。尽管在smo中qp问题增多了,但总的计算速度却大大提高了,而且这种算法完全不需要处理大矩阵,因而对存储空间没有额外的要求,很大的svm训练问题也能在个人计算机上运行。由于以上的优点,smo算法成为了在实际应用中最广泛的一种方法。

在本实施例中,对于左肺,假设左肺的血管像素点个数为n,因为只有两个肺叶,因此把上叶的所有血管像素点标记为(xi,yi),i≤n,xi∈r3,yi=+1,同时把下叶上所有血管像素点标记为(xi,yi),i≤n,xi∈r3,yi=-1。得到一个判别函数f1(x)。用判别函数f1(x)去判断左肺组织上的每以个像素点的符号,若符号为正,则该点属于上叶,否则该点属于下叶。这样左肺上叶和下叶就可以被分割出来。

而对于右肺,因为有三个肺叶,分别为上叶、中叶以及下叶。为了能够使用二分类支持向量机分类,首先把右肺的上叶和中叶合为一个整体,这样就可以使用和左肺分割一样的方法得到一个分类判别函数f2(x),首先提取出下叶,然后再用上叶和中叶的血管训练支持向量机模型,得到一个判别面函数f3(x),对右肺除去下叶的部分再次分类,提取出上叶和中叶。

具体的,步骤s7包括以下步骤:

s71、根据肺叶间的分界面最接近径向基函数的轨迹,选择径向基核函数作为向高维空间映射的函数,确定了核函数后,执行步骤s72;

s72、对于左肺,假设左肺的像素点为n1,血管像素点个数为n1,把左肺的上叶的所有血管像素点标记为正,同时把下叶上所有血管像素点标记为负,得到一个判别函数,执行步骤s73;

s73、用判别函数去判断左肺实质上的每一个像素点的符号,若符号为正,则该点属于上叶,否则该点属于下叶,并统计像素的个数,若为n1则左肺分割完成,执行步骤s74,否则继续执行步骤s73;

s74、对于右肺,假设右肺的像素点为n2,血管像素点个数为n2,为使用二分类支持向量机分类,把右肺的上叶和中叶合为一个整体看做为“上叶”,执行步骤s75;

s75、利用和左肺分割一样的方法得到一个分类判别函数,首先提取出下叶,把步骤s74所看做的“上叶”的所有血管像素点标记为正,同时把下叶上所有血管像素点标记为负,得到一个判别函数,执行步骤s76;

s76、用判别函数去判断右肺实质上的每一个像素点的符号,若符号为正,则该点属于步骤s74所看做的“上叶”,否则该点属于下叶,并统计像素的个数,若为n2则下叶分割完成;执行步骤s77;

s77、分割完成下叶后,然后再用上叶和中叶的血管训练支持向量机模型,得到一个判别面函数,对右肺除去下叶的部分分割,提取出上叶和中叶,执行步骤s78;

s78、对于右肺的上叶和中叶,假设右肺的像素点为n3,血管像素点个数为n3,把右肺的上叶的所有血管像素点标记为正,同时把右肺的中叶上所有血管像素点标记为负,得到一个判别函数,执行步骤s79;

s79、用判别函数去判断右肺实质上的每一个像素点的符号,若符号为正,则该点属于上叶,否则该点属于中叶,并统计像素的个数,若为n3则右肺上叶和中叶分割完成,至此左右肺分割肺叶结束。

同时,本实施例还提供了一种优选的从胸部ct图像中提取肺叶的装置,包括ct图像输入单元、不带肺血管的肺实质获取单元、两个独立肺实质获取单元、肺血管分割阈值获取单元、肺血管提取单元、肺血管分割为独立连通域单元、肺血管中心路径提取单元和肺叶分割单元。

其中,ct图像输入单元,用于接收输入的n层胸部ct图像,其中n为自然数。

不带肺血管的肺实质获取单元,其选取肺部区域的指定像素点为种子点,根据设定分割阈值以及初始种子点进行3d区域增长,获得不带肺血管的肺实质区域。

具体的,不带肺血管的肺实质获取单元包括以下各单元:

初始种子点选取单元,其在中间层图像上选取肺部区域的指定像素点作为初始种子点。分割阈值获取子单元,其根据肺实质的特点设置分割阈值。像素点选取子单元,其搜索被标记的初始种子点的26邻域,选取其中的一个像素点。像素点标记判断子单元,其判断所选取的像素点是否已经被标记过,若是,通知像素点选取子单元,否则通知像素值判断子单元。像素值判断子单元,其判断所选取的像素点的灰度值是否小于分割阈值,若是,则把该像素点作标记并加入标记队列,否则停止标记该像素点,通知种子点26邻域像素点搜索子单元。种子点26邻域搜索子单元,其判断种子点的26邻域像素点是否全部搜索并判断完毕,若是,则通知标记队列判断子单元,否则通知所述像素点选取子单元。标记队列判断子单元,其判断标记队列是否为空,如不为空,则从该队列中取出一个标记点作为初始被标记种子点,通知像素点选取子单元,否则已经被标记的像素点集合就是分割出的不带肺血管的肺实质。

两个独立肺实质获取单元,其在获得左右肺实质后,判断左右肺实质是否粘连,若粘连,则通过剔除气管和近似直线的粘连边界得到两个独立的肺实质。

具体的,两个独立肺实质获取单元包括以下各单元:

肺实质连通域个数判断子单元,其对获得的肺实质判断其是否为两个大小近似相等的连通域,若是则结束,否则通知剔除气管子单元。剔除气管子单元,其统计中间图像层的连通域个数,剔除像素点数较小的连通域区域,保留像素点数较大的连通域区域,并判断连通域的个数及每个连通域的大小,如果有两个连通域并且大小近似相等则结束,否则通知层连通域个数判断子单元。层连通域个数判断子单元,其逐层统计连通域个数,如果只有一个连通域,则肺实质一定在该层粘连,通知直线确定子单元,否则记录每一个连通域像素点的个数,找到像素点数最大的两个连通域,如果面积最大的两个连通区域像素点数个数相当,则该层ct图像左右肺实质不粘连,通知像素层扫描判断子单元,否则粘连且较大的连通域为肺实质,通知直线确定子单元。直线确定子单元,其用线段近似代替粘连区域,转化为确定直线的位置,下边界在y方向的最高点即为近似直线的下端点,上边界的所有点中离下端点最近的点则为近似直线的上端点,寻找到这两点后确定直线,通知腐蚀近似直线边界子单元。腐蚀近似直线边界子单元,其腐蚀掉每层肺实质区域粘连图像上的近似直线边界,以及直线边界周围的26邻域点的标记值,得到两个不粘连的左右肺区域,通知像素层扫描判断子单元。像素层扫描判断子单元,其判断所有层是否扫描完毕,若是则结束,否则通知层连通域个数判断子单元。

肺血管分割阈值获取单元,其利用先膨胀后腐蚀的操作把血管填充到肺实质中,通过最大类间方差法自动获得最优分割阈值t0。

具体的,肺血管分割阈值获取单元包括以下各单元:

闭运算操作单元,其通过选取合适的结构元素在所有胸部ct图像层上执行先膨胀后腐蚀的闭运算操作,将肺血管填充进已经分割好的肺实质中。最优分割阈值获取单元,其在ct图像中选取出靠近中间的一层,利用最大类间方差法自动获得最优分割阈值t0。

肺血管提取单元,其以所得的最优分割阈值t0作为分割血管的阈值,计算大于阈值的点作为血管种子点,进行3d区域增长,获得肺血管。

具体的,肺血管提取单元包括以下各单元:

中间层肺血管提取子单元,其获取中间层中带血管的肺实质中像素灰度值大于分割阈值t0的所有像素点,并标记为血管。初始种子点获取子单元,其在所述中间层肺血管提取子单元所得的血管中选取一个像素点作为初始种子点。像素点获取子单元,其搜索被标记的初始种子点的26邻域,选取其中的一个像素点。像素点标记判断子单元,其判断所选取的像素点是否已经被标记过,若是通知像素点获取子单元,否则通知像素点判断子单元。像素值判断子单元,其判断所选取的像素点的灰度值是否大于分割阈值,若是,则把该像素点作标记并加入标记队列,通知种子点26邻域搜索子单元,否则停止标记该像素点。种子点26邻域搜索子单元,其判断种子点的26邻域像素点是否全部搜索并判断完毕,若是则通知标记队列判断子单元,否则通知像素点获取子单元。标记队列判断子单元,其判断标记队列是否为空,如不为空,则从该队列中取出一个标记点作为初始被标记种子点,通知像素点获取子单元,否则已经被标记的像素点集合就是分割出的肺血管。

肺血管分割为独立连通域单元,其从血管根部断开不同肺叶的血管,使每一个肺叶的血管成为一个独立的连通域。

具体的,肺血管分割为独立连通域单元包括以下各单元:

初始扫描肺实质单元,其寻找肺部边缘并靠近气管的肺血管像素,若找到,则通知断开肺血管根部子单元,否则通知初始扫描肺实质单元。断开肺血管根部子单元,其采用腐蚀肺实质的边缘的血管来断开肺血管,并统计血管形成的连通域的个数,若连通域的个数为五个,则通知肺血管标记子单元,否则通知初始扫描肺实质单元。肺血管标记子单元,其对每个连通域的血管标记不同的颜色,全标记完结束。

肺血管中心路径提取单元,其根据所述肺血管分割为独立连通域单元所得的肺血管,采用消去法来提取肺血管中心路径。

具体的,肺血管中心路径提取单元包括以下各单元:

判断边界点子单元,其扫描肺血管像素点,判断其是否为边界点,若该像素点6邻域或26邻域存在背景区像素则为边界点,通知第一判断子单元,否则标记已经扫描,跳过继续通知判断边界点子单元。第一判断子单元,其判断边界点的欧拉特性,若欧拉特性不变则通知第二判断子单元,否则跳过继续通知判断边界点子单元。第二判断子单元,其判断边界点是否为简单点,若该点对原三维空间拓扑结构无影响则为简单点,同时将该点删除,通知第三判断子单元,否则通知判断边界点子单元。第三判断子单元,其判断血管像素是否还有其他简单点,若无,中心路径提取结束,否则通知判断边界点子单元。

肺叶分割单元,其将相邻的肺叶的血管训练支持向量机二分类器模型,左肺有两个肺叶,训练一个,右肺有三个肺叶,训练两次,左右肺共得到三个支持向量机二分类器,通过支持向量机找到不同肺叶血管之间的分界面,分割出肺叶。

具体的,肺叶分割单元包括以下各单元:

支持向量机核函数选择单元,其根据肺叶间的分界面最接近径向基函数的轨迹,选择径向基核函数作为向高维空间映射的函数,确定了核函数后,通知左肺判别函数求取子单元。左肺判别函数求取子单元,其对于左肺,假设左肺的像素点为n1,血管像素点个数为n1,把左肺的上叶的所有血管像素点标记为正,同时把下叶上所有血管像素点标记为负,得到一个判别函数,通知左肺上下叶分割子单元。左肺上下叶分割子单元,其用判别函数去判断左肺实质上的每一个像素点的符号,若符号为正,则该点属于上叶,否则该点属于下叶,并统计像素的个数,若为n1则左肺分割完成,通知右肺上叶中叶合并子单元。右肺上叶中叶合并子单元,其对于右肺,假设右肺的像素点为n2,血管像素点个数为n2,为使用二分类支持向量机分类,把右肺的上叶和中叶合为一个整体看做为“上叶”,通知右肺判别函数求取子单元。右肺判别函数求取子单元,其利用和左肺分割一样的方法得到一个分类判别函数,首先提取出下叶,把所看做的“上叶”的所有血管像素点标记为正,同时把下叶上所有血管像素点标记为负,得到一个判别函数,通知右肺下叶分割子单元。右肺下叶分割子单元,其用判别函数去判断右肺实质上的每一个像素点的符号,若符号为正,则该点属于所看做的“上叶”,否则该点属于下叶,并统计像素的个数,若为n2则下叶分割完成,通知右肺上叶中叶判别函数求取子单元。右肺上叶中叶判别函数求取子单元,其分割完成下叶后,然后再用上叶和中叶的血管训练支持向量机模型,得到一个判别面函数,对右肺除去下叶的部分分割,提取出上叶和中叶,通知右肺上叶中叶分割子单元。右肺上叶中叶分割子单元,其对于右肺的上叶和中叶,假设右肺的像素点为n3,血管像素点个数为n3,把右肺的上叶的所有血管像素点标记为正,同时把右肺的中叶上所有血管像素点标记为负,得到一个判别函数,并用判别函数去判断右肺实质上的每一个像素点的符号,若符号为正,则该点属于上叶,否则该点属于中叶,并统计像素的个数,若为n3则右肺上叶和中叶分割完成。

在本实施例中,由于肺实质的密度分布比较均匀,因此,ct图像上的肺实质灰度值分布也比较均匀,在获取初始分割阈值时可以用中间层ct图像的阈值近似代替整个肺实质的初始分割阈值。这样做的好处是,在对初始分割阈值精度影响很小的情况下,大大缩减了计算整个肺实质区域的初始分割阈值的计算量,从而满足实际应用的要求。因为肺实质区域的灰度值和背景区域(肺实质周围组织)的灰度值有明显的的差异,在图像图上会呈现出一个明显的波谷。因此,可以利用统计直方图(见图3)的方法,找到两个波峰之间的波谷,也就是从肺实质灰度值到周围组织灰度值过度的区域,从而确定出初始分割阈值t0。

图4为不带血管的肺实质区域结果示意图,从图4可看出,肺实质区域存在孔洞问题,可采用形态学运算填充血管方法进行肺部区域孔洞填充。其中,在图像上进行形态学的先膨胀后腐蚀运算称为闭运算,目的是填充比结构元素小的孔洞以及平滑图像的边缘。因此形态学闭运算可以填充肺血管。

因为气管使左右肺粘连在一起,要想分离左右肺首先得剔除使左右肺粘连的气管,虽然气管的灰度值比肺实质的小,但是肺实质灰度值与气管灰度值之间并没有一个明显的界限。然而气管有着自己独特的分布特征,气管的顶端只有一根分布在两个肺的中间,然后分成两根,各自进入左肺和右肺,从气管的顶端到分成两根气管进入左右肺之前的部分是不与肺实质粘连的,如图5所示,中间独立的小块连通区域就是气管。在图5的肺实质提取结果基础上,通过选取合适的结构元素在所有胸部ct影像层上执行形态学闭运算,最终获得包括肺血管的肺部组织区域,结果如图8所示。

通过统计每个连通域像素点的个数,剔除像素点数较小的连通域区域,保留像素点数较大的两个连通域区域。剔除气管之后,对于有些数据,左右肺已经是两个独立的联通区域,如图6所示。

图7给出了用数值微分法(dda)在单层ct图像上肺实质粘连区域画出的近似直线边界。最后腐蚀掉每层肺实质区域粘连图像上的近似直线边界,以及直线边界周围的26邻域点的标记值,就可以得到两个不粘连的左右肺区域,最后在三维数据中直接统计标记点的连通域,会得到两个不相连的连通域,并分别标记。

血管的根部与气管的根部紧紧相邻,而且都在肺部的边缘,肺血管的根部的直径也比其他部分血管的直径大,因此可以腐蚀肺组织的边缘的血管来断开肺血管的根部,实现不同肺叶肺血管的分离,得到五个互不相连的连通域,并用不同的颜色分别标记,如图11所示。

由于血管有太多的像素点,如果直接训练会影响训练的速率,因此首先要减少血管的像素点个数,但又不能影响血管的分布。中心线的提取正好可以满足这两个条件,因为中心路径可以去掉柱状血管的边缘部分且不会影响血管的走势,可以采用消去细化方法来提取血管的中心路径。为了平滑肺血管区域,填充肺血管内部可能存在的漏洞,首先对肺血管做一个形态学闭运算,即先膨胀后腐蚀,然后再用消去细化方法提取中心路径,最后结果如图10所示。

本发明基于3d区域生长的肺实质提取过程、基于区域特征的左右肺粘连气管剔除过程、肺血管根部剔除过程、基于拓扑细化的肺血管中心路经提取过程和基于支持向量机分类的肺叶分割算法等处理过程准确的从胸部ct图像中提取出肺叶,准确的完成对每个肺叶的病情程度的定量评估,对肺部疾病的诊断和治疗更加准确和有效,不论是每个单个肺叶,还是整个肺组织五个肺叶的平均分割准确率都在85%以上,满足预期分割要求。

需要理解的是,以上对本发明的具体实施例进行的描述只是为了说明本发明的技术路线和特点,其目的在于让本领域内的技术人员能够了解本发明的内容并据以实施,但本发明并不限于上述特定实施方式。凡是在本发明权利要求的范围内做出的各种变化或修饰,都应涵盖在本发明的保护范围内。

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