肺分割方法
【技术领域】
[0001 ] 本发明涉及医学领域断层扫描(Computed Tomography,简称CT)图像的处理,尤其 涉及图像中肺部的分割方法。
【背景技术】
[0002] 近年来,由于计算机断层扫描技术能够提供高清晰度、高对比度的CT图像,通常被 应用于肺部疾病的诊断。借助胸部CT观察肺部结构及功能特征是当今临床针对肺部各种疾 病的重要辅助手段,原始的胸部CT图像通常包括背景、肺组织、脂肪、肌肉、血管、气管、骨骼 等,为了向医生提供可靠的诊断数据,利于及早发现及治疗患者病情,通常需要对胸部CT图 像进行后续处理,提取即分割出肺组织图像。
[0003] 现有技术中,对于三维CT数据,(1)阈值法是最常见的肺部分割方法,虽然简单、快 速,但不能有效去除背景和气管分支,且确定阈值较难,往往根据经验确定。(2)区域增长法 是大多数工作中采用的方法,该方法能够有效的弥补边缘追踪的遗漏缺陷,但常常需要手 动选择种子点,是一种需要人工参与的半自动分割方法;(3)基于模式分类的方法。该方法 能提取有些数据的图像特征,但是需要大量的训练样本,分割结果对样本与特征的依赖性 强,处理时间较长。(4)基于图像配准和形状模型的方法,该方法一般效果较好,但其受训练 集数据影响会导致结果变异性大,建立模型较为困难,并且计算量大,从而导致速度慢,难 以满足临床应用的实时性需求。
[0004] 综上所述,现有的CT肺部分割方法需要加以改善,提升分割速度和精度,满足医学 诊断对肺部图像的要求。
【发明内容】
[0005] 本发明的目的在于提供一种肺分割方法,用于改善肺分割的效果。
[0006] 为了实现前述发明目的,本发明提供一种肺分割方法,包括以下步骤:
[0007] -种肺分割方法,包括以下步骤:
[0008] 步骤S1、输入原始图像,对原始图像进行预处理;
[0009 ]步骤S2、肺区域的粗分割;步骤S2包括:步骤S201、设定阈值,使用阈值分割对预处 理后的图像进行二值化处理,提取出肺部区域及与肺部区域灰度值相近的部分背景(图4中 肺之外的白色,背景全部是指肺之外的所有区域);步骤S202、从步骤S201处理后获得的图 像四角边缘开始对部分背景进行反填充;步骤S203、找出从头顶往下的z方向上面积最大一 层的肺;步骤S204、通过最大一层的肺进行z方向上向前和向后逐层区域生长,进行逐层判 断,防止与背景粘连;
[0010]步骤S3:肺区域的细分割,用于提取并去除气管和分离左右肺。
[0011] 优选地,所述阈值为-500HU。
[0012]优选地,逐层判断的方法是标记当前层为C u r r e n t S 1 i c e,传播层则为 SpreadSlice,求出SpreadSlice上肺区域点的个数总和与CurrentSlice上肺区域点的个数 总和的比值,如果比值小于0.4或者大于2.25,则判断为泄露至背景,终止生长;如果比值大 于等于0.4且小于等于2.25,则判断为未泄露至背景,继续生长。
[0013] 优选地,步骤S204还包括通过对最大一层的肺在二维上求取连通区域进行判断: 将图像中值为1的每个点都作为种子点,然后将种子点进行区域生长,如果只求出一个连通 区域,就把该连通区域作为肺的起始生长层;如果求出多个连通区域,取最大两个连通区域 作为肺的起始生长层,去除其他连通区域。
[0014] 优选地,逐层判断开始时,设定当前层为起始生长层。
[0015] 优选地,步骤S202中背景反填充的方法是从图像的四个边框往里进行区域生长, 长至胸腔区域,即值为0处终止,同时把区域生长过的地方的值赋值为0。
[0016] 优选地,步骤S202中区域生长的方法为:首先选择一组种子点,种子点可以为图像 的四个边框,然后查找种子点的8邻域,如果8邻域的标记值跟种子点一致,则将8邻域的点 也加入到种子点,不停的生长,直到遇到8邻域的点与种子点不一致,则终止生长,同时把生 长过的地方赋值为〇,即为背景。
[0017] 优选地,步骤S203中通过逐层累加值为1的个数,选取个数最大的一层作为最大一 层的肺。
[0018] 优选地,步骤S3中提取气管的方法为:求取二维连通区域和三维连通区域,从头顶 往下的z方向起始层开始遍历,将二维连通区域的面积圆形度大于0.5,三维连通区域最大 的作为气管种子点,然后用水平集算法将气管提取。
[0019] 优选地,步骤S3还包括:生成肺结节所需的肺掩膜和工作站显示所需的肺掩膜并 进行融合。
[0020] 本发明通过逐层对比判断,防止与背景粘连,明显改善了肺分割的效果,另外,加 快了分割速度。
【附图说明】
[0021] 图1为本发明实施例中肺分割方法的步骤流程示意图。
[0022] 图2为本发明实施例中步骤S2的流程示意图。
[0023]图3为本发明实施例中步骤S1中输入的原始图像。
[0024] 图4为本发明实施例中步骤S201提取出的图像。
[0025] 图5为本发明实施例中步骤S202提取出的图像。
[0026] 图6为本发明实施例中三维方向的示意图。
[0027]图7a_7c分别为本发明实施例中步骤S204提取出具有一个、两个、三个连通区域的 肺部图像。
[0028]图8显示的是工作站显示所需的肺掩膜。
[0029] 图9为本发明实施例中步骤S3的流程示意图。
【具体实施方式】
[0030] 以下结合附图和具体实施例对本发明作进一步详细说明。根据下面说明和权利要 求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非 精准的比率,仅用以方便、明晰地辅助说明本发明实施例的目的。
[0031] 请参考图1所示,本发明实施例中的肺分割方法包括以下步骤:
[0032] 步骤S1:输入原始图像,对原始图像进行预处理。
[0033] 如图3所示,原始图像为CT设备扫描获得的符合DIC0M 3.0标准的胸部CT图像。预 处理采用的方法是对原始图像进行降噪处理,例如进行高斯平滑处理,高斯平滑是通过高 斯平滑滤波器在x、y、z三个方向上分别按如下公式:
[0034]
[0035] 生成高斯肀滑滤波器(Gaussian Smoothing Filter)的高斯核,然后再与原始图 像中的每个像素进行加权求和。加权求和是对图像中的每个像素的原始灰度值与高斯核进 行卷积,累加求和所得结果作为每个像素的灰度值,达到的效果是消除伪影,去除噪声,改 善图像质量,避免噪声对后续的分割造成不利影响。
[0036]上述公式中〇2为方差,决定高斯函数的宽度,也就是决定平滑程度,X表示的是当 前像素点到对应像素点的距离。
[0037]步骤S2:肺区域的粗分割。
[0038] 粗分割的对象主要包括气管、肺。预处理后的图像为三维数据,为便于说明粗分割 的过程,随机选取一例数据,并截取其第121层的图像,该图像为二维图像。
[0039] 步骤S2包括以下步骤:
[0040] 步骤S201:设定阈值,使用阈值分割对预处理后的图像进行二值化处理,提取出肺 部区域及部分背景,部分背景是指与肺部区域灰度值相近的部分背景即图4中肺之外的白 色,全部背景是指肺之外的所有区域。
[0041 ] 本实施例中阈值(Thr e sho 1 d)选定为-500HU,大于阈值的区域的值(标记值)设为 〇,小于阈值的区域的值(标记值)设为1,背景的值(标记值)为〇,肺的值(标记值)为1,从而 将胸腔区域,包括肺部区域及背景的大部分都提取出来,具体如图4所示。
[0042] 步骤S202:从图像四角边缘开始背景反填充,从而提取出肺部区域及少量床板,具 体如图5所示,肺部区域为白色大块区域,床板为肺部区域下方的白色短线条。
[0043] 背景反填充的方法是从图像的四个边框往里进行区域生长,长至胸腔区域,即值 (标记值)为〇处终止,同时把区域生长过的地方的值(标记值)赋值为〇,接着计算二维连通 区域,去除小连通区域即去除连通域个数小于10的区域。二维连通区域的计算方法为与步 骤S204中求二维连通区域的方法相同。
[0044] 区域生长的方法为:首先选择一组种子点,种子点可以为图像的四个边框,然后查 找种子点的8邻域,如果8邻域的标记值跟种子点一致,则将8邻域的点也加入到种子点,不 停的生长,直到遇到8邻域的点与种子点不一致,则终止生长,同时把生长过的地方的值(标 记值)赋值为〇,即为背景。
[0045] 步骤S203:采用面积比较法,在三维图形中,找到从头顶往下的z方向上面积最大 一层的肺。
[0046] 采用的方法是z方向上逐层累加值(标记值)为1的个数,选取最大的,本实施例选 出的是第141层,如图7所示。
[0047] 步骤S204:通过最大一层的肺进行z方向上向前和向后逐层区域生长,进行逐层判 断,防止泄露至背景,即防止与背景粘连。
[0048] 选出来的肺如果还包含一些噪声,可以通过在二维上求取连通区域进行判断去 除。如果只求出一个连通区域,图7就是这种情况,就把该连通区域作为肺的起始生长层,标 记为LungLabel。如果求出多个连通区域,取最大两个连通区域作为肺的起始生长层,同时 标记为LungLabel,去除其他连通区域。
[0049] 求二维连通区域的方法:与区域生长类似,不同之处在于种子点的选择,二维连通 区域是将图像中值(标记值)为1的每个点都作为种子点,然后将其区域生长,这样就会把图 像中相似的归为一类,图7求出一个连通区域。图8求出3个连通区域,即三块白色区域,提取 两个最大连通区域。
[0050]以上步骤就是为了找肺的起始层(StartSlice)上的肺区域(LungLabel,肺标记), 接着进行向前向后逐层区域生长。采用多线程,让向前和向后同时进行。
[0051 ] 标记当前层为CurrentSlice,传播层则为SpreadSlice。
[0052] 刚开始时,CurrentSlice = StartSlice;
[0053] 向后传播,SpreadSlice = CurrentSlice+l;
[0054] 向前传播,SpreadSlice = CurrentSlice-l;
[0055] 将CurrentSlice上标记为LungLabel的点作为种子点,计算其在SpreadSlice上的 点,若该点值(标记值)为1,则将其作为SpreadSlice上的种子点。接着进行区域生长,同时 将生长过的点赋值为lunglabel。
[0056] 根据判断条件,确定其是否泄漏至背景,具体的判断方法是先求出SpreadSlice上 LungLabe 1点的个数总和与CurrentSl i ce上LungLabe 1点的个数总和的比值。
[0057] 因为肺在z方向上是连续变化的,因此,可以通过比值判断排除长至背景区域。如 果比值小于0.4或者大于2.25,则判断为泄露至背景,终止生长;如果比值大于等于0.4且小 于等于2.25,则判断为未泄露至背景,继续生长。
[0058] 判断完之后继续传播(区域生长)过程,此时
[0059] CurrentSlice = SpreadSlice;
[0060] 向后传播,SpreadSlice = CurrentSlice+l;
[0061 ]向前传播,SpreadSlice = CurrentSlice-l;
[0062] 继续计算比值,进行判断。
[0063] 通过逐层判断比较,可以防止泄漏至背景,也就节省了泄露至背景多花的时间,而 且采用多线程,可以加快速度。
[0064] 步骤S3:肺区域的细分割,具体包括如下步骤:
[0065] 步骤S301:提取并去除气管。求取二维连通区域和三维连通区域,根据二维连通区 域的面积圆形度以及三维连通区域的体积大小找气管种子点,从头顶往下的z方向起始层 开始遍历,二维连通区域的面积圆形度大于0.5,三维连通区域最大的作为气管种子点,然 后用水平集算法将气管提取,并将其从肺掩膜中去除。
[0066] 步骤S302:分离左右肺,分别进行形态学闭操作,将肺掩膜中的空洞(血管)填实。 因为肺结节所需的肺掩膜和工作站显示的肺掩膜要求不同,需要将其区分。所述左右肺是 指左右两个肺组织或肺实质部分。
[0067] 步骤S3031:考虑到肺壁上的结节可能漏检,所以需将肺Mask往外扩一圈,采用形 态学膨胀方法,从而保证肺壁上的结节在肺掩膜内,生成肺结节所需的肺掩膜。
[0068]步骤S3032:而对于显示掩膜,需显示气管,所以将肺掩膜加上之前提取出的气管, 生成工作站显示所需的肺掩膜,具体可参图9。首先将气管做形态学闭操作,为防止气管壁 丢失,进行形态学膨胀操作。为了使显示比较清晰,将肺掩膜进行形态学腐蚀操作。
[0069]至此,肺结节所需的肺掩膜和工作站界面显示所需的肺掩膜都生成了。
[0070]步骤S304:为了节省内存,将肺结节所需的肺掩膜和显示所需的肺掩膜进行融合, 得出最终的肺掩膜。为了加快速度并且达到融合的效果,采用如下方法:
[0071 ] 首先设定肺掩膜(LungMask) =4,表示背景为4,换为二进制则为0100。
[0072] 接着让肺掩膜与肺结节所需的肺掩膜融合,与1进行或操作,换为二进制则为 0001 〇
[0073] 0100 I 0001 = 0101,也就表示5表示肺结节所需的肺掩膜。
[0074]最后让肺掩膜与显示所需的肺掩膜融合,与2进行或操作,换为二进制则为0010; [0075] 0100 I 0010 = 0110,也就表示6表示显示所需的肺掩膜;
[0076] 0101 |0010 = 0111,7表示即为肺结节所需的肺掩膜,又为显示所需的肺掩膜;
[0077] 综上总结如下:LungMask = 5或7时,表示肺结节所需的肺掩膜;
[0078] LungMask = 6或7时,表示工作站界面显示所需的肺掩膜;
[0079] LungMask = 4时,表示背景;
[0080] 至此只需一个肺掩膜,就可以分别表示肺结节所需的肺掩膜和显示所需的肺掩 膜。
[0081] 本发明上述实施例的肺分割方法可以在例如计算机软件、硬件或计算机软件与硬 件的组合的计算机可读取介质中加以实施。对于硬件实施而言,本发明中所描述的实施例 可在一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DAPD)、 可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、用 于执行上述功能的其它电子装置或上述装置的选择组合来加以实施。在部分情况下,这类 实施例可以通过控制器进行实施。
[0082] 对软件实施而言,本发明中所描述的实施例可通过诸如程序模块(procedures)和 函数模块(functions)等独立的软件模块来加以实施,其中每一个模块执行一个或多个本 文中描述的功能和操作。软件代码可通过在适当编程语言中编写的应用软件来加以实施, 可以储存在内存中,由控制器或处理器执行。
[0083] 虽然本发明已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员 应当认识到,以上的实施例仅是用来说明本发明,在没有脱离本发明精神的情况下还可作 出各种等效的变化或替换,因此,只要在本发明的实质精神范围内对上述实施例的变化、变 型都将落在本申请的权利要求书的范围内。
【主权项】
1. 一种肺分割方法,包括以下步骤: 步骤S1、输入原始图像,对原始图像进行预处理; 步骤S2、肺区域的粗分割;步骤S2包括:步骤S201、设定阈值,使用阈值分割对预处理后 的图像进行二值化处理,提取出肺部区域及与肺部区域灰度值相近的部分背景;步骤S202、 从步骤S201处理后获得的图像四角边缘开始对部分背景进行反填充;步骤S203、找出从头 顶往下的z方向上面积最大一层的肺;步骤S204、通过最大一层的肺进行z方向上向前和向 后逐层区域生长,进行逐层判断,防止与背景粘连; 步骤S3:肺区域的细分割,用于提取并去除气管和分离左右肺。2. 如权利要求1所述的肺分割方法,其特征在于,所述阈值为-500HU。3. 如权利要求1所述的肺分割方法,其特征在于,逐层判断的方法是标记当前层为 CurrentSIice,传播层则为SpreadSlice,求出SpreadSlice上肺区域点的个数总和与 &^^拉311(^上肺区域点的个数总和的比值,如果比值小于0.4或者大于2.25,则判断为泄 露至背景,终止生长;如果比值大于等于0.4且小于等于2.25,则判断为未泄露至背景,继续 生长。4. 如权利要求3所述的肺分割方法,其特征在于,步骤S204还包括通过对最大一层的肺 在二维上求取连通区域进行判断:将图像中值为1的每个点都作为种子点,然后将种子点进 行区域生长,如果只求出一个连通区域,就把该连通区域作为肺的起始生长层;如果求出多 个连通区域,取最大两个连通区域作为肺的起始生长层,去除其他连通区域。5. 如权利要求4所述的肺分割方法,其特征在于,逐层判断开始时,设定当前层为起始 生长层。6. 如权利要求1所述的肺分割方法,其特征在于,步骤S202中背景反填充的方法是从步 骤S201处理后获得的图像的四个边框往里进行区域生长,长至胸腔区域,即值为0处终止, 同时把区域生长过的地方的值赋值为0。7. 如权利要求6所述的肺分割方法,其特征在于,步骤S202中区域生长的方法为:首先 选择一组种子点,种子点为图像的四个边框,然后查找种子点的8邻域,如果8邻域的标记值 跟种子点一致,则将8邻域的点也加入到种子点,不停的生长,直到遇到8邻域的点与种子点 不一致,则终止生长,同时把生长过的地方赋值为0,即为背景。8. 如权利要求1所述的肺分割方法,其特征在于,步骤S203中通过逐层累加值为1的个 数,选取个数最大的一层作为最大一层的肺。9. 如权利要求1所述的肺分割方法,其特征在于,步骤S3中提取气管的方法为:求取二 维连通区域和三维连通区域,从头顶往下的z方向起始层开始遍历,将二维连通区域的面积 圆形度大于0.5,三维连通区域最大的作为气管种子点,然后用水平集算法将气管提取。10. 如权利要求1所述的肺分割方法,其特征在于,步骤S3还包括:生成肺结节所需的肺 掩膜和显示所需的肺掩膜并进行融合。
【专利摘要】本发明提供一种肺分割方法,包括以下步骤:步骤S1、输入原始图像,对原始图像进行预处理;步骤S2、肺区域的粗分割;步骤S2包括:步骤S201、设定阈值,使用阈值分割对预处理后的图像进行二值化处理,提取出肺部区域及与肺部区域灰度值相近的部分背景;步骤S202、从图像四角边缘开始背景反填充;步骤S203、找出从头顶往下的z方向上面积最大一层的肺;步骤S204、通过最大一层的肺进行z方向上向前和向后逐层区域生长,进行逐层判断,防止与背景粘连;步骤S3:肺区域的细分割,用于提取并去除气管和分离左右肺。如此设置,加快了分割速度,改善了分割效果。
【IPC分类】G06T7/00
【公开号】CN105488796
【申请号】CN201510849613
【发明人】姚庆
【申请人】上海联影医疗科技有限公司
【公开日】2016年4月13日
【申请日】2015年11月27日