《三维图像裁剪方法及装置.pdf》由会员分享,可在线阅读,更多相关《三维图像裁剪方法及装置.pdf(15页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 (43)申请公布日 (21)申请号 201410606287.2 (22)申请日 2014.10.31 G06T 15/30(2011.01) (71)申请人 上海联影医疗科技有限公司 地址 201807 上海市嘉定区嘉定工业区城北 路 2258 号 (72)发明人 吴大 段琦 (54) 发明名称 三维图像裁剪方法及装置 (57) 摘要 一种三维图像裁剪方法及装置, 方法包括 : 对 体数据进行空间划分, 形成位于若干子空间区域 内的子体数据 ; 判断位于子空间区域内的子体数 据在二维平面的投影区域与裁剪区域的位置关 系 : 当投影区域完全被包含于裁剪区域内时, 裁 剪投影。
2、区域对应的子体数据 ; 当投影区域与裁剪 区域部分重叠时, 对投影区域对应的子空间区域 内的子体数据再次空间划分及判断再次划分后的 投影区域与裁剪区域的位置关系, 直至划分后的 投影区域完全被包含于裁剪区域内并被裁剪或当 前节点没有子节点 ; 当投影区域与裁剪区域没有 重叠时, 取消对投影区域所对应的空间区域进行 裁剪处理。 通过所述方法和装置, 可以提高体数据 裁剪的效率。 (51)Int.Cl. (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书8页 附图3页 (10)申请公布号 CN 104463942 A (43)申请公布日 2015.03.25 CN 。
3、104463942 A 1/3 页 2 1. 一种三维图像裁剪方法, 其特征在于, 包括 : 提供三维图像体数据及裁剪区域, 对所述体数据进行空间划分, 形成位于若干子空间 区域内的子体数据 ; 提供基于视角的二维平面, 并判断位于所述子空间区域内的子体数据在所述二维平面 的投影区域与所述裁剪区域的位置关系 : 当所述投影区域完全被包含于所述裁剪区域内时, 裁剪所述投影区域对应的子体数 据 ; 当所述投影区域与所述裁剪区域部分重叠时, 对所述投影区域对应的子空间区域内的 子体数据再次空间划分及判断再次划分后的投影区域与裁剪区域的位置关系, 直至划分后 的投影区域完全被包含于所述裁剪区域内并被裁。
4、剪或当前节点没有子节点时, 则对应的空 间划分终止 ; 当所述投影区域与所述裁剪区域没有重叠时, 取消对所述投影区域所对应的空间区域 进行裁剪处理。 2. 如权利要求 1 所述的三维图像裁剪方法, 其特征在于, 所述对所述体数据进行空间 划分包括 : 对所述体数据进行八叉树空间划分。 3. 如权利要求 1 所述的三维图像裁剪方法, 其特征在于, 判断位于所述子空间区域内 的体数据在所述二维平面的投影区域与所述裁剪区域的位置关系, 包括获取投影区域对应 的投影点, 所述投影点包括 : 将经过空间划分的所述体数据对应的节点放入存储空间中并作为当前节点 ; 计算所述存储空间中当前节点所对应空间区域的。
5、顶点在二维平面上的投影点。 4. 如权利要求 3 所述的三维图像裁剪方法, 其特征在于, 所述对所述投影区域对应的 子空间区域内的子体数据再次空间划分及判断再次划分后的投影区域与裁剪区域的位置 关系, 直至划分后的投影区域完全被包含于所述裁剪区域内并被裁剪, 则对应的空间划分 终止包括 : 将所述当前节点的子节点放入所述存储空间, 得到新的当前节点 ; 重新计算所述当前节点的所有顶点在二维平面上的投影点 ; 判断所述当前节点的所有顶点在二维平面上的投影点所组成的投影区域与所述裁剪 区域的位置关系 ; 当所述当前节点所对应空间区域的所有顶点所组成的投影区域与所述裁 剪区域部分重叠时, 将所述当前。
6、节点的子节点放入所述存储空间, 得到新的当前节点, 重新 计算所述当前节点的所有顶点在二维平面上的投影点, 并判断所述当前节点的所有顶点在 二维平面上的投影点所组成的投影区域与所述裁剪区域的位置关系, 直至所述当前节点没 有子节点。 5. 如权利要求 4 所述的三维图像裁剪方法, 其特征在于, 还包括 : 当所述当前节点没有 子节点时, 计算所述子节点所对应空间区域的所有体素在二维平面上的投影, 并判断所述 体素的投影区域与所述裁剪区域的位置关系, 直到遍历完所述子节点的所有体素。 6. 如权利要求 1 所述的三维图像裁剪方法, 其特征在于, 所述裁剪当前节点所对应的 空间区域包括 : 遍历所。
7、述节点的所有体素, 并对所述体素标记需要被裁剪修改的标记数据。 7. 如权利要求 1 所述的三维图像裁剪方法, 其特征在于, 所述裁剪当前节点所对应的 权 利 要 求 书 CN 104463942 A 2 2/3 页 3 空间区域包括 : 遍历所述当前节点对应的空间区域中的所有体素, 并标记所述空间区域中待裁剪的体 素 ; 当进行图像渲染时, 跳过所述被标记的体素, 或者对所述被标记的体素按照预设的显 示参数进行处理。 8. 一种三维图像裁剪装置, 其特征在于, 包括 : 划分单元, 提供三维图像体数据及裁剪区域, 对所述体数据进行空间划分, 形成位于若 干子空间区域内的子体数据 ; 判断单元。
8、, 提供基于视角的二维平面, 并判断位于所述子空间区域内的子体数据在所 述二维平面的投影区域与所述裁剪区域的位置关系 ; 裁剪单元, 当所述投影区域完全被包含于所述裁剪区域内时, 裁剪所述投影区域对应 的子体数据 ; 控制单元, 用于当所述投影区域与所述裁剪区域部分重叠时, 对所述投影区域对应的 子空间区域内的子体数据再次空间划分及判断再次划分后的投影区域与裁剪区域的位置 关系, 直至划分后的投影区域完全被包含于所述裁剪区域内并被裁剪或当前节点没有子节 点时, 则对应的空间划分终止 ; 取消单元, 用于当所述投影区域与所述裁剪区域没有重叠时, 取消对所述投影区域所 对应的空间区域进行裁剪处理。。
9、 9. 如权利要求 8 所述的三维图像裁剪装置, 其特征在于, 所述划分单元, 用于对所述体 数据进行八叉树空间划分。 10. 如权利要求 8 所述的三维图像裁剪装置, 其特征在于, 所述判断单元包括 : 获取子单元, 用于获取投影区域对应的投影点 ; 所述获取子单元包括 : 放入模块, 用于将经过空间划分的所述体数据对应的节点放入存储空间中并作为当前 节点 ; 计算模块, 用于计算所述存储空间中当前节点所对应空间区域的顶点在二维平面上的 投影点。 11. 如权利要求 10 所述的三维图像裁剪装置, 其特征在于, 所述控制单元包括 : 放入子单元, 将所述当前节点的子节点放入所述存储空间, 得。
10、到新的当前节点 ; 第一计算子单元, 用于重新计算所述当前节点的所有顶点在二维平面上的投影点 ; 判断子单元, 判断所述当前节点的所有顶点在二维平面上的投影点所组成的投影区域 与所述裁剪区域的位置关系 ; 第二计算子单元, 用于当所述当前节点所对应空间区域的所有顶点所组成的投影区域 与所述裁剪区域部分重叠时, 将所述当前节点的子节点放入所述存储空间, 得到新的当前 节点, 重新计算所述当前节点的所有顶点在二维平面上的投影点, 并判断所述当前节点的 所有顶点在二维平面上的投影点所组成的投影区域与所述裁剪区域的位置关系, 直至所述 当前节点没有子节点。 12. 如权利要求 11 所述的三维图像裁剪。
11、装置, 其特征在于, 所述控制单元还包括 : 计算模块, 用于当所述当前节点没有子节点时, 计算所述子节点所对应空间区域的所 有体素在二维平面上的投影 ; 权 利 要 求 书 CN 104463942 A 3 3/3 页 4 判断模块, 用于判断所述体素的投影区域与所述裁剪区域的位置关系, 直到遍历完所 述子节点的所有体素。 权 利 要 求 书 CN 104463942 A 4 1/8 页 5 三维图像裁剪方法及装置 技术领域 0001 本发明涉及图像处理技术领域, 尤其涉及一种三维图像裁剪方法及装置。 背景技术 0002 用户在观察医疗数据的三维显示图像时, 经常需要去掉一些不关心的部位或组。
12、 织, 比如需要去掉头骨来看脑部血管的信息, 这时就需要借助裁剪工具进行操作。 对于三维 图像来说, 裁剪的效率和精度对于用户体验来说往往是至关重要的, 尤其当体数据的数据 量较大时, 裁剪装置的性能尤其重要。 0003 现有技术的裁剪方法, 是通过对空间划分后的体数据做投影以区分需要裁剪的区 域。 但是这种方法在实际应用中, 从起初的最大的体数据开始, 一直到最小划分的体数据逐 步投影, 会存在很多的冗余计算, 使得操作的执行时间太长, 效率不够高。 另一方面, 如果精 度划分得不够精细, 则对于小于最小划分空间区域的体数据区域, 则可能会出现裁剪不掉 的问题。例如, 如果最小划分的体数据精。
13、度在 1cm, 则一般只能处理 1cm 以上大小维度的操 作, 而小于 1cm 的 ( 比如 2mm) 大小维度的裁剪操作就无法处理了。 发明内容 0004 本发明实施例解决的问题是如何提高体数据裁剪的效率。 0005 为解决上述问题, 本发明实施例提供一种三维图像裁剪方法, 包括 : 提供三维图像 体数据及裁剪区域, 对所述体数据进行空间划分, 形成位于若干子空间区域内的子体数据 ; 提供基于视角的二维平面, 并判断位于所述子空间区域内的子体数据在所述二维平面的投 影区域与所述裁剪区域的位置关系 : 当所述投影区域完全被包含于所述裁剪区域内时, 裁 剪所述投影区域对应的子体数据 ; 当所述投。
14、影区域与所述裁剪区域部分重叠时, 对所述投 影区域对应的子空间区域内的子体数据再次空间划分及判断再次划分后的投影区域与裁 剪区域的位置关系, 直至划分后的投影区域完全被包含于所述裁剪区域内并被裁剪或当前 节点没有子节点时, 则对应的空间划分终止 ; 当所述投影区域与所述裁剪区域没有重叠时, 取消对所述投影区域所对应的空间区域进行裁剪处理。 0006 可选的, 所述对所述体数据进行空间划分包括 : 对所述体数据进行八叉树空间划 分。 0007 可选的, 判断位于所述子空间区域内的体数据在所述二维平面的投影区域与所述 裁剪区域的位置关系, 包括获取投影区域对应的投影点, 所述投影点包括 : 将经过。
15、空间划分 的所述体数据对应的节点放入存储空间中并作为当前节点 ; 计算所述存储空间中当前节点 所对应空间区域的顶点在二维平面上的投影点。 0008 可选的, 所述对所述投影区域对应的子空间区域内的子体数据再次空间划分及判 断再次划分后的投影区域与裁剪区域的位置关系, 直至划分后的投影区域完全被包含于所 述裁剪区域内并被裁剪, 则对应的空间划分终止包括 : 将所述当前节点的子节点放入所述 存储空间, 得到新的当前节点 ; 重新计算所述当前节点的所有顶点在二维平面上的投影点 ; 说 明 书 CN 104463942 A 5 2/8 页 6 判断所述当前节点的所有顶点在二维平面上的投影点所组成的投影。
16、区域与所述裁剪区域 的位置关系 ; 当所述当前节点所对应空间区域的所有顶点所组成的投影区域与所述裁剪区 域部分重叠时, 将所述当前节点的子节点放入所述存储空间, 得到新的当前节点, 重新计算 所述当前节点的所有顶点在二维平面上的投影点, 并判断所述当前节点的所有顶点在二维 平面上的投影点所组成的投影区域与所述裁剪区域的位置关系, 直至所述当前节点没有子 节点。 0009 可选的, 当所述当前节点没有子节点时, 计算所述子节点所对应空间区域的所有 体素在二维平面上的投影, 并判断所述体素的投影区域与所述裁剪区域的位置关系, 直到 遍历完所述子节点的所有体素。 0010 可选的, 所述裁剪当前节点。
17、所对应的空间区域包括 : 遍历所述节点的所有体素, 并 对所述体素标记需要被裁剪修改的标记数据。 0011 可选的, 所述裁剪当前节点所对应的空间区域包括 : 遍历所述当前节点对应的空 间区域中的所有体素, 并标记所述空间区域中待裁剪的体素 ; 当进行图像渲染时, 跳过所述 被标记的体素, 或者对所述被标记的体素按照预设的显示参数进行处理。 0012 为了解决上述的技术问题, 本发明实施例还公开了一种三维图像裁剪装置, 包括 : 划分单元, 提供三维图像体数据及裁剪区域, 对所述体数据进行空间划分, 形成位于若干子 空间区域内的子体数据 ; 判断单元, 提供基于视角的二维平面, 并判断位于所述。
18、子空间区域 内的子体数据在所述二维平面的投影区域与所述裁剪区域的位置关系 ; 裁剪单元, 当所述 投影区域完全被包含于所述裁剪区域内时, 裁剪所述投影区域对应的子体数据 ; 控制单元, 用于当所述投影区域与所述裁剪区域部分重叠时, 对所述投影区域对应的子空间区域内的 子体数据再次空间划分及判断再次划分后的投影区域与裁剪区域的位置关系, 直至划分后 的投影区域完全被包含于所述裁剪区域内并被裁剪或当前节点没有子节点时, 则对应的空 间划分终止 ; 取消单元, 用于当所述投影区域与所述裁剪区域没有重叠时, 取消对所述投影 区域所对应的空间区域进行裁剪处理。 0013 可选的, 所述划分单元, 用于对。
19、所述体数据进行八叉树空间划分。 0014 可选的, 所述判断单元包括 : 获取子单元, 用于获取投影区域对应的投影点 ; 所述 获取子单元包括 : 放入模块, 用于将经过空间划分的所述体数据对应的节点放入存储空间 中并作为当前节点 ; 计算模块, 用于计算所述存储空间中当前节点所对应空间区域的顶点 在二维平面上的投影点。 0015 可选的, 所述控制单元包括 : 放入子单元, 将所述当前节点的子节点放入所述存储 空间, 得到新的当前节点 ; 第一计算子单元, 用于重新计算所述当前节点的所有顶点在二维 平面上的投影点 ; 判断子单元, 判断所述当前节点的所有顶点在二维平面上的投影点所组 成的投影。
20、区域与所述裁剪区域的位置关系 ; 第二计算子单元, 用于当所述当前节点所对应 空间区域的所有顶点所组成的投影区域与所述裁剪区域部分重叠时, 将所述当前节点的子 节点放入所述存储空间, 得到新的当前节点, 重新计算所述当前节点的所有顶点在二维平 面上的投影点, 并判断所述当前节点的所有顶点在二维平面上的投影点所组成的投影区域 与所述裁剪区域的位置关系, 直至所述当前节点没有子节点。 0016 可选的, 所述控制单元还包括 : 计算模块, 用于当所述当前节点没有子节点时, 计 算所述子节点所对应空间区域的所有体素在二维平面上的投影 ; 判断模块, 用于判断所述 说 明 书 CN 104463942。
21、 A 6 3/8 页 7 体素的投影区域与所述裁剪区域的位置关系, 直到遍历完所述子节点的所有体素。 0017 与现有技术相比, 本发明实施例的技术方案具有以下优点 : 0018 对体数据做空间划分, 并将划分后的空间体数据的顶点进行平面投影, 通过判断 投影平面上投影区和裁剪区域的位置关系来计算被裁剪掉的体数据。 由于在计算裁剪区域 时不必逐一对每个体素求投影, 而是利用八叉树的空间结构, 只将划分后体数据块的顶点 根据视角位置投影到平面, 将三维空间的裁剪判定计算转换为在二维投影平面上的判定计 算, 因此很大程度上减少了运算量, 大幅提高了运算速度, 解决了裁剪性能问题。 0019 进一步。
22、, 由于是根据裁剪区域和投影区域位置关系确定被裁体数据的划分精度, 裁剪可以精确到体素级, 因此避免了体数据区域裁剪不掉的问题。 附图说明 0020 图 1 是本发明实施例中一种三维图像裁剪方法的流程图 ; 0021 图 2 是本发明另一实施例中一种三维图像裁剪方法的流程图 ; 0022 图 3 是本发明实施例中一种三维图像裁剪装置的结构示意图。 具体实施方式 0023 现有技术中, 对三维图像裁剪方法, 主要是通过对空间划分后的体数据做投影以 区分需要裁剪的区域。但是这种方法在实际应用中, 从起初的最大的体数据开始, 一直到 最小划分的体数据逐步投影, 会存在很多的冗余计算, 使得操作的执行。
23、时间太长, 效率不够 高。另一方面, 如果精度划分得不够精细, 则对于小于最小划分空间区域的体数据区域, 则 可能会出现裁剪不掉的问题。例如, 如果最小划分的体数据精度在 1cm, 则一般只能处理 1cm 以上大小维度的操作, 而小于 1cm 的 ( 比如 2mm) 大小维度的裁剪操作就无法处理了。 0024 为了解决上述的技术问题, 本发明实施例公开了一种三维图像裁剪方法, 对体数 据做空间划分, 并将划分后的空间体数据的顶点进行平面投影, 通过判断投影平面上投影 区和裁剪区域的位置关系来计算被裁剪掉的体数据。 由于在计算裁剪区域时不必逐一对每 个体素求投影, 而是利用划分后的空间结构, 只。
24、将划分后体数据块的顶点根据视角位置投 影到平面, 从而可以将三维空间的裁剪判定计算转换为在二维投影平面上的判定计算, 因 此很大程度上减少了运算量, 大幅提高了运算速度, 解决了裁剪性能问题 ; 同时, 又由于是 根据裁剪区域和投影区域位置关系确定被裁体数据的划分精度, 因此避免了体数据区域裁 剪不掉的问题, 解决了效率和精度难以兼顾的问题。 0025 为使本发明的上述目的、 特征和优点能够更为明显易懂, 下面结合附图对本发明 的具体实施例做详细的说明。 0026 图 1 示出了本发明实施例中的一种三维图像裁剪方法的流程图。如图 1 所示的三 维图像裁剪方法, 可以包括 : 0027 步骤 S。
25、101, 提供三维图像体数据及裁剪区域, 对所述体数据进行空间划分, 形成位 于若干子空间区域内的子体数据。 0028 上述的裁剪区域是根据与用户交互的过程中, 由用户给定的范围。 具体来说, 当对 所述三维图像的数据进行可视化呈现时, 用户可以通过鼠标或手写笔等外设在显示的图像 界面上描绘出希望进行裁剪的目标区域的边界或范围。根据用户的输入信息, 即可得到所 说 明 书 CN 104463942 A 7 4/8 页 8 述裁剪区域。 0029 上述的体数据是三维空间中沿轴向延伸的立方体区域所对应的数据信息。 通过一 定的空间划分算法可以按照需要对所述三维图像的体数据进行划分管理, 进而形成对。
26、应三 维空间中若干子空间区域内的子体数据。 0030 步骤 S102, 提供基于视角的二维平面, 并判断位于所述子空间区域内的子体数据 在所述二维平面的投影区域与所述裁剪区域的位置关系。 0031 所述视角为对所述三维图像的数据进行可视化呈现, 并由用户确定裁剪区域时的 视角, 因此所述裁剪区域位于基于所述视角所确定的二维平面上。 0032 在具体实施中, 判断位于所述子空间区域内的子体数据在所述二维平面的投影区 域与所述裁剪区域的位置关系可以包括 : 首先获取投影区域所对应的投影点, 从而根据所 述投影点形成所述投影区域。 0033 在上述的具体实例中, 所述投影点可以通过以下步骤获取 : 。
27、将经过空间划分的所 述体数据对应的节点放入存储空间中并作为当前节点, 并基于当前视角, 计算所述存储空 间中当前节点所对应空间区域的顶点在二维平面上的投影点。 0034 经过空间划分后, 所述三维图像体数据被划分为相互之间具有特定关系的数据节 点 ( 包括相应的数据域和指针域 ) 的集合。根据数据节点集合之间的顺序关系, 即可实现 对所述三维图像的完全遍历, 并计算出所述三维图像的子空间区域在所二维平面上的投影 点以及投影区域, 进而根据所述投影区域与所述裁剪区域的位置关系, 判断其是否属于需 要裁剪的内容。 0035 步骤 S103, 当所述投影区域完全被包含于所述裁剪区域内时, 裁剪所述投。
28、影区域 对应的子体数据。 0036 当对当前数据节点经计算后得到的投影区域被所述裁剪区域完全包含时, 判定子 体数据所对应的子空间区域属于需要被裁剪去除的部分, 因此对该部分子体数据执行相应 的裁剪操作。 0037 在具体实施中, 所述裁剪操作可以是遍历所述节点的所有体素, 并对所述体素标 记需要被裁剪修改的标记数据, 所述标记数据用于标记该体素是否被裁剪。在三维图像绘 制显示时, 体绘制结果由原始体数据和所述标记数据来确定。例如, 标记数据可以设置 0 表 示被裁剪, 设置 1 表示不被裁剪, 根据所述标记数据是 0 还是 1 确定该点体数据是否被显 示, 不被显示的部分在用户看来相当于被裁。
29、剪掉了, 从而实现了裁剪的效果。 0038 在具体实施中, 所述裁剪操作还可以是遍历所述当前节点对应的空间区域中的所 有体素, 并标记所述空间区域中待裁剪的体素。当进行图像渲染时, 跳过所述被标记的体 素, 或者对所述被标记的体素按照预设的显示参数, 例如在颜色表中预设颜色, 进行隐藏处 理。 0039 步骤 S104, 当所述投影区域与所述裁剪区域部分重叠时, 对所述投影区域对应的 子空间区域内的子体数据再次空间划分及判断再次划分后的投影区域与裁剪区域的位置 关系, 直至划分后的投影区域完全被包含于所述裁剪区域内并被裁剪或当前节点没有子节 点时, 则对应的空间划分终止 ; 0040 当对当前。
30、数据节点计算后得到的投影区域与所述裁剪区域部分重叠时, 判定子体 数据所对应的子空间区域中存在属于需要被裁剪去除的部分, 也有不需要被裁剪去除的部 说 明 书 CN 104463942 A 8 5/8 页 9 分, 因此需要将当前的子空间区域进一步划分。即将当前子空间区域所对应节点的子节点 放入存储空间中, 以判断该子节点所对应更小的空间区域是否需要被裁剪。 0041 循环执行上述的计算和判定步骤, 直至找到需要被完全裁剪的空间区域, 即划分 后的投影区域完全被包含于所述裁剪区域内, 并执行相应的裁剪操作 ; 或根据所述步骤 S101 的空间划分算法后的当前节点为叶子节点, 不存在子节点。 0。
31、042 在具体实施中, 当所述当前节点没有子节点时, 可以计算所述子节点所对应空间 区域的所有体素在二维平面上的投影, 并判断所述体素的投影区域与所述裁剪区域的位置 关系, 直到遍历完所述子节点的所有体素。 0043 步骤 S105, 当所述投影区域与所述裁剪区域没有重叠时, 取消对所述投影区域所 对应的空间区域进行裁剪处理。 0044 当对当前数据节点经计算后得到的投影区与所述裁剪区域没有重叠时, 判定子体 数据所对应的子空间区域不属于需要被裁剪去除的部分, 因此不对该部分子体数据执行相 应的裁剪操作。 0045 在具体实施中, 可以采用如上述步骤 S103 的裁剪方法, 如将标记数据设置为。
32、 1, 表 示所述体数据不被裁剪。 0046 本发明实施例的一种三维图像的裁剪方法, 通过判断投影平面上投影区和裁剪区 域的位置关系来判断体数据是否要进行裁剪, 将现有技术中三维空间的裁剪判定计算转换 为在二维投影平面上的判定计算, 从而避免了许多冗余计算, 提高了效率。 同时又由于是根 据裁剪区域和投影区域位置关系逐步确定被裁体数据的划分精度, 最终可以通过小体积的 体素进行判断, 因此避免了三维图像的部分空间区域裁剪不掉的问题, 同时解决了效率和 精度难以兼顾的问题。 0047 本发明实施例还公开了另一种三维图像裁剪方法, 如图 2 所示, 所述三维图像裁 剪方法包括 : 0048 步骤 。
33、S201, 提供三维图像体数据及裁剪区域, 对所述体数据按照八叉树进行数据 划分进行空间划分, 形成位于若干子空间区域内的子体数据。 0049 与上述实施例的步骤 S101 区别在于, 本实施例对所述体数据的空间划分是按照 八叉树进行划分的。八叉树的数据结构是三维数据的压缩形式, 该数据结构将所要表示的 三维空间按 X、 Y、 Z 轴向进行分割, 形成八个立方体, 然后根据每个立方体的划分目标来决 定对各立方体是否需要继续进行八等分的划分, 或者可以一直划分到大小成为预设的体素 大小为止。 0050 可以理解的是, 本发明对所述体数据的空间划分并不仅局限于按照八叉树算法进 行划分, 也可以通过。
34、其他的划分算法进行空间划分。因此本发明实施例中八叉树算法的应 用并不限制本发明的保护范围。 0051 步骤 S202, 将八叉树的根节点放入所述存储空间中。 0052 在具体实施中, 所述存储空间可以是堆栈。 为了说明方便, 下文将以堆栈为例进行 说明。但是可以理解的是, 其并不限制本发明实施例的保护范围。本发明实施例中的存储 空间也可以是其他结构形式, 例如可以是队列等。 0053 步骤 S203, 判断所述存储空间是否为空。 0054 当所述存储空间为空时, 说明当前不存在节点, 则三维图像的裁剪流程结束。 当所 说 明 书 CN 104463942 A 9 6/8 页 10 述存储空间不。
35、为空时, 则取出所述堆栈中的栈顶节点, 并进入步骤 S204。 0055 步骤 S204, 提供基于视角的二维平面, 并计算所述栈顶节点的顶点在所述二维平 面上的投影点。 0056 步骤 S205, 检测所述投影点是否都位于所述裁剪区域内。 0057 当所述投影点都位于所述裁剪区域内时, 判定此时的节点所对应的空间区域都属 于需要被裁剪去除的部分, 并进入步骤S206。 当所述投影点并非都位于所述裁剪区域内时, 判定此时的节点所对应的空间区域中存在不需要裁剪去除的部分, 并进入步骤 S207。 0058 步骤 S206, 裁剪所述投影区域对应的子体数据。 0059 在具体实施中, 所述步骤 S。
36、206 可以采取与图 1 所示实施中步骤 S103 相同的裁剪 方式, 此处不再赘述。 0060 当完成执行所述步骤 S206 后, 返回步骤 S203, 检测当前堆栈中是否存在数据元 素, 并循环执行后续步骤。 0061 步骤 S207, 检测所述投影点是否都位于所述裁剪区域外。 0062 由于当所述投影点均位于所述裁剪区域之外时, 由所述投影点所形成的投影区域 与所述裁剪区域存在不相交或者所述裁剪区域包含于所述投影区域两种情况, 因此可进入 步骤 S208 进一步判定当前节点的体数据所对应的空间区域是否存在需要裁剪的部分。 0063 当所述投影点并非都位于所述裁剪区域时, 判定当前节点所对。
37、应的空间区域存在 需要裁剪的部分, 也存在不需要裁剪的部分, 并进入步骤 S209。 0064 步骤 S208, 计算所述投影点的投影区域, 并判断所述投影区域与所述裁剪区域是 否相交。 0065 在具体实施中, 为了简化计算, 可以计算所述投影点的最大投影区域。即选取 8 个 投影点中横坐标的最大值和最小值以及纵坐标的最大值和最小值, 从而形成矩形的投影区 域。 0066 当所述投影区域与所述裁剪区域相交时, 即所述裁剪区域完全包含于所述投影区 域时, 判定子体数据所对应的子空间区域中存在属于需要被裁剪去除的部分, 并进入步骤 S209。 0067 当所述投影区域与所述裁剪区域不相交时, 判。
38、定当前节点的体数据所对应的空间 区域不属于需要被裁剪去除的部分, 并进入步骤 S210。 0068 步骤 S209, 检测当前的节点是否为叶子节点。 0069 当检测到当前的节点为叶子节点时, 进入步骤 S211。当检测到当前的节点不是叶 子节点时, 则进入步骤 S212。 0070 步骤 S210, 取消对所述投影区域所对应的空间区域进行裁剪处理。 0071 在具体实施中, 所述步骤 S210 可以采取与图 1 所示实施中步骤 S105 相同的取消 裁剪的方式, 此处不再赘述。 0072 步骤 S211, 遍历当前节点的所有体素, 逐点判断体素的投影点与所述裁剪区域的 关系。 0073 判断。
39、体素的投影点与所述裁剪区域的关系与通过步骤S204步骤S210判断节点 的投影点与所述裁剪区域的关系相似, 即通过对体素在二维平面上做投影, 判断其投影区 域与裁剪区域的位置关系。当判定体素为需要裁剪的部分时, 则对体素执行相应的裁剪操 说 明 书 CN 104463942 A 10 7/8 页 11 作 ; 当判定体素为不需要裁剪的部分时, 取消对体素执行相应的裁剪操作。 由于检测可以被 精确到体素级, 因此避免了体数据区域裁剪不掉的问题。 0074 步骤 S212, 将当前节点的子节点放入堆栈中。 0075 将所述当前节点的子节点放入所述存储空间, 得到新的当前节点, 返回步骤 S203 。
40、并循环执行前述步骤, 即重新计算所述当前节点的所有顶点在二维平面上的投影点, 并判 断所述当前节点的所有顶点在二维平面上的投影点所组成的投影区域与所述裁剪区域的 位置关系, 直至所述当前节点没有子节点。 0076 本发明实施例还公开了一种三维图像裁剪装置, 如图 3 所示, 所述三维图像裁剪 装置可以包括 : 0077 划分单元 301, 提供三维图像体数据及裁剪区域, 对所述体数据进行空间划分, 形 成位于若干子空间区域内的子体数据 ; 0078 判断单元 302, 提供基于视角的二维平面, 并判断位于所述子空间区域内的子体数 据在所述二维平面的投影区域与所述裁剪区域的位置关系 ; 0079。
41、 裁剪单元 303, 当所述投影区域完全被包含于所述裁剪区域内时, 裁剪所述投影区 域对应的子体数据 ; 0080 控制单元 304, 用于当所述投影区域与所述裁剪区域部分重叠时, 对所述投影区域 对应的子空间区域内的子体数据再次空间划分及判断再次划分后的投影区域与裁剪区域 的位置关系, 直至划分后的投影区域完全被包含于所述裁剪区域内并被裁剪或当前节点没 有子节点时, 则对应的空间划分终止 ; 0081 取消单元 305, 用于当所述投影区域与所述裁剪区域没有重叠时, 取消对所述投影 区域所对应的空间区域进行裁剪处理。 0082 在具体实施中, 所述划分单元 303, 用于对所述体数据进行八叉。
42、树空间划分。 0083 在具体实施中, 所述判断单元 302 可以包括 : 获取子单元, 用于获取投影区域对应 的投影点 ; 0084 所述获取子单元包括 : 放入模块, 用于将经过空间划分的所述体数据对应的节点 放入存储空间中并作为当前节点 ; 计算模块, 用于计算所述存储空间中当前节点所对应空 间区域的顶点在二维平面上的投影点。 0085 在具体实施中, 所述控制单元 304 可以包括 : 放入子单元, 将所述当前节点的子节 点放入所述存储空间, 得到新的当前节点 ; 第一计算子单元, 用于重新计算所述当前节点的 所有顶点在二维平面上的投影点 ; 判断子单元, 判断所述当前节点的所有顶点在。
43、二维平面 上的投影点所组成的投影区域与所述裁剪区域的位置关系 ; 第二计算子单元, 用于当所述 当前节点所对应空间区域的所有顶点所组成的投影区域与所述裁剪区域部分重叠时, 将所 述当前节点的子节点放入所述存储空间, 得到新的当前节点, 重新计算所述当前节点的所 有顶点在二维平面上的投影点, 并判断所述当前节点的所有顶点在二维平面上的投影点所 组成的投影区域与所述裁剪区域的位置关系, 直至所述当前节点没有子节点。 0086 在具体实施中, 所述控制单元 304 还可以包括 : 计算模块, 用于当所述当前节点没 有子节点时, 计算所述子节点所对应空间区域的所有体素在二维平面上的投影 ; 判断模块,。
44、 用于判断所述体素的投影区域与所述裁剪区域的位置关系, 直到遍历完所述子节点的所有 体素。 说 明 书 CN 104463942 A 11 8/8 页 12 0087 在具体实施中, 所述控制单元 304 还可以包括 : 计算模块, 用于当所述当前节点没 有子节点时, 计算所述子节点所对应空间区域的所有体素的顶点在二维平面上的投影点 ; 判断模块, 用于判断所述体素的投影区域与所述裁剪区域的位置关系, 直到遍历完所述子 节点的所有体素。 0088 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成, 该程序可以存储于计算机可读存储介质中, 存储介 质可以包括 : ROM、 RAM、 磁盘或光盘等。 0089 虽然本发明披露如上, 但本发明并非限定于此。 任何本领域技术人员, 在不脱离本 发明的精神和范围内, 均可作各种更动与修改, 因此本发明的保护范围应当以权利要求所 限定的范围为准。 说 明 书 CN 104463942 A 12 1/3 页 13 图 1 说 明 书 附 图 CN 104463942 A 13 2/3 页 14 图 2 说 明 书 附 图 CN 104463942 A 14 3/3 页 15 图 3 说 明 书 附 图 CN 104463942 A 15 。