在三维图像中快速标记目标物的方法和装置的制造方法
【技术领域】
[0001] 本发明涉及三维图像绘制领域,尤其是涉及在三维图像中快速标记目标物的方法 和对应的装置。
【背景技术】
[0002] 多能量X射线安全检查系统,是在单能量X射线安全检查系统的基础上开发的新 型安检系统。它不仅能提供被检物的形状和内容,还能提供反映被检物的有效原子序数的 信息,从而区分被检物是有机物还是无机物,并可以用不同的颜色在彩色监视器上显示出 来,帮助操作人员进行判别。在安检扫描包裹过程中,操作人员希望使用例如3到5秒的时 间快速标记出一个目标物。这就需要在数据的预处理阶段,自动剔除掉空白区域。从而避 免用户经过较长的鼠标拖动行程才能移动标记箭头跨过这些无效的数据区域,拾取出需要 的包括目标物的区域。
[0003] 光线投射(Ray casting)是目前使用最为广泛的体绘制方法[1]。该方法从图像 的每一个像素沿固定方向发射一条光线,光线穿越整个图像序列,并在这个过程中,对图像 序列进行采样和分类获取颜色值,同时依据光线吸收模型将颜色值进行累加,直至光线穿 越整个图像序列,最后得到的颜色值是渲染图像的颜色。
[0004] 在光线投射中,经常用到的一种加速技术是透明区域跳跃(Empty Space Skipping) [2]。现有的透明区域跳跃方法主要针对采用一维传递函数的情况进行加速。这 种方法准确性较差,并且速度较慢。此外,常规的透明区域跳跃方法针对的都是传递函数可 以实时调整的场合。
【发明内容】
[0005] 因此本发明的任务是提供一种在三维图像中快速标记目标物的方法,利用该方法 可以快速、准确地剔除所绘制的三维图像中的透明区域。由于识别目标物在安全检查CT (Computed Tomography,计算机断层扫描造影)系统中广泛使用,因此本发明的任务尤其是 提供一种能够快速、准确地在CT三维图像中标记出目标物的方法。
[0006] 本发明通过提供一种用于在三维图像中标记目标物的方法来解决上述任务。该方 法包括步骤:获得场景的计算机断层造影(CT)图像数据;使用光线投射基于所述CT图像数 据绘制该场景的三维图像;基于固定的二维传递函数来剔除该三维图像中的透明区域;以 及在该三维图像上标记出目标物。
[0007] 根据本发明的实施方式,剔除透明区域包括:构建用于描述所述CT图像数据的三 维空间数据结构的八叉树;遍历该八叉树以确定八叉树的节点是否透明;以及剔除透明节 点。
[0008] 根据本发明的另一实施方式,在剔除透明区域之后生成包围有效区域的层次包围 盒,并基于所获得的层次包围盒生成有效区域轴向包围盒。
[0009] 根据本发明的另一实施方式,将所述有效区域轴向包围盒作为标记目标物的起始 位置。
[0010] 根据本发明的另一实施方式,剔除透明区域还包括与八叉树构建无关地生成透明 度最大值查找表。
[0011] 根据本发明的另一实施方式,构建八叉树包括:设定八叉树高度,并且基于该八叉 树高度向八叉树的每个节点逐层分配所述CT图像数据。
[0012] 根据本发明的另一实施方式,根据节点的最小灰度值、最大灰度值、最小材质值和 最大材质值来确定该节点是否透明。
[0013] 根据本发明的另一实施方式,通过透明度最大值查找表来获得节点的不透明度。
[0014] 使用本发明的标记方法,能够快速、准确地剔除CT图像数据中的透明区域,从而 操作人员可以迅速完成目标区域的标记任务。这既能够提高操作人员的标记效率,也能够 显著地提高目标区域的标记准确率。
【附图说明】
[0015] 图1示出绘制三维图像使用的包围盒的示意图。
[0016] 图2示出标记工具在标记过程中的无效行程的示意图。
[0017] 图3示出根据本发明方法的一个实施例的流程图。
[0018] 图4示出根据该方法一个实施例的描述三维图像空间的数据结构的八叉树的示 意图。
[0019] 图5示出根据本发明方法的一个实施例生成的透明度最大值查找表的示意图。
[0020] 图6示出根据该方法一个实施例的剔除透明区域后的包围盒的示意图。
[0021] 图7示出根据该方法一个实施例的有效区域轴向包围盒的示意图。
[0022] 图8示出采用本发明的方法绘制的三维图像与未采用本发明方法绘制的三维图 像的对比。
【具体实施方式】
[0023] 目前普遍使用光线投射(Ray casting)来绘制三维图像。在光线投射中经常 使用透明区域跳跃来加速绘制。透明区域是指一个数据块(block)中各个体素对应的 α为零。α是指不透明度或阻光度,也就是物体透光的程度。在三维图像绘制中通过查询 传递函数获得&值。在光线投射的合成(Compositing)过程中,《等于零的体素对于最终 的三维图像绘制结果并没有贡献,因此跳过这些体素并且不对其进行采样和合成计算,可 以起到加速的作用。
[0024] 图1示出使用光线投射来绘制三维图像过程中的包围盒的示意图。该包围盒分为 实际包围盒和非透明区域包围盒,线框1为CT数据的实际包围盒,线框2为非透明区域的 轴向包围盒。可以看出,实际包围盒还包括了透明区域。
[0025] 图2示出标记工具在标记过程中的无效行程的示意图。例如在安全检查CT系统 中,通常使用鼠标来标记出目标物。如果不能有效地跳过透明区域,用户就需要较长的鼠标 拖动行程才能移动标记箭头跨过这些无效的数据区域,拾取出需要的目标物区域。
[0026] 图3示出根据本发明方法的一个实施例的流程图。利用该方法,可以快速、准确地 剔除CT数据中的透明区域。
[0027] 在该实施例中,首先在步骤SlOO中采用光线投射绘制CT三维图像。
[0028] 接着在步骤S200中基于CT体数据来构建八叉树。八叉树是一种用于描述三维图 像空间的树状数据结构。八叉树的每个节点表示一个正方体的体积元素。每个节点有八个 子节点,这八个子节点所表示的体积元素加在一起就等于父节点的体积。设定八叉树高度, 根据该高度逐层将体数据剖分给八叉树的各个节点。
[0029] 根据本发明一个实施例的八叉树节点的结构在图4中示例性示出。该示例性的八 叉树节点数据结构类型定义如下: struct OctreeNode { tgt: : vec3 coordllf; //低左前方 tgt::vec3 coordurb; // 上右后方 float minvox; float maxvox; float mingrad; float maxgrad; bool opaque; OctreeNode^ parent; // 父节点 OctreeNode^ Hf; //子节点 OctreeNode^ Irf; OctreeNode* ulf; OctreeNode* urf; OctreeNode^ lib; OctreeNode^ Irb; OctreeNode* ulb; OctreeNode*