体绘制方法、系统、装置和存储介质与流程

文档序号:31071398发布日期:2022-08-09 21:07阅读:139来源:国知局
体绘制方法、系统、装置和存储介质与流程

1.本说明书涉及数据处理领域,更具体地,涉及用于体绘制的方法、系统、装置和存储介质。


背景技术:

2.例如计算机断层扫描(computed tomography,ct)等的医学扫描设备可以通过扫描人体获得三维体数据。为了能直观看到人体器官的立体结构,可以对三维体数据进行体绘制,获得屏幕上的渲染图像(例如,二维图像)。在体绘制过程中,由于一些感兴趣的组织(例如,血管、心脏等)的体素值与其他相邻组织的体素值相近,感兴趣的组织与相邻组织在体绘制过程中得到的参数(例如,颜色、不透明度等)接近,从而导致感兴趣的组织在图像中无法与相邻组织区分开来。目前,可以基于体素标签值等额外信息对体素进行分类,并根据分类结果来决定当前体素的显示,从而区分感兴趣的组织与相邻组织。然而,在基于体素标签值等额外信息进行体绘制时,由于体素分辨率以及容积效应等的限制,可能会导致不同区域之间的边界不够光滑,产生锯齿。
3.因此,需要提供一种体绘制方法、系统和设备,以在对含有多个区域或组织的体数据进行体绘制时,减少或避免相邻组织的边界处产生的锯齿,获得具有连续光滑边界的体绘制图像,从而提高绘制结果的质量以及绘制效率。


技术实现要素:

4.本说明书实施例之一提供一种体绘制方法。所述体绘制方法包括基于体数据获取组织的边界网格;对于体绘制中的每一条光线,确定所述光线与所述边界网格的交点;以及基于所述交点,确定所述组织的体绘制结果。
5.在一些实施例中,所述基于体数据获取组织的边界网格可以包括:对所述体数据进行分割,确定每个体素对应的组织以及所述组织的标签;基于每个组织的标签,对所述体数据进行二值化处理;以及基于所述二值化处理的结果确定所述标签对应的组织的边界网格。
6.在一些实施例中,所述基于所述二值化处理的结果确定所述标签对应组织的边界网格可以包括:基于移动立方体算法确定所述标签对应组织的边界网格。
7.在一些实施例中,所述方法可以进一步包括:对所述组织的边界网格进行平滑处理。
8.在一些实施例中,所述边界网格可以包括多个网格面片,所述对于体绘制中的每一条光线,确定所述光线与所述边界网格的交点可以包括:基于层次包围盒算法管理所述组织的边界网格,其中,所述层次包围盒算法的每个父节点对应一个包围盒,所述层次包围盒算法的每个叶节点对应一个或多个网格面片;判断所述光线与所述父节点是否相交;若所述光线与所述父节点相交,确定所述光线与所述父节点对应的叶节点的交点;若所述光线与所述父节点不相交,跳过所述父节点以及所述父节点对应的叶节点。
9.在一些实施例中,所述基于所述交点,确定所述组织的体绘制结果可以包括:对于所述每一条光线,基于所述交点,将所述光线分为多个分段并确定所述多个分段中每个分段的标签;确定沿所述光线的光线方向的多个采样点;基于所述每个分段的标签,确定所述多个采样点中每个采样点的标签;判断所述每个采样点的标签是否可见;以及基于所述判断的结果确定所述组织的体绘制结果。
10.在一些实施例中,所述基于所述判断的结果确定所述组织的体绘制结果可以包括:若所述标签不可见,跳过所述采样点所在分段,进行下一分段的判断;若所述标签可见,基于所述标签对应的渲染参数确定所述标签可见的采样点对所述光线的亮度的贡献;以及基于所述标签可见的采样点对所述光线的亮度的贡献确定每一条光线的亮度。
11.在一些实施例中,所述方法可以进一步包括:基于所述每一条光线的亮度显示所述体绘制结果。
12.本说明书实施例之一提供一种体绘制系统。所述体绘制系统包括:获取模块,用于基于体数据获取组织的边界网格;交点确定模块,用于对于体绘制中的每一条光线,确定所述光线与所述边界网格的交点;以及绘制模块,用于基于所述交点,确定所述组织的体绘制结果。
13.本说明书实施例之一提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行如任一实施例所述的体绘制方法。
附图说明
14.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
15.图1是根据本说明书一些实施例所示的示例性成像系统的示意图;
16.图2是根据本说明书一些实施例所示的体绘制方法的示例性流程图;
17.图3是根据本说明书一些实施例所示的获取组织边界网格的示例性流程图;
18.图4是根据本说明书一些实施例所示的确定光线与边界网格的交点的示例性流程图;
19.图5是根据本说明书一些实施例所示的确定体绘制结果的示例性流程图;
20.图6a和图6b分别提供了根据现有方法和根据本说明书一些实施例所示的方法生成的体绘制图像;
21.图7是根据本说明书一些实施例所示的示例性体绘制系统的框图。
具体实施方式
22.为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标
号代表相同结构或操作。
23.应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
24.如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
25.本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
26.医学成像设备可以通过扫描人体获得相应的医学数据。例如,计算机断层扫描(computed tomography,ct)设备可以使用x射线对人体进行扫描,从而获得人体的体数据。所述体数据可以是多张二维切片图像组成的三维图像,其中包含多个体素。所述三维图像中任意位置的ct值可基于附近体素的ct值进行线性插值计算来得到。在一些实施例中,能直观看到人体器官的立体结构,可以通过光线投射或者光线追踪等技术对体数据进行体绘制,得到屏幕上的渲染图像。例如,在体绘制过程中,可以从屏幕上的渲染图像对应的每个像素点出发发射光线,沿着光线穿过体数据的路径对体数据进行采样,并将采样过程中每个采样点的ct值根据窗宽窗位及颜色表等信息映射到绘制相关的参数(例如,rgb值、不透明度等)。基于所述绘制相关的参数以及光线渲染方程,可以得到每个采样点处的直接光照或者间接光照对光线的亮度的贡献,将各个采样点的贡献叠加起来可以得到光线对应的亮度。所述亮度可以用于表示渲染图像上该光线对应的像素点的颜色。
27.在一些实施例中,可以通过调整窗宽窗位或颜色表等信息来调整渲染图像的显示效果。例如,通过调整窗宽窗位或颜色表等信息,可以将感兴趣的组织(例如,心脏、肺等)对应的不透明度调高、不感兴趣的组织对应的不透明度降低,从而只显示感兴趣区域;或者,可以将感兴趣的组织与不感兴趣的组织分别使用不同的颜色风格区分开来。对体数据进行绘制的过程中,一些感兴趣的组织(例如,血管、心脏等)对应的ct值可能与不感兴趣的组织(例如,相邻软组织)对应的ct值相近,使得它们映射得到的绘制相关的参数接近,无法在显示时进行区分。
28.在一些实施例中,可以通过一些额外信息将感兴趣的组织与不感兴趣的组织进行分类,并根据分类结果来决定当前体素的显示,从而区分感兴趣的组织与不感兴趣的组织。例如,可以通过图像算法(例如,图像分割算法)将体数据中的各个体素进行分割,确定每个体素对应的标签,其中,不同的标签可以代表不同的组织。对于体数据中每个体素,可以根据当前体素对应的标签来决定该体素或其所在的组织是否显示,或者将不同标签的体素用不同的颜色进行区别显示。由此,在体绘制中可以通过采样点附近的体素标签来确定当前采样点的标签,从而确定体绘制得到的渲染图像的显示效果。然而,由于体素分辨率等的限制,可能导致渲染图像中不同组织间的边界存在锯齿。另外,由于容积效应等原因,导致某些边界处体数据的梯度和边界法线不一致,从而使得基于边界法线计算得到的边界处光照
明暗不均、不够光滑。在一些实施例中,可以通过高阶插值计算来提高组织边界的连续光滑性。所述高阶插值计算使采样次数增加,影响体绘制的计算效率。
29.本说明书实施例提供一种体绘制方法、系统和设备。对于具有多组织的体数据,所述方法可以基于体数据获取组织的边界网格。在体绘制中,对于每一条光线,可以确定所述光线与所述边界网格的交点,并基于所述交点确定所述组织的体绘制结果。在一些实施例中,还可以基于网格光顺算法(例如,双边滤波算法等)对网格进行处理,在保留组织边界的特征同时,可以或得连续光滑的组织边界。进一步地,可以准确高效地使用网格上的边界信息进行体绘制,保证了体绘制结果中组织间边界的连续光滑性,且绘制结果不会受到体数据分辨率或容积效应等的影响,从而可以提高绘制图像的质量以及体绘制的效率。
30.为了更好地理解体绘制系统和/或方法,以下将基于与医学设备相关的数据进行描述。需要注意的是,以下基于与医学设备相关数据进行描述不用于限制本说明书的范围。对于本领域普通技术人员而言,本说明书公开的系统和方法可以应用于需要进行数据绘制的任何其他系统和/或设备。
31.图1是根据本说明书一些实施例所示的示例性成像系统的示意图。如图1所示,成像系统100可以包括成像设备110、网络120、一个或多个终端130、处理器140和存储器150。在一些实施例中,成像系统100中的各个组件可以通过有线和/或无线的方式彼此连接和/或通信。
32.成像设备110可以扫描位于其检测区域内的对象并生成与对象相关的数据。在一些实施例中,成像设备110可以是用于疾病诊断或研究目的的医学成像设备。该医学成像设备可以包括单模态扫描仪和/或多模态扫描仪。单模态扫描仪可包括例如超声扫描仪、x射线扫描仪、ct扫描仪、磁共振成像(magnetic resonance imaging,mri)扫描仪、正电子发射断层扫描(positron emission tomography,pet)扫描仪、光学相干断层扫描(optical coherence tomography,oct)扫描仪、单光子发射计算机断层扫描(single photon emission computed tomography,spect)等。多模态扫描仪可以包括,例如,pet-mri扫描仪、spect-mri扫描仪、pet-ct扫描仪等。在一些实施例中,与对象相关的数据可以包括投影数据、扫描数据、对象的一张或多张图像等。在一些实施例中,与对象相关的数据可以包括体数据(例如,三维体数据、四维体数据等)。例如,ct扫描仪可以通过扫描患者以获取该患者的三维体数据。
33.网络120可以包括可促进成像系统100的信息和/或数据交换的任何合适的网络。在一些实施例中,成像系统100的一个或多个组件(例如成像设备110、终端130、处理器140、存储器150等)可以通过网络120将信息和/或数据与成像系统100的一个或多个其他组件进行通信。例如,处理器140可以通过网络120从成像设备110获取ct扫描体数据。再例如,处理器140可以通过网络120从终端130获取用户指令。
34.终端130可以包括移动设备131、平板电脑132、笔记本电脑133等,或其任意组合。在一些实施例中,终端130可以是处理器140的一部分。在一些实施例中,终端130可以用于输入用户指令、显示扫描结果、显示体绘制结果等。所述体绘制结果包括可以显示在终端(例如,终端130)屏幕上的渲染图像。在一些实施例中,所述渲染图像可以包括二维图像、三维图像等。在一些实施例中,终端130可以发出提示信息,对用户进行提示。在一些实施例中,终端130可以作为处理器140的一部分。
35.处理器140可以处理从成像设备110、终端130和/或存储器150获取的数据和/或信息。在一些实施例中,处理器140可以从成像设备110获取扫描对象的体数据。在一些实施例中,处理器140可以根据本说明书所述的方法对体数据进行体绘制,获得体绘制结果。
36.存储器150可以存储数据、指令和/或任何其他信息。在一些实施例中,存储器150可以存储从终端130和/或处理器140获取的数据。在一些实施例中,存储器150可以存储数据和/或指令,处理器140和/或终端130可以执行或使用数据和/或指令,以实现在本说明书中描述的示例性方法。在一些实施例中,存储器150可以与网络120连接,以便与成像系统100的一个或多个其他组件(例如,处理器140、终端130等)进行通信。成像系统100的一个或多个组件可以通过网络120访问存储在存储器150中的数据或指令。在一些实施例中,存储器150可以直接连接到成像系统100的一个或多个其他组件(例如,成像设备110、处理器140、终端130等)或与之通信。在一些实施例中,所述存储器150可以是处理器140的一部分。
37.图2是根据本说明书一些实施例所示的体绘制方法200的示例性流程图。在一些实施例中,体绘制方法200中的一个或多个操作可以在图1所示的成像系统100中执行。例如,体绘制方法200可以以指令的形式存储在存储器150中,并由处理器140调用和/或执行。以下所示的体绘制方法200中的操作旨在说明性的目的。在一些实施例中,体绘制方法200也可以在终端130中实现。如图2所示,体绘制方法200可以包括以下步骤。
38.步骤210,基于体数据获取组织的边界网格。在一些实施例中,步骤210可以由获取模块710实现。
39.在一些实施例中,可以通过成像设备(例如,图1中所示的成像设备110)对对象进行扫描以生成体数据。示例性的成像设备可以包括mr扫描设备、ct扫描设备、x射线扫描设备、超声扫描设备、pet扫描设备、dr扫描设备等,或其任意组合。在一些实施例中,对象可以包括患者、人造物体等。在一些实施例中,对象可以包括患者中的一个或以上组织。所述组织可以指人体的部位、器官和/或生物组织。例如,组织可以包括头部、大脑、颈部、身体、肩部、手臂、胸部、心脏、胃、血管、软组织,或其任意组合。相应地,成像设备通过扫描产生的体数据中可以包括一个或以上组织的体数据。在一些实施例中,体数据可以包括三维体数据、四维体数据等,或其任意组合。例如,体数据可以包括三维体数据,所述三维体数据可以由包括多个图像帧的图像序列构成,其中每个图像帧可以由成像设备通过执行扫描生成。在一些实施例中,体数据可以包括多个体素,每个体素可以具有相应的体素值(例如,ct值)。
40.在一些实施例中,可以直接从成像设备获取医学体数据。在一些实施例中,可以从本说明书其他地方公开的存储设备(例如,存储器150)中获取所述体数据。例如,由成像设备110生成的体数据可以被传送并存储在存储器150中。处理器140可以从存储器150中获取体数据。
41.在一些实施例中,可以对体数据进行分割,确定每个体素对应的组织以及所述组织的标签。例如,可以基于图像分割算法对体数据进行分割,确定体数据中每个体素所属的组织以及该组织的标签。在一些实施例中,不同组织可以具有不同的标签。进一步地,基于每个组织的标签,可以对体数据进行二值化处理,并基于二值化处理的结果确定该标签对应的组织的边界网格。例如,对于每个组织,可以基于其标签值将该组织对应的体素值设为1,将其他组织对应的体素值设为0,从而得到二值化的体数据。基于每个组织的标签对应的二值化的体数据,可以通过网格生成算法确定该组织的边界网格。在一些实施例中,在确定
组织的边界网格后,还可以对边界网格进行平滑处理,获得平滑后的边界网格。关于数据获取组织边界网格的更多描述可以参见本说明书其他地方的描述(例如,图3及其相关描述)。
42.在一些实施例中,通过将不同组织的分割的结果用网格提取出来并进行平滑处理,可以在保留组织之间边界特征的同时,得到更加连续光滑的边界网格,在后续的体绘制过程中,可以提高绘制结果中组织边界的连续性和光滑性,使得绘制结果不受体数据分辨率的影响,进而提高绘制结果的质量以及绘制效率。另外,在后续基于边界网格进行光照亮度的计算时,对于边界网格附近的采样点,将网格法线作为该采样点的法线,避免了由于体数据的梯度和边界法线不一致导致的光照明暗不均、不够光滑等问题,从而提高绘制图像的质量。
43.步骤220,对于体绘制中的每一条光线,确定所述光线与边界网格的交点。在一些实施例中,步骤220可以由交点确定模块720实现。
44.在一些实施例中,可以使用体绘制算法对三维体数据进行体绘制,得到屏幕上的渲染图像。所述渲染图像可以包括二维图像、三维图像等。示例性的体绘制算法可以包括光线投射算法、光线追踪算法等。在体绘制过程中,可以基于相机参数(例如,相机位置)从屏幕上的每个像素点出发发射一条光线,并沿着光线穿过体数据的路径确定多个采样点以进行采样,得到光线对应的像素点的颜色。
45.在一些实施例中,对于体绘制中的每一条光线,可以确定所述光线与边界网格的交点。在一些实施例中,组织的边界网格可以由多个网格面片组成。光线与边界网格的交点可以是光线与其中所包含的网格面片的交点。在一些实施例中,可以基于层次包围盒(bounding volume hierarchy,bvh)算法管理组织的边界网格。例如,bvh算法可以包括多个父节点,每个父节点对应一个包围盒,每个父节点中的每个叶节点对应一个或多个网格面片。对于所述每一条光线,可以判断该光线与父节点是否相交。如果光线与父节点相交,则进一步确定该光线与父节点对应的叶节点的交点。如果光线与父节点不相交,则跳过该父节点以及该父节点对应的叶节点。在一些实施例中,一条光线可以穿过体数据中的多个组织。相应地,一条光线可以与多个组织的边界网格相交,得到多个交点。关于确定光线与边界网格交点的更多描述可以参见本说明书其他地方的描述(例如,图4及其相关描述)。
46.在一些实施例中,通过bvh算法管理组织的边界网格,在光线与边界网格求交时,不需要判断光线与每个网格面片是否存在交点,避免了光线与网格面片不相交时的冗余计算,减小了光线求交的计算量,提高了光线求交的计算速度。
47.步骤230,基于所述交点,确定所述组织的体绘制结果。在一些实施例中,步骤230可以由绘制模块730实现。
48.在一些实施例中,对于每一条光线,基于光线与边界网格的交点,可以将该光线分为多个分段并确定所述多个分段中每个分段的标签。例如,每个组织对应的网格面片可以具有该组织的标签。可以基于与光线相交的网格面片的标签来确定交点的标签。由此,可以基于光线与边界网格的交点,将该光线分为多个分段,并将每个分段对应的交点的标签作为所述分段的标签。进一步地,可以确定沿所述光线的光线方向的多个采样点。例如,在基于光线投射算法的体绘制过程中,所述采样点可以是沿着光线方向的步进采样点。再例如,在基于光线追踪算法的体绘制过程中,所述采样点可以沿着光线传输路径的随机采样点。基于每个分段的标签,可以确定多个采样点中每个采样点的标签。进一步地,可以判断每个
采样点的标签是否可见。例如,可以将感兴趣组织的标签预设为可见,不感兴趣组织的标签预设为不可见。基于该预设,处理器140可以判断每个采样点的标签是否可见。如果所采样点的标签不可见,则跳过该采样点所在分段,进行下一分段的判断。如果采样点的标签可见,则基于该标签对应的渲染参数确定标签可见的采样点对光线的亮度的贡献。进一步地,对于每一条光线,可以基于标签可见的采样点对光线的亮度的贡献确定该光线的亮度。关于确定组织体绘制结果的更多描述可以参见本说明书其他地方的描述(例如,图5及其相关描述)。
49.需要注意的是,以上对方法200的流程的描述仅是示例性的目的,而非限制本说明书的范围。对于本领域的技术人员,可以基于本说明书进行任意的变更或修改。在一些实施例中,方法200的步骤并非顺序性的。在一些实施例中,方法200可以包括一个或多个额外的步骤或者方法200的一个或多个步骤可以省略。例如,方法200中还可以包括用于对组织的边界网格进行平滑处理的步骤。再例如,方法200中还可以包括基于每一条光线的亮度来显示体绘制结果的步骤。
50.图3是根据本说明书一些实施例所示的获取组织边界网格的示例性流程图。在一些实施例中,方法300中的一个或多个操作可以在图1所示的成像系统100中执行。例如,方法300可以以指令的形式存储在存储器150中,并由处理器140调用和/或执行。以下所示的方法300中的操作旨在说明性的目的。在一些实施例中,方法300也可以在终端130中实现。在一些实施例中,体绘制方法200中的步骤210可以通过方法300来实现。如图3所示,方法300可以包括以下步骤。
51.步骤310,对体数据进行分割,确定每个体素对应的组织以及所述组织的标签。
52.在一些实施例中,体数据中可以包括多个组织,可以对体数据进行分割,确定每个体素所属的组织。例如,可以基于图像分割算法对体数据进行分割,以确定每个体素对应的组织。示例性的图像分割算法可以包括基于图论的图像分割算法、基于像素聚类的图像分割算法、语义分割算法等。
53.在一些实施例中,对体数据进行分割的结果可以包括不同的组织及其对应的体素。对于每个组织或其中的体素,可以确定其对应的标签。在一些实施例中,标签可以用于标识当前体素所属的组织,不同组织对应的标签可以不同。例如,心脏的标签可以为a,左肺的标签可以为b,右肺的标签可以为c,等。在一些实施例中,标签还可以用数字表示。在一些实施例中,每个组织的标签可以在体数据分割过程中自动生成,例如,处理器140在基于图像分割算法对体数据进行分割时,可以在确定每个体素对应的组织时自动确定每个组织的标签。
54.步骤320,基于每个组织的标签,对体数据进行二值化处理。
55.在一些实施例中,对于分割后的每个组织,可以基于标签对体数据进行二值化处理,得到二值化的处理结果。在二值化处理过程中,对于每个组织,可以将该组织中体素的标签设置为第一值,其他组织中体素的标签设为第二值,其中,第一值与第二值不同。例如,对于标签为a的组织,其中每个体素的标签值可以设为1,其他组织(例如,b、c等)中每个体素的标签值可以设为0。再例如,对于标签为b的组织,其中每个体素的标签值可以设为1,其他组织(例如,a、c等)中每个体素的标签值可以设为0。由此,每个组织的标签可以对应一个二值化处理的结果。在一些实施例中,二值化处理的结果可以用于表示组织在后续处理中
是否可见。例如,在边界网格的提取时,第一值可以表示该组织在网格提取时可见,第二值可以表示该组织在网格提取时不可见。在一些实施例中,可以基于二值化算法对体数据进行二值化处理。示例性的二值化算法可以包括双峰法、p参数法、迭代法和大津二值化法等。
56.步骤330,基于二值化处理的结果确定标签对应的组织的边界网格。
57.边界网格可以指用于表示组织边界的网格。例如,每个组织可以具有各自的边界,所述边界可以是围绕所述组织的界面(例如,等值面)。所述界面可以用网格来表示,即为边界网格。在一些实施例中,边界网格可以用于表示不同组织的分割的结果。对于体数据中的每个组织,可以确定其对应的边界网格。在一些实施例中,边界网格可以包括多个网格面片。仅作为示例,所述网格面片可以为三角形网格面片,多个三角形网格面片连接,形成了组织的完整边界网格。
58.在一些实施例中,可以基于网格提取算法提取组织的边界网格。例如,可以基于移动立方体(marching cube)算法确定标签对应组织的边界网格。基于所述移动立方体算法,可以根据二值化处理的结果确定组织是否可见,并提取可见组织的边界网格。在一些实施例中,还可以根据窗宽窗位信息确定组织是否可见,从而基于窗宽窗位信息通过网格提取算法提取组织的边界网格。可选地或附加地,还可以同时基于窗宽窗位信息和二值化处理的结果,通过网格提取算法提取组织的边界网格。在一些实施例中,基于每个组织的标签对应的二值化处理的结果,可以提取该标签对应的组织的边界网格。由此,可以得到每个组织的边界网格。在一些实施例中,每个组织的边界网格可以具有该组织对应的标签。
59.在一些实施例中,还可以对所提取的边界网格进行平滑处理。平滑处理可以通过调整与边界网格相关的参数,从而得到连续光滑的边界网格。仅作为示例,边界网格可以包括多个三角形网格面片,与边界网格相关的参数可以包括三角形网格面片的顶点参数。通过平滑处理,可以调整三角形网格面片的顶点参数,使不同三角形网格面片之间平滑过渡,从而得到连续光滑的边界网格。在一些实施例中,可以基于网格光顺算法对边界网格进行平滑处理,例如,可以基于双边滤波算法对组织的边界网格进行平滑处理。由此,本说明书的实施例可以基于每个组织的标签,将不同组织的分割的结果通过网格提取出来,以便于进行进一步的体绘制。另外,通过对网格的平滑处理,可以在保留组织之间边界特征的同时,得到更加连续光滑的边界网格。在后续的体绘制过程中,平滑处理后的边界网格在提供准确的组织边界信息的同时,可以提高绘制结果中组织边界的连续性和光滑性,使得绘制结果不受体数据分辨率的影响,进而提高绘制结果的质量以及绘制效率。
60.需要注意的是,以上对方法300的描述仅是示例性的目的,而非限制本说明书的范围。对于本领域的技术人员,可以基于本说明书进行任意的变更或修改。在一些实施例中,方法300的步骤并非顺序性的。在一些实施例中,方法300可以包括一个或多个额外的步骤或者方法300的一个或多个步骤可以省略。在一些实施例中,方法300中的至少两个步骤可以合并为一个步骤实现或方法300中的一个步骤可以拆分成两个步骤实现。例如,步骤310可以分为两个步骤,在其中一个步骤中,可以对体数据进行分割,确定每个体素对应的组织,在另一个步骤中,可以基于分割的结果确定每个组织的标签。再例如,方法300还可以包括对组织的边界网格进行平滑处理的步骤。再例如,在步骤310中,可以使用训练好的神经网络模型对体数据进行分割。再例如,步骤320-330可以省略,可以使用训练好的神经网络模型对分割后的体数据进行边界网格的提取。可选地或附加地,可以使用同一个神经网络
模型对体数据进行分割和边界网格的提取。
61.图4是根据本说明书一些实施例所示的确定光线与边界网格的交点的示例性流程图。在一些实施例中,方法400中的一个或多个操作可以在图1所示的成像系统100中执行。例如,方法400可以以指令的形式存储在存储器150中,并由处理器140调用和/或执行。以下所示的方法400中的操作旨在说明性的目的。在一些实施例中,方法400也可以在终端130中实现。在一些实施例中,体绘制方法200中的步骤220可以通过方法400来实现。如图4所示,方法400可以包括以下步骤。
62.步骤410,基于层次包围盒(bounding volume hierarchy,bvh)算法管理组织的边界网格。
63.在一些实施例中,对于体数据中各个组织的边界网格,可以基于bvh算法构建用于管理边界网格的树形结构。例如,树形结构中可以包括多个父节点,每个父节点可以对应一个包围盒,每个叶节点对应一个或多个网格面片。在一些实施例中,每个包围盒可以表示体数据中的一个三维空间范围,其中包围一个或多个网格面片。由此,基于bvh算法,可以确定多个包围盒,每个包围盒可以包围一个或多个网格面片,从而可以基于包围盒对组织的边界网格进行管理。在一些实施例中,多个包围盒中的至少一部分可以重叠。例如,两个或多个包围盒所包围的网格面片可以部分重合。在一些实施例中,树形结构可以包括多层节点。例如,每个父节点可以对应一个包围盒,每个包围盒还可以包围多个下层包围盒。进一步地,每个下层包围盒可以包围一个或多个网格面片。
64.步骤420,判断光线与父节点是否相交。
65.在一些实施例中,对于体绘制中的每一条光线,可以判断该光线与父节点是否相交。例如,可以使用bvh算法判断光线与父节点是否相交。再例如,可以通过计算光线在体数据中的路径与父节点对应的包围盒之间的空间位置关系,从而确定光线与父节点是否相交。若光线的至少一部分经过包围盒对应的三维空间范围,则可以确定光线与父节点相交。在一些实施例中,对于每一条光线,可以遍历bvh算法中的父节点,判断该光线与每个父节点是否相交。
66.步骤430,若光线与父节点相交,确定光线与父节点对应的叶节点的交点。
67.步骤440,若光线与父节点不相交,跳过父节点以及父节点对应的叶节点。
68.在一些实施例中,若光线与父节点相交,则该光线可以与包围盒中所包围的一个或多个网格面片存在交点。因此,若光线与父节点相交,可以进一步计算该光线与父节点对应的叶节点的交点。例如,可以遍历父节点对应的每个叶节点,确定光线与其中一个或以上的叶节点的交点。若光线与父节点不相交,则该光线与包围盒中所包围的一个或多个网格面片不存在交点。因此,若光线与父节点不相交,可以跳过该父节点及其对应的叶节点。在一些实施例中,一条光线可以穿过体数据中的多个组织。相应地,一条光线可以与多个组织的边界网格相交,得到多个交点。在一些实施例中,一条光线可以在光线路径上的不同位置与一个组织的边界网格相交,得到多个交点。
69.通过bvh算法管理组织的边界网格,可以在确定光线与边界网格的交点时,先确定光线是否与父节点相交,如果相交,再进一步确定光线与父节点对应的叶节点的交点;而如果不相交,可以跳过该父节点及其对应的叶节点。根据上述方法,在光线与边界网格求交时,不需要判断光线与每个网格面片是否存在交点,避免了光线与网格面片不相交时的冗
余计算,减小了光线求交的计算量,提高了光线求交的计算速度。
70.在一些实施例中,为了确定光线与边界网格的交点,还可以构建边界网格的距离场。对于体数据中的任意一点,所述距离场可以包括该点到边界网格的最短距离。由此,对于光线上的任意一点,可以基于距离场确定该点到网格边界的最短距离。进一步地,可以基于光线步进算法确定光线与边界网格的交点。例如,在光线步进算法中,可以沿着光线路径按照一定的步长前进,并在前进时基于距离场确定光线是否与边界网格相交,从而确定光线与边界网格的交点。基于所述距离场,可以确定光线上的采样点到边界网格的最短距离,避免了冗余计算,提高光线的求交速度。
71.需要注意的是,以上对方法400的描述仅是示例性的目的,而非限制本说明书的范围。对于本领域的技术人员,可以基于本说明书进行任意的变更或修改。在一些实施例中,方法400的步骤并非顺序性的。在一些实施例中,方法400可以包括一个或多个额外的步骤或者方法400的一个或多个步骤可以省略。在一些实施例中,方法400中的至少两个步骤可以合并为一个步骤实现或方法400中的一个步骤可以拆分成两个步骤实现。
72.图5是根据本说明书一些实施例所示的确定体绘制结果的示例性流程图。在一些实施例中,方法500中的一个或多个操作可以在图1所示的成像系统100中执行。例如,方法500可以以指令的形式存储在存储器150中,并由处理器140调用和/或执行。以下所示的方法500中的操作旨在说明性的目的。在一些实施例中,方法500也可以在终端130中实现。在一些实施例中,体绘制方法200中的步骤230可以通过方法500来实现。如图4所示,方法500可以包括以下步骤。
73.步骤510,对于每一条光线,基于所述光线与边界网格的交点,将所述光线分为多个分段并确定多个分段中每个分段的标签。
74.在一些实施例中,光线在穿过体数据的过程中可以与一个或多个组织的边界网格相交,得到多个交点。基于所述多个交点,可以将光线分为多个分段。例如,基于相邻两个交点可确定一个分段。在一些实施例中,每个组织对应的边界网格或网格面片可以具有该组织的标签。对于每一条光线,基于与光线相交的网格面片的标签,可以确定该光线与网格面片的交点的标签。例如,光线与心脏的网格面片之间的交点可以具有心脏对应的标签。进一步地,基于所述交点的标签,可以确定多个分段中每个分段的标签。例如,每个分段的起点与终点的标签可以确定为该分段的标签。仅作为示例,穿过心脏的分段可以具有心脏对应的标签。
75.步骤520,确定沿所述光线的光线方向的多个采样点。
76.在一些实施例中,在体绘制过程中,可以基于相机参数(例如,相机位置)从屏幕上的每个像素点出发发射一条光线,并沿着光线穿过体数据的路径对体数据确定光线路径上的多个采样点,计算每个采样点的亮度,并基于各个采样点的亮度得到光线对应的亮度。光线对应的亮度可以用于表示渲染图像上该光线对应的像素点的颜色。在一些实施例中,所述多个采样点可以沿着光线路径按照固定步长或随机步长来确定。仅作为示例,在光线投射算法中,可以基于体数据的分辨率确定采样点的步长,所述步长可以为固定步长。
77.步骤530,基于每个分段的标签,确定多个采样点中每个采样点的标签。
78.在一些实施例中,可以确定多个采样点中每个采样点所在的光线分段,并基于分段的标签确定采样点的标签。例如,可以将采样点所在的分段的标签设为该采样点的标签。
79.步骤540,判断每个采样点的标签是否可见。
80.在一些实施例中,可以将每个组织的标签设置为在绘制结果中可见或不可见。例如,对于感兴趣的组织,可以将其标签设置为可见;对于不感兴趣的组织,可以将其标签设置为不可见。由此,可以在体绘制采样过程中判断当前采样点的标签是否可见。进一步地,可以基于每个采样点的标签是否可见的判断结果确定组织的体绘制结果。
81.步骤550,若所述标签不可见,跳过所述采样点所在分段,进行下一分段的判断。
82.在一些实施例中,若采样点的标签不可见,则采样点所在的分段标签不可见,不需要对该分段进行采样计算。因此,可以跳过该采样点所在的分段,进行下一分段的判断。
83.步骤560,若所述标签可见,基于所述标签对应的渲染参数确定标签可见的采样点对所述光线的亮度的贡献。
84.在一些实施例中,若采样点的标签可见,则采样点所在的分段标签可见,需要对该分段进行采样计算。在一些实施例中,对于每一条光线上标签为可见的采样点,可以基于标签对应的渲染参数,使用光照模型计算各个采样点的亮度。在一些实施例中,采样点的亮度可以作为采样点对光线的亮度的贡献。这里的渲染参数可以指用于将体数据中采样点对应体素的数据属性(例如,体素值)映射到光学属性(例如,rgb值、不透明度等)的参数。示例性的渲染参数可以包括颜色表、材质参数等。在一些实施例中,不同标签可以对应不同的渲染参数。例如,心脏与血管可以对应不同的颜色表或材质参数。
85.仅作为示例,以基于光线投射算法的体绘制过程为例进行说明。对于每一条光线上标签可见的每个采样点,可以基于采样点附近的八个体素对应的体素值进行插值,得到该采样点的体素值。进一步地,基于采样点的标签,可以确定与该标签对应的颜色表。基于所述颜色表映射得到与该标签对应的颜色(即rgb值)和不透明度。基于映射得到的颜色、不透明度,以及材质参数等,可以采用光照模型计算光线在该采样点处光照的亮度。所述亮度可以表示该采样点处的颜色。示例性的光照模型可以包括兰伯特(lambert)光照模型、冯氏(phong)光照模型、布林-冯氏(blinn-phong)光照模型等。例如,可以基于公式(1)所示的布林-冯氏光照模型计算采样点对应的光照亮度:i
volume
=i
emission
+i
blinnphong
=i
emission
+i
ambient
+i
diffuse
+i
specular
=keie+kamaia+kdmdid《l
°
n》+k
smsis
《h
°
n》n,
ꢀꢀ
(1)其中,i
volume
表示采样点处对应的光照的亮度,i
emission
表示体数据的自发光亮度;i
ambient
表示环境光亮度,ka表示环境光系数,ma表示环境光对应的材质颜色,ia表示环境光对应的光照强度;i
diffuse
表示漫反射光的亮度,kd表示漫反射光系数,md表示漫反射光对应的材质颜色,id表示漫反射光对应的光照强度,《l
°
n》表示光源方向和法线的方向点乘结果;i
specular
表示镜面光亮度,ks表示镜面光系数,ms表示镜面光对应的材质颜色,is表示镜面光对应的光照强度,h表示光源方向与光线视线方向的中间方向,《h
°
n》表示h与法线方向的点乘结果,n表示材质参数中的光泽度。公式(1)中,ka、kd和ks为标签对应的材质参数,ma和md为基于颜色表映射得到的颜色。
86.在一些实施例中,在计算位于组织边界处的采样点对应的光照亮度时,所使用的采样点的法线可以为采样点所在的边界的法线,所述边界法线可以基于体数据的梯度来确定。而由于容积效应等原因,导致某些边界处体数据的梯度和边界法线不一致,从而使得基
于边界法线计算得到的边界处光照明暗不均、不够光滑。在一些实施例中,在基于边界网格进行光照亮度的计算时,如果采样点的边界网格附近,可以将网格法线(例如,与光线相交的网格面片的法线)作为该采样点的法线,而不使用体数据的梯度作为采样点的法线,避免了由于体数据的梯度和边界法线不一致导致的光照明暗不均、不够光滑等问题,从而提高绘制图像的质量。
87.步骤570,可以基于标签可见的采样点对光线的亮度的贡献确定每一条光线的亮度。
88.在一些实施例中,基于标签可见的各个采样点对光线的亮度的贡献,可以确定每一条光线的亮度。例如,可以沿着光线路径,基于每个可见的采样点的亮度进行积分计算,从而得到该光线对应的亮度,所述亮度可以用于表示绘制得到的渲染图像上该光线对应的像素点的颜色。例如,基于采样点对应的光照的亮度(或称为颜色)以及映射得到的不透明度,可以计算光线在当前采样点处的叠加颜色和叠加不透明度,并将最后得到的叠加颜色作为该光线对应的亮度。仅作为示例,当前采样点处的叠加颜色可以是光线路径上,之前的每个可见采样点的颜色与当前采样点的颜色的叠加值;当前采样点处的叠加不透明度可以是光线路径上,之前的每个可见采样点的不透明度与当前采样点的不透明度的叠加值。仅作为示例,可以基于公式(2)计算当前采样点的叠加颜色,基于公式(3)计算当前采样点的叠加不透明度:c
dst

=c
dst

+(1-α
dst

)c
src

ꢀꢀꢀꢀꢀꢀꢀꢀ
(2)α
dst

=α
dst

+(1-α
dst


src

ꢀꢀꢀꢀꢀꢀꢀꢀ
(3)其中,c
dst

表示光线在当前采样点的叠加颜色,c
dst

表示光线在上一个可见采样点的叠加颜色,α
dst

表示光线在上一个可见采样点的叠加不透明度,c
src
表示基于上述公式(1)得到的当前采样点对应的颜色;α
dst

表示光线在当前采样点的叠加不透明度,α
src
表示映射得到的当前采样点对应的不透明度。基于上述公式(2)和公式(3),可以计算沿着光线路径计算每个采样点处的叠加颜色和叠加不透明度。在一些实施例中,初始的叠加颜色和叠加不透明度可以为0。
89.基于上述方法,可以确定每个可见的采样点的亮度和不透明度,并沿着光线路径进行积分计算,得到光线在各个采样点的叠加颜色和叠加不透明度,直到光线超出体数据的范围,此时,可以将最后得到的叠加颜色作为绘制结果中该光线对应的像素点的颜色(或称为亮度)。由此,对于屏幕上的每个像素,可以基于上述方法对穿过该像素的光线进行积分计算,得到该光线对应的叠加颜色,从而确定每一条光线的亮度。在一些实施例中,基于每一条光线的亮度,可以显示体绘制结果。在一些实施例中,体绘制结果可以显示为屏幕上的渲染图像,体绘制得到的每一条光线的亮度即为渲染图像上每个像素的颜色。
90.在一些实施例中,在沿着光线的路径上,光线可以与一个组织存在多个交点。例如,如图6所示的血管组织,光线可以依次穿过血管610以及血管620。在该光线路径上,光线可以与血管610存在两个交点,并且与血管620存在两个交点。在一些实施例中,可以基于边界网格对多个交点中的部分交点进行计算,确定该光线的亮度。例如,可以基于边界网格确定距离光线起点(例如,相机位置或屏幕上的像素点)最近的两个交点,并确定两个交点之间的分段以及分段上的采样点。对于所述分段上的每个采样点,可以基于边界网格的标签确定采样点的标签,以进行后续的计算。仅作为示例,可以确定血管610的边界网格以及光
线与边界网格的两个交点,然后基于边界网格的标签确定这两个交点之间采样点的标签,以计算各个采样点的亮度。在一些实施例中,对于光线上的其他采样点,可以直接基于采样点附近的体素确定该采样点的标签,以进行采样点的计算。例如,对于血管620,可以基于每个采样点附近的体素的标签确定采样点的标签,而不需要借助边界网格。由此,一方面可以基于边界网格对靠近屏幕的组织进行体绘制,提高绘制结果的质量;另一方面,直接基于体素标签对之后的采样点进行体绘制,可以减少需要存储的数据量以及计算量,提高绘制效率。
91.需要注意的是,以上对方法500的描述仅是示例性的目的,而非限制本说明书的范围。对于本领域的技术人员,可以基于本说明书进行任意的变更或修改。在一些实施例中,方法500的步骤并非顺序性的。在一些实施例中,方法500可以包括一个或多个额外的步骤或者方法500的一个或多个步骤可以省略。在一些实施例中,方法500中的至少两个步骤可以合并为一个步骤实现或方法500中的一个步骤可以拆分成两个步骤实现。例如,方法500还可以包括显示体绘制结果的步骤。
92.图6a和图6b分别提供了根据现有方法和根据本说明书一些实施例所示的方法生成的体绘制图像。图6a所示的图像是根据最近邻插值的方法进行体绘制得到的图像。图6b所示的图像是根据本说明书一些实施例所示的方法,基于网格进行体绘制得到的图像。如图6b所示,根据本说明书实施例中描述的方法生成的体绘制图像提供了更好的组织边界信息。例如,图6a所示的血管边界不够光滑、存在锯齿,而图6b所示的血管更加连续光滑。
93.图7是根据本说明书一些实施例所示的示例性体绘制系统的框图。在一些实施例中,体绘制系统700可以包括获取模块710、交点确定模块720以及绘制模块730。在一些实施例中,体绘制系统700可以在处理器140上实现。
94.获取模块710可以用于基于体数据获取组织的边界网格。在一些实施例中,获取模块710可以直接从成像设备获取医学体数据。在一些实施例中,获取模块710可以从本说明书其他地方公开的存储设备(例如,存储器150)中获取所述体数据。在一些实施例中,为了获取组织的边界网格,获取模块710可以对体数据进行分割,确定每个体素对应的组织以及所述组织的标签。基于每个组织的标签,获取模块710可以对体数据进行二值化处理,并基于二值化处理的结果确定该标签对应的组织的边界网格。在一些实施例中,在确定组织的边界网格后,获取模块710还可以对边界网格进行平滑处理,获得平滑后的边界网格。更多关于获取组织边界网格的描述可以参见本说明书图3及其相关描述。
95.交点确定模块720可以用于,对于体绘制中的每一条光线,确定光线与边界网格的交点。在体绘制过程中,可以基于相机参数(例如,相机位置)从屏幕上的每个像素点出发发射一条光线,并沿着光线穿过体数据的路径确定多个采样点以进行采样,得到光线对应的像素点的颜色。在一些实施例中,对于体绘制中的每一条光线,交点确定模块720可以确定所述光线与边界网格的交点。在一些实施例中,组织的边界网格可以由多个网格面片组成。光线与边界网格的交点可以是光线与其中所包含的网格面片的交点。在一些实施例中,交点确定模块720可以基于bvh算法管理组织的边界网格。bvh算法可以包括多个父节点,每个父节点对应一个包围盒,每个父节点中的每个叶节点对应一个或多个网格面片。对于所述每一条光线,交点确定模块720可以判断该光线与父节点是否相交。如果光线与父节点相交,则进一步确定该光线与父节点对应的叶节点的交点。如果光线与父节点不相交,则跳过
该父节点以及该父节点对应的叶节点。更多关于确定光线与边界网格的交点的描述参见本说明书图4及其相关描述。
96.绘制模块730可以用于基于所述交点,确定所述组织的体绘制结果。在一些实施例中,对于每一条光线,基于光线与边界网格的交点,绘制模块730可以将该光线分为多个分段并确定所述多个分段中每个分段的标签。例如,每个组织对应的网格面片可以具有该组织的标签。可以基于与光线相交的网格面片的标签来确定交点的标签。由此,绘制模块730可以基于光线与边界网格的交点,将该光线分为多个分段,并将每个分段对应的交点的标签作为所述分段的标签。进一步地,绘制模块730可以确定沿光线方向的多个采样点。基于每个分段的标签,绘制模块730可以确定多个采样点中每个采样点的标签。进一步地,绘制模块730可以判断每个采样点的标签是否可见。如果所采样点的标签不可见,则跳过该采样点所在分段,进行下一分段的判断。如果采样点的标签可见,则基于该标签对应的渲染参数确定标签可见的采样点对光线的亮度的贡献。进一步地,可以基于标签可见的采样点对光线的亮度的贡献确定每一条光线的亮度。
97.需要注意的是,以上对于处理器140及其模块的描述,仅为描述方便,并不能把本技术限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,图7中所示的获取模块710、交点确定模块720以及绘制模块730可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。再例如,处理器140还可以包括显示模块,用于基于每一条光线的亮度,显示体绘制结果。诸如此类的变形,均在本技术的保护范围之内。
98.本说明书实施例可以实现的有益效果可以包括但不限于:(1)将不同组织的分割的结果通过网格提取出来并进行平滑处理,可以在保留组织之间边界特征的同时,得到更加连续光滑的边界网格,在后续的体绘制过程中,可以提高绘制结果中组织边界的连续性和光滑性,使得绘制结果不受体数据分辨率的影响,进而提高绘制结果的质量以及绘制效率;(2)在基于边界网格进行光照亮度的计算时,对于边界网格附近的采样点,将网格法线作为该采样点的法线,避免了由于体数据的梯度和边界法线不一致导致的光照明暗不均、不够光滑等问题,提高绘制图像的质量;(3)通过bvh算法管理组织的边界网格,在光线与边界网格求交时,不需要判断光线与每个网格面片是否存在交点,避免了光线与网格面片不相交时的冗余计算,减小了光线求交的计算量,提高了光线求交的计算速度。
99.本说明书实施例是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
100.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
101.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
102.尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
103.显然,本领域的技术人员可以对本说明书实施例进行各种改动和变型而不脱离本说明书实施例的精神和范围。这样,倘若本说明书实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1