本发明涉及一种脊柱分割方法及装置,更具体涉及基于CT图像的脊椎三维建模方法及装置。
背景技术:
由于环境以及生活习惯等因素,一些人的脊柱会发生病变,但是并不是脊柱中所有的脊椎都发生了病变,因此,在进行脊柱治疗前,需要对脊椎进行分割识别,进而定位出发生病变的脊椎。
目前的脊柱分割方法是通过CT(Computed Tomography,计算机断层扫描) 技术获取脊柱中的各个脊椎的若干张二维影像,然后医生根据二维影像逐张进行人工判度,进而判断出哪些二维影响属于同一块椎骨,进而分割出各个脊椎。
但是,现有技术中医生靠经验进行二维CT图像中进行脊椎的分割,分割后的图像还是二维图像,使用二维图像进行脊椎的病例判读不够方便。
技术实现要素:
本发明所要解决的技术问题在于提供了基于CT图像的脊椎三维建模方法及装置,以解决现有技术中使用二维图像进行脊椎的病例判读不够方便的技术问题。
本发明是通过以下技术方案解决上述技术问题的:
本发明实施例提供了基于CT图像的脊椎三维建模方法,所述方法包括:
1)、获取待分割脊椎的CT图像,其中,所述待分割脊椎中包括若干个椎骨,且每一个椎骨均对应CT图像中的若干张CT图像;
2)、根据相邻CT图像之间的相似度,获取各个椎骨的CT图像序列;
3)、获取各个椎骨的CT图像序列中各个CT图像中包含的像素间隔,并根据所述像素间隔,利用立方体算法建立各个椎骨的三维模型。
可选的,所述步骤1),包括:
获取待分割脊椎的原始CT图像,并获取所述原始CT图像的图像参数,其中,所述图像参数包括:斜率、截距、图像中心坐标以及图像宽度;
针对原始CT图像中的每一张图像,根据所述原始图像的图像参数,利用公式,
计算转换后的各个像素点的像素值,其中,
Widow_Width为CT图像中设定区域的宽度;CTValue为像素点的CT值;Rescale_slope为原始CT图像的截距;img_data为CT图像中像素点的像素值; Rescale_Intercept为原始CT图像的斜率;Pixel_Value为像素点的像素值; Window_Centre为CT图像中设定区域的的中心坐标;min为CT值的取值范围的最小值;max为CT值的取值范围的最大值;
根据所述转换后的各个像素点的像素值,构建一张新的图像;并对所述新的图像进行二值化处理以及中值滤波处理,得到待分割脊椎的CT图像。
可选的,所述步骤2),包括:
将待分割脊椎的CT图像序列中的第一张图像作为当前椎骨的当前掩膜;将当前掩膜的下一张图像作为当前图像,并判断当前掩膜与当前图像的相似度是否达到预设阈值;
若是,将所述当前图像作为当前椎骨的目标图像,获取所述当前椎骨的最后一张CT图像,在所述当前图像为所述最后一张CT图像之前的图像的情况下,将当前图像的下一张图像作为当前图像,将所述当前图像作为当前掩膜,并返回执行所述判断当前掩膜与当前图像的相似度是否达到预设阈值的步骤;
若否,将当前图像的下一张图像作为当前图像,将所述当前图像作为当前掩膜,并返回执行所述判断当前掩膜与当前图像的相似度是否达到预设阈值的步骤;直至将当前椎骨的最后一张CT图像作为当前图像;
获取当前椎骨的下一椎骨的掩膜,并返回执行所述将当前掩膜的下一张图像作为当前图像,并判断当前掩膜与当前图像的相似度是否达到预设阈值的步骤,直至遍历完所述待分割脊椎的CT图像的序列。
可选的,所述判断当前掩膜与当前图像的相似度是否达到预设阈值,包括:
获取当前掩膜与当前图像中相同位置上像素值相同的像素点的数量;
根据所述相同位置上像素值相同的像素点的数量与掩膜中像素点的数量的商获取所述当前掩膜与所述当前图像之间的相似度,并判断所述相似度是否达到预设阈值。
可选的,所述获取当前掩膜与当前图像中相同位置上像素值相同的像素点的数量,包括:
针对所述当前图像中的每一个像素点,判断该点像素值与掩膜中对应位置的像素点的像素值是否相同;
若是,将该像素点作为相同像素点集合中的像素点;并累计所述相同像素点集合中的像素点的数量。
可选的,所述预设阈值的获取过程包括:
利用公式,α=0.1802*e-0.7713x+0.7752,计算第一预设阈值,其中,
α为第一预设阈值;e为自然底数;x为当前椎骨的CT图像的序列中相邻两张图像之间的间隔。
可选的,所述预设阈值的获取过程包括:
利用公式,α=0.1802*e-0.7713x+0.7752,计算第一预设阈值,其中,
α为第一预设阈值;e为自然底数;x为当前椎骨的CT图像的序列中相邻两张图像之间的间隔;
利用公式,β=0.1802*e-0.7713x+0.6635,计算第二预设阈值,其中,
β为第二预设阈值;e为自然底数;
所述判断当前掩膜与当前图像的相似度是否达到预设阈值,包括:
判断是否当前掩膜与当前图像的相似度不小于第一预设阈值,且在当前掩膜与当前图像的下一张图像之间的相似度不小于第二预设阈值。
可选的,所述获取所述当前椎骨的最后一张CT图像,包括:
获取待分割脊柱的CT图像序列中各张图像中对应的脊椎骨截面积;
将脊椎骨截面积变化曲线中的波谷点对应的CT图像作为对应脊椎骨的最后一张CT图像。
可选的,在步骤3)之前,所述方法还包括:
在当前图像为当前椎骨的最后一张CT图像时,将当前图像的下一张图像作为当前图像;
利用角点检测算法,获取所述当前图像中的角点;
根据局所述角点,获取所述所述当前图像的中心点;
以所述中心点所在竖直线为分界线,将与所述分界线的距离介于第三预设阈值以及第四预设阈值之间的区域中的若干个设定点中像素值最小的点作为种子点,并根据所述种子点,利用洪水填充算法进行填充,得到棘突区域;
将当前图像棘突区域中各像素点中与当前图像的上一张图像棘突区域的对应位置的像素点之间的距离,小于第五预设阈值的像素点对应的区域作为所述当前图像的目标棘突区域;
将当前椎骨的棘突区域与当前椎骨的CT图像序列的集合,作为当前椎骨的目标CT图像序列。
本发明实施例还提供了基于CT图像的脊柱分割装置,所述装置包括:
第一获取模块,用于获取待分割脊椎的CT图像,其中,所述待分割脊椎中包括若干个椎骨,且每一个椎骨均对应CT图像中的若干张CT图像;
第二获取模块,用于根据相邻CT图像之间的相似度,获取各个椎骨的CT 图像序列;
第三获取模块,用于获取各个椎骨的CT图像序列中各个CT图像中包含的像素间隔,并根据所述像素间隔,利用立方体算法建立各个椎骨的三维模型。
可选的,所述第一获取模块,用于:
获取待分割脊椎的原始CT图像,并获取所述原始CT图像的图像参数,其中,所述图像参数包括:斜率、截距、图像中心坐标以及图像宽度;
针对原始CT图像中的每一张图像,根据所述原始图像的图像参数,利用公式,
计算转换后的各个像素点的像素值,其中,
Widow_Width为CT图像中设定区域的宽度;CTValue为像素点的CT值; Rescale_slope为原始CT图像的截距;img_data为CT图像中像素点的像素值; Rescale_Intercept为原始CT图像的斜率;Pixel_Value为像素点的像素值; Window_Centre为CT图像中设定区域的的中心坐标;min为CT值的取值范围的最小值;max为CT值的取值范围的最大值;
根据所述转换后的各个像素点的像素值,构建一张新的图像;并对所述新的图像进行二值化处理以及中值滤波处理,得到待分割脊椎的CT图像。
可选的,所述第二获取模块,用于:
将待分割脊椎的CT图像序列中的第一张图像作为当前椎骨的当前掩膜;将当前掩膜的下一张图像作为当前图像,并判断当前掩膜与当前图像的相似度是否达到预设阈值;
若是,将所述当前图像作为当前椎骨的目标图像,获取所述当前椎骨的最后一张CT图像,在所述当前图像为所述最后一张CT图像之前的图像的情况下,将当前图像的下一张图像作为当前图像,将所述当前图像作为当前掩膜,并返回执行所述判断当前掩膜与当前图像的相似度是否达到预设阈值的步骤;
若否,将当前图像的下一张图像作为当前图像,将所述当前图像作为当前掩膜,并返回执行所述判断当前掩膜与当前图像的相似度是否达到预设阈值的步骤;直至将当前椎骨的最后一张CT图像作为当前图像;
获取当前椎骨的下一椎骨的掩膜,并返回执行所述将当前掩膜的下一张图像作为当前图像,并判断当前掩膜与当前图像的相似度是否达到预设阈值的步骤,直至遍历完所述待分割脊椎的CT图像的序列。
可选的,所述第二获取模块,用于:
获取当前掩膜与当前图像中相同位置上像素值相同的像素点的数量;
根据所述相同位置上像素值相同的像素点的数量与掩膜中像素点的数量的商获取所述当前掩膜与所述当前图像之间的相似度,并判断所述相似度是否达到预设阈值。
可选的,所述第二获取模块,用于:
针对所述当前图像中的每一个像素点,判断该点像素值与掩膜中对应位置的像素点的像素值是否相同;
若是,将该像素点作为相同像素点集合中的像素点;并累计所述相同像素点集合中的像素点的数量。
可选的,所述预设阈值的获取过程包括:
利用公式,α=0.1802*e-0.7713x+0.7752,计算第一预设阈值,其中,
α为第一预设阈值;e为自然底数;x为当前椎骨的CT图像的序列中相邻两张图像之间的间隔。
可选的,所述预设阈值的获取过程包括:
利用公式,α=0.1802*e-0.7713x+0.7752,计算第一预设阈值,其中,
α为第一预设阈值;e为自然底数;x为当前椎骨的CT图像的序列中相邻两张图像之间的间隔;
利用公式,β=0.1802*e-0.7713x+0.6635,计算第二预设阈值,其中,
β为第二预设阈值;e为自然底数;
所述第二获取模块,用于:
判断是否当前掩膜与当前图像的相似度不小于第一预设阈值,且在当前掩膜与当前图像的下一张图像之间的相似度不小于第二预设阈值。
可选的,所述获取所述当前椎骨的最后一张CT图像,包括:
获取待分割脊柱的CT图像序列中各张图像中对应的脊椎骨截面积;
将脊椎骨截面积变化曲线中的波谷点对应的CT图像作为对应脊椎骨的最后一张CT图像。
可选的,所述装置还包括:设置模块,用于:
在当前图像为当前椎骨的最后一张CT图像时,将当前图像的下一张图像作为当前图像;
利用角点检测算法,获取所述当前图像中的角点;
根据局所述角点,获取所述所述当前图像的中心点;
以所述中心点所在竖直线为分界线,将与所述分界线的距离介于第三预设阈值以及第四预设阈值之间的区域中的若干个设定点中像素值最小的点作为种子点,并根据所述种子点,利用洪水填充算法进行填充,得到棘突区域;
将当前图像棘突区域中各像素点中与当前图像的上一张图像棘突区域的对应位置的像素点之间的距离,小于第五预设阈值的像素点对应的区域作为所述当前图像的目标棘突区域;
将当前椎骨的棘突区域与当前椎骨的CT图像序列的集合,作为当前椎骨的目标CT图像序列;
所述第三获取模块,用于:
获取所述当前椎骨的目标CT图像序列中各个CT图像中包含的像素间隔。
本发明相比现有技术具有以下优点:
应用本发明实施例,根据相邻CT图像之间的相似度,获取各个椎骨的CT 图像序列,然后根据每块椎骨的CT图像序列进行椎骨的三维建模,本发明实施例可以实现自动三维建模,相对于现有技术中使用二维图像进行脊椎的病例判读更加方便。
附图说明
图1为本发明实施例提供的基于CT图像的脊椎三维建模方法的流程示意图;
图2为本发明实施例提供的基于CT图像的脊椎三维建模方法的原理示意图;
图3为本发明实施例提供的基于CT图像的脊椎三维建模方法中当前掩膜与所述当前图像之间的相似度的计算示意图;
图4为本发明实施例提供的基于CT图像的脊椎三维建模方法中椎骨截面积变化曲线图;
图5为发明实施例提供的基于CT图像的脊椎三维建模方法得到的三维建模的结果示意图;
图6为本发明实施例提供的基于CT图像的脊椎三维建模方法中椎骨截面积变化示意图;
图7为本发明实施例提供的基于CT图像的脊椎三维建模方法中第一预设阈值和第二预设阈值的变化曲线示意图;
图8为本发明实施例提供的基于CT图像的脊椎三维建模方法中棘突识别流程示意图;
图9为本发明实施例提供的基于CT图像的脊椎三维建模方法中棘突识别结果示意图;
图10为本发明实施例提供的基于CT图像的脊柱分割装置的结构示意图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本发明实施例提供了基于CT图像的脊椎三维建模方法及装置,下面首先就本发明实施例提供的基于CT图像的脊椎三维建模方法进行介绍。
实施例1
图1为本发明实施例提供的基于CT图像的脊椎三维建模方法的流程示意图;图2为本发明实施例提供的基于CT图像的脊椎三维建模方法的原理示意图;如图1和图2所示,所述方法包括:
S101:获取待分割脊椎的CT图像,其中,所述待分割脊椎中包括若干个椎骨,且每一个椎骨均对应CT图像中的若干张CT图像。
具体的,S101步骤可以包括以下步骤:
A:可以获取待分割脊椎的原始CT图像,并获取所述原始CT图像的图像参数,其中,所述图像参数包括:斜率、截距、图像中心坐标以及图像宽度。
本发明实施例使用的源图像数据是高清CT图像序列。这些图像的格式为 DICOM格式,分辨率为512×512。通过对CT图像处理的背景研究,因为传统工具很少支持CT图像的直接处理,很难对CT源图像进行直接处理。因此,可以将这些源图像转换为BMP格式,并将这些图像的信息保存在文本文件中,以减少后续处理的难度。
在图像格式转换过程中,首先要获得CT图像数据的几个重要参数:斜距 (Rescale_Intercept),截距(Rescale_Slope),图像中心(Window_Center)和图像宽度(Window_Width)。
B:针对原始CT图像中的每一张图像,根据所述原始图像的图像参数,利用公式,
计算转换后的各个像素点的像素值,其中,
Widow_Width为CT图像中设定区域的宽度;CTValue为像素点的CT值,单位是Hu;Rescale_slope为原始CT图像的截距;img_data为CT图像中像素点的像素值,即获得的CT图像中利用16位二进制存储一个原始像素值; Rescale_Intercept为原始CT图像的斜率;Pixel_Value为像素点的像素值;Window_Centre为CT图像中设定区域的的中心坐标;min为CT值的取值范围的最小值;max为CT值的取值范围的最大值。
需要强调的是,CT值的范围是从-1000到1000之间,而显示屏能够显示的灰度有限,所以只能选择一个感兴趣的范围,即预设范围进行显示,这个范围就是Widow_Width,这个范围内的中值就是Window_Centre。
将感兴趣的CT范围进行移位,并转换成0到255灰度值内的图像中的像素点的像素值,即为像素点的像素值Pixel_Value。
另外,在转换时需要加一个限制:当CTValue≤min时,将Pixel_Value设为0;当CTValue≥max时,将Pixel_Value设为255。因为这里感兴趣的是骨质区域,所以 CT值范围设置成900-1000,也就是Window_Center为950,Window_Width为 100。
然后,使用图像数据和这些参数来计算图像中的CT值。CT值的计算是一个线性运算,在计算CT值后,根据CT值计算BMP的像素值,最终每一张CT 源图像对应到8位BMP图像中的像素点的像素值。
C:根据所述转换后的各个像素点的像素值,构建一张新的图像;并对所述新的图像进行二值化处理以及中值滤波处理,得到待分割脊椎的CT图像。
针对每一张CT源图像,根据B步骤中计算的8位BMP图像中的像素点的像素值构件新的BMP图像。
再依次利用二值化算法以及中值滤波算法对BMP图像进行图像处理,得到每一张CT源图像对应的BMP图像。可以理解的是,处理后的BMP图像序列分别对应待分割脊柱的各个椎骨。
中值滤波可以消除像素值与相邻像素值明显不同的孤立噪声点,进而提高椎骨区域的清晰度并尽可能保留椎骨的轮廓。
在实际应用中,当椎体位于胸廓时,由于肋骨等杂质区的影响,分割的准确性会降低。为了减少这些杂质区域的不良影响,将图像中的除椎体位置以外的区域进行填充,以去除大部分杂质区域。
例如,得到BMP图像序列中包含的图像依次为:
BMP-1、BMP-2、BMP-3、BMP-4、BMP-5、BMP-6、…、BMP-n。
S102:根据相邻CT图像之间的相似度,获取各个椎骨的CT图像序列。
具体的,可以将待分割脊椎的CT图像序列中的第一张图像作为当前椎骨的当前掩膜;将当前掩膜的下一张图像作为当前图像,并判断当前掩膜与当前图像的相似度是否达到预设阈值;
示例性的,S102步骤可以包括以下步骤:
D:获取当前掩膜与当前图像中相同位置上像素值相同的像素点的数量。
在实际应用中,S101步骤中得到的椎骨的图像序列是按照椎骨的排列次序依次获取的图像组成的图像序列,因此,可以将待分割脊椎的CT图像组成的图像序列中的第一张图像如,BMP-1作为第一个椎骨的当前掩膜,且第一个椎骨为当前椎骨。
然后,由于BMP-1与当前掩膜的相似度为100%,因此,BMP-1图像为当前椎骨的CT图像序列中的第一张图像。
针对所述当前图像,针对BMP-2中的每一个像素点,判断该点像素值与掩膜中对应位置的像素点的像素值是否相同;若是,将该像素点作为相同像素点集合中的像素点;并累计所述相同像素点集合中的像素点的数量。若否,则该像素点不能作为相同像素点集合中的像素点。
E:根据所述相同位置上像素值相同的像素点的数量与掩膜中像素点的数量的商获取所述当前掩膜与所述当前图像之间的相似度,并判断所述相似度是否达到预设阈值。
在实际应用中,可以预先利用公式,α=0.1802*e-0.7713x+0.7752,计算第一预设阈值,其中,α为第一预设阈值;e为自然底数;x为当前椎骨的CT图像的序列中相邻两张图像之间的间隔。
图3为本发明实施例提供的基于CT图像的脊椎三维建模方法中当前掩膜与所述当前图像之间的相似度的计算示意图,如图3所示,图3中M为当前掩膜, T为当前图像。S1为当前掩膜中的椎骨的像素点形成的区域;当前图像中的圆形图像为S1区域在T中的投影;五边形的S2为当前图像中的椎骨的像素点形成的区域,投影与S2的交叉区域为当前掩膜与当前图像之中像素值与掩膜中对应位置的像素点的像素值相同的区域。
然后判断D步骤中得到的相同像素点集合中的像素点的数量除以掩膜图像中的像素点数量的商,是否大于或者等于第一预设阈值;若是,执行F步骤,若否,执行G步骤。
在实际应用中,图像序列具有不同的图像间隔,Z轴上的间隔与相邻图像之间的相似性有关。当图像间隔增大时,应减小阈值α以获得更好的结果。可以预先测试了几种不同图像间隔的图像序列,并根据以往的经验选择α的大小,以达到最佳效果。因此,我们得到了一个包含图像间隔和α的数据集。表1不同图像间距对应的阈值α。表1为本发明实施例中图像间隔和α的数据集的列表。
表1
然后,借助matlab生成拟合公式:α=0.1802*e-0.7713x+0.7752。
F:将所述当前图像作为当前椎骨的目标图像,获取所述当前椎骨的最后一张CT图像,在所述当前图像为所述最后一张CT图像之前的图像的情况下,将当前图像的下一张图像作为当前图像,将所述当前图像作为当前掩膜,并返回执行所述判断当前掩膜与当前图像的相似度是否达到预设阈值的步骤;
具体的,可以获取待分割脊柱的CT图像序列中各张图像中对应的脊椎骨截面积;将脊椎骨截面积变化曲线中的波谷点对应的CT图像作为对应脊椎骨的最后一张CT图像。
示例性的,先将当前图像BMP-2作为第一块椎骨的目标图像。
图4为本发明实施例提供的基于CT图像的脊椎三维建模方法中椎骨截面积变化曲线图,如图4所示,根据预先绘制的椎骨截面积变化曲线,找到变化曲线中的波谷点,将波谷点对应的图像如点1对应的图像作为第一块椎骨的最后一张CT图像。
如果BMP-2图像不是第一块椎骨的最后一张图像,即在点1对应的图像之前的图像时,可以将BMP-2图像作为当前掩膜,将BMP-3图像作为当前图像,并返回执行E步骤。
G:将当前图像的下一张图像作为当前图像,将所述当前图像作为当前掩膜,并返回执行所述判断当前掩膜与当前图像的相似度是否达到预设阈值的步骤;直至将当前椎骨的最后一张CT图像作为当前图像;
具体的,可以获取当前椎骨的下一椎骨的掩膜,并返回执行所述将当前掩膜的下一张图像作为当前图像,并判断当前掩膜与当前图像的相似度是否达到预设阈值的步骤,直至遍历完所述待分割脊椎的CT图像的序列。
示例性的,将第一块椎骨的下一块椎骨对应的图像序列中的第一张图像,如BMP-8作为下一椎骨的当前掩膜,将BMP-9作为当前图像,然后执行E步骤,直至S101步骤中得到的待分割脊椎的CT图像的序列中所有的图像都被遍历。
S103:获取各个椎骨的CT图像序列中各个CT图像中包含的像素间隔,并根据所述像素间隔,利用立方体算法建立各个椎骨的三维模型。
图5为发明实施例提供的基于CT图像的脊椎三维建模方法得到的三维建模的结果示意图,如图5所示,图5中位各个椎骨按照顺序组成的脊柱的三维示意图;图5中右侧部分为对应编号的椎骨的三维视图。
在实际应用中,获取像素间隔,并进行椎骨三维建模为现有技术,本发明实施例在此不再赘述。
应用本发明图1所示实施例,根据相邻CT图像之间的相似度,获取各个椎骨的CT图像序列,然后根据每块椎骨的CT图像序列进行椎骨的三维建模,本发明实施例可以实现自动三维建模,相对于现有技术中使用二维图像进行脊椎的病例判读更加方便。
另外,本发明实施例还可以辅助助医生判断侧弯脊柱的弯曲点。
实施例2
通过实验发现,对于轻微变形的脊柱,当穿过两个变形椎体的交界处时,相邻的图像通常非常相似,使得很难区分椎体结构。使用单个阈值α是不够的。
因此,在本发明实施例的一种具体实施方式中,本发明实施例2与本发明实施例1之间的区别在于:
所述预设阈值的获取过程包括:利用公式,α=0.1802*e-0.7713x+0.7752,计算第一预设阈值,其中,α为第一预设阈值;e为自然底数;x为当前椎骨的CT图像的序列中相邻两张图像之间的间隔;
利用公式,β=0.1802*e-0.7713x+0.6635,计算第二预设阈值,其中,β为第二预设阈值;e为自然底数;
然后,判断是否当前掩膜BMP-1与当前图像BMP-2的相似度不小于第一预设阈值,且在当前掩膜BMP-1与当前图像的下一张图像BMP-3之间的相似度不小于第二预设阈值。
若是,则当前图像BMP-2为当前椎骨对应的图像,执行F步骤;若否,执行G步骤。
图6为本发明实施例提供的基于CT图像的脊椎三维建模方法中椎骨截面积变化示意图;如图6所示,图6中从左到右依次为:BMP-1、BMP-2、BMP-3 和BMP-4。尽管BMP-1和BMP-3之间的差异大于,BMP-1和BMP-2之间的差异,但很明显相邻图像如BMP-1和BMP-2太相似而无法区分。为此,我们采用了双阈值方法,先确定另一个阈值β,然后用α和β来判断当前图像和前两个图像之间的相似性。
图7为本发明实施例提供的基于CT图像的脊椎三维建模方法中第一预设阈值和第二预设阈值的变化曲线示意图,如图7所示,如果α和β都满足要求,则继续检测下一幅图像。由于同一椎骨中存在间隔两幅CT图像之间的相似性小于相邻图像之间的相似性,我们使β略小于α,可以获得更好的区域相似性检测效果。
经过上述相似性检测步骤,我们基本上可以提取出属于同一椎体的图像。接下来,我们需要提取当前椎骨的其余部分,扩展到下一个椎骨的图像,以提取出各个椎骨的图像。
实施例3
在本发明实施例的一种具体实施方式中,在本发明实施例1的基础上,在步骤S103之前,增加了以下步骤:
图8为本发明实施例提供的基于CT图像的脊椎三维建模方法中棘突识别流程示意图,如图8所示,H:在当前图像为当前椎骨的最后一张CT图像时,将当前图像的下一张图像作为当前图像。
在区域相似性检测步骤中,如果相似率不大于α或β,则这两个图像不再属于同一椎体。然而,脊椎的棘突部分通常延伸到下一个脊椎的前几个图像中,并且椎体结构的这一部分通常出现在图像的底部,直到消失。因此,我们从区域相似性检测失败的第一幅图像开始,即当前椎骨的最后一张CT图像开始进行角点检测。
I:利用角点检测算法,获取所述当前图像中的角点。
利用现有技术中的角点检测算法找出图像中的角点。
J:根据局所述角点,获取所述所述当前图像的中心点。
K:以所述中心点所在竖直线为分界线,将与所述分界线的距离介于第三预设阈值以及第四预设阈值之间的区域中的若干个设定点中像素值最小的点作为种子点,并根据所述种子点,利用洪水填充算法进行填充,得到棘突区域。
示例性的,图9为本发明实施例提供的基于CT图像的脊椎三维建模方法中棘突识别结果示意图,如图9所示,我们通过当前图像的中心画一条垂直线γ,找到距离γ的距离大于第三预设阈值,且小于第四预设阈值的三个或者五个或者八个设定点,将这些点中的像素值最小的点作为洪水填充算法的种子点。由于直线γ通常会穿过棘突区域901,因此,本步骤中所填充的区域通常是以前脊椎的棘突区域。
L:将当前图像棘突区域中各像素点中与当前图像的上一张图像棘突区域的对应位置的像素点之间的距离,小于第五预设阈值的像素点对应的区域作为所述当前图像的目标棘突区域。
示例性的,由于棘突是连续的骨质凸起,因此,相邻两张图像之中包含的棘突的截面的形状具有相似性,因此,可以将相邻两张图像中棘突区域之间的欧式距离小于第五预设阈值的区域作为当前椎骨的棘突的截面区域。
M:将当前椎骨的棘突区域与当前椎骨的CT图像序列的集合,作为当前椎骨的目标CT图像序列。
按照上述方法H-L步骤,可以得到包含当前椎骨的若干张棘突区域的图像。
利用上述步骤,我们可以在区域相似性检测后提取出脊椎的棘突部分。
实施例4
与本发明图1所示实施例相对应,本发明实施例还提供了基于CT图像的脊柱分割装置。
图10为本发明实施例提供的基于CT图像的脊柱分割装置的结构示意图,如图10所示,所述装置包括:
第一获取模块1001,用于获取待分割脊椎的CT图像,其中,所述待分割脊椎中包括若干个椎骨,且每一个椎骨均对应CT图像中的若干张CT图像;
第二获取模块1002,用于根据相邻CT图像之间的相似度,获取各个椎骨的CT图像序列;
第三获取模块1003,用于获取各个椎骨的CT图像序列中各个CT图像中包含的像素间隔,并根据所述像素间隔,利用立方体算法建立各个椎骨的三维模型。
应用本发明图10所示实施例,根据相邻CT图像之间的相似度,获取各个椎骨的CT图像序列,然后根据每块椎骨的CT图像序列进行椎骨的三维建模,本发明实施例可以实现自动三维建模,相对于现有技术中使用二维图像进行脊椎的病例判读更加方便。
在本发明实施例的一种具体实施方式中,所述第一获取模块1001,用于:
获取待分割脊椎的原始CT图像,并获取所述原始CT图像的图像参数,其中,所述图像参数包括:斜率、截距、图像中心坐标以及图像宽度;
针对原始CT图像中的每一张图像,根据所述原始图像的图像参数,利用公式,
计算转换后的各个像素点的像素值,其中,
Widow_Width为CT图像中设定区域的宽度;CTValue为像素点的CT值; Rescale_slope为原始CT图像的截距;img_data为CT图像中像素点的像素值; Rescale_Intercept为原始CT图像的斜率;Pixel_Value为像素点的像素值; Window_Centre为CT图像中设定区域的的中心坐标;min为CT值的取值范围的最小值;max为CT值的取值范围的最大值;
根据所述转换后的各个像素点的像素值,构建一张新的图像;并对所述新的图像进行二值化处理以及中值滤波处理,得到待分割脊椎的CT图像。
在本发明实施例的一种具体实施方式中,所述第二获取模块1002,用于:
将待分割脊椎的CT图像序列中的第一张图像作为当前椎骨的当前掩膜;将当前掩膜的下一张图像作为当前图像,并判断当前掩膜与当前图像的相似度是否达到预设阈值;
若是,将所述当前图像作为当前椎骨的目标图像,获取所述当前椎骨的最后一张CT图像,在所述当前图像为所述最后一张CT图像之前的图像的情况下,将当前图像的下一张图像作为当前图像,将所述当前图像作为当前掩膜,并返回执行所述判断当前掩膜与当前图像的相似度是否达到预设阈值的步骤;
若否,将当前图像的下一张图像作为当前图像,将所述当前图像作为当前掩膜,并返回执行所述判断当前掩膜与当前图像的相似度是否达到预设阈值的步骤;直至将当前椎骨的最后一张CT图像作为当前图像;
获取当前椎骨的下一椎骨的掩膜,并返回执行所述将当前掩膜的下一张图像作为当前图像,并判断当前掩膜与当前图像的相似度是否达到预设阈值的步骤,直至遍历完所述待分割脊椎的CT图像的序列。
在本发明实施例的一种具体实施方式中,所述第二获取模块1002,用于:
获取当前掩膜与当前图像中相同位置上像素值相同的像素点的数量;
根据所述相同位置上像素值相同的像素点的数量与掩膜中像素点的数量的商获取所述当前掩膜与所述当前图像之间的相似度,并判断所述相似度是否达到预设阈值。
在本发明实施例的一种具体实施方式中,所述第二获取模块1002,用于:
针对所述当前图像中的每一个像素点,判断该点像素值与掩膜中对应位置的像素点的像素值是否相同;
若是,将该像素点作为相同像素点集合中的像素点;并累计所述相同像素点集合中的像素点的数量。
在本发明实施例的一种具体实施方式中,所述预设阈值的获取过程包括:
利用公式,α=0.1802*e-0.7713x+0.7752,计算第一预设阈值,其中,
α为第一预设阈值;e为自然底数;x为当前椎骨的CT图像的序列中相邻两张图像之间的间隔。
在本发明实施例的一种具体实施方式中,所述预设阈值的获取过程包括:
利用公式,α=0.1802*e-0.7713x+0.7752,计算第一预设阈值,其中,
α为第一预设阈值;e为自然底数;x为当前椎骨的CT图像的序列中相邻两张图像之间的间隔;
利用公式,β=0.1802*e-0.7713x+0.6635,计算第二预设阈值,其中,
β为第二预设阈值;e为自然底数;
所述第二获取模块1002,用于:
判断是否当前掩膜与当前图像的相似度不小于第一预设阈值,且在当前掩膜与当前图像的下一张图像之间的相似度不小于第二预设阈值。
在本发明实施例的一种具体实施方式中,所述获取所述当前椎骨的最后一张CT图像,包括:
获取待分割脊柱的CT图像序列中各张图像中对应的脊椎骨截面积;
将脊椎骨截面积变化曲线中的波谷点对应的CT图像作为对应脊椎骨的最后一张CT图像。
在本发明实施例的一种具体实施方式中,所述装置还包括:设置模块,用于:
在当前图像为当前椎骨的最后一张CT图像时,将当前图像的下一张图像作为当前图像;
利用角点检测算法,获取所述当前图像中的角点;
根据局所述角点,获取所述所述当前图像的中心点;
以所述中心点所在竖直线为分界线,将与所述分界线的距离介于第三预设阈值以及第四预设阈值之间的区域中的若干个设定点中像素值最小的点作为种子点,并根据所述种子点,利用洪水填充算法进行填充,得到棘突区域;
将当前图像棘突区域中各像素点中与当前图像的上一张图像棘突区域的对应位置的像素点之间的距离,小于第五预设阈值的像素点对应的区域作为所述当前图像的目标棘突区域;
将当前椎骨的棘突区域与当前椎骨的CT图像序列的集合,作为当前椎骨的目标CT图像序列;
所述第三获取模块1003,用于:
获取所述当前椎骨的目标CT图像序列中各个CT图像中包含的像素间隔。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。