目录

气缸盖的图像分割

本教程将使用单缸摩托车发动机的工业 CT 扫描数据展示如何使用 3D 编辑和其他工具、滤波器等精准分割气缸盖和配件掩膜。

本教程所用数据:Cylinder_Head.raw

1. 导入图像数据

1. 在软件欢迎页点击 Stack or raw images。

2. 在 Import images 对话框:

3. 数据加载后,点击 View — 2D slice views — Orientations,选择 Classic。

2. 可视化图像数据

调整体积渲染设置更清晰地展示数据。

更改体积渲染设置

  1. 如果背景体积渲染没有显示,请确认是否打开了彩色立方体的渲染按钮。
  2. 点击 3D 视图工具栏的 Background volume rendering settings 按钮,打开 Background volume rendering 对话框。
  3. 点击 Auto set 应用默认设置。
  4. 点击并拖拽控制点调整图像数据的 Opacity 和 Colour 映射,如下图绿色的气缸盖和黄色的配件。
  5. 点击 Close 关闭 Background volume rendering 对话框。

该发动机的 CT 扫描中灰度较高的区域表示质量密度较高的配件,而灰度较低的区域表示质量密度较低的气缸盖。Background volume rendering 可以快速可视化数据,确定零件的数量及其在 3D 中的位置。气缸盖和配件将会被分割成单独的掩膜。

3. 分割气缸盖

3.1 阈值分割气缸盖

1. 点击 Image processing — Segmentation —Threshold,通过设置灰度值范围创建掩膜,可以在 2D 切片视图使用 Profile line 确定所需范围。

2. 在 Threshold 工具面板:

3. 在创建轮廓线之前,将 XZ 2D 视图最大化并滑动至第 205 张切片。

4. 为创建轮廓线分析灰度值,在 2D 切片视图中依次点击两个位置(或单击并拖动)画线。这条线应跨越气缸盖的一部分(中灰色)、高密度环(白色)和周围的空气(黑色)。

5. 在 Threshold 工具的 Profile line 区域:

6. 点击 Apply 创建新掩膜。

使用阈值工具创建的 Mask 1 中包含了指定灰度范围内的所有像素,右键点击 Dataset browser 下方的 Mask 1,选择 Rename 重命名为 Cylinder_Head。

3.2 可视化气缸盖

1. 返回至 2D 和 3D 视图同时显示的布局页面。

2. 打开 3D 视图上方的 Live 3D 按钮生成 3D 模型的实时预览。

3. 气缸盖的初始分割应如下所示。

4. 旋转查看模型,在螺栓孔周围有几个区域需要处理。首先,填充下图突出显示 4 个螺栓孔周围的间隙。由于 Cylinder_Head 掩膜在这些区域接触到了图像的边界,可以采用 Fill gaps 工具检测图像边界并自动填充间隙。

3.3 填充螺栓孔周围的间隙

1. 点击 Image processing — Additional — Fill gaps。

2. 在 Fill gaps 工具:

3. 在下图中,间隙已被填充且螺栓孔并不受影响。另外,此操作还填充了掩膜中任何体素低于 250 的内部空腔/空隙。

剩余的螺栓孔仍还有一些区域需要处理,如下所示。

在阈值分割的过程中,还包含了一些高灰度值配件的体素,它们的部分体积与气缸盖具有相同的灰度强度。通过应用 3D editing 工具可以删除这些不需要的区域,同时处理剩余的螺栓孔。

将滤波器应用于整个掩膜可能并不总是合适的,如当模型中存在不应改变的具有较薄特征或高度精细区域时。在这些情况下,可以使用 3D editing 工具将滤波器应用在掩膜的特定子区域。该工具可以使用感兴趣区域(ROI)在 3D 视图突出显示选定区域,即滤波器的应用范围。在本示例中,为使用 3D editing 工具的掩膜感兴趣区域功能,将先分割出配件的占位掩膜,如此便可以在气缸盖掩膜特定区域应用滤波器。

3.4 分割占位配件掩膜

1. 双击 Dataset browser 的 Masks 创建新的空白掩膜。

2. 右键新掩膜重命名为 Placeholder_Fittings。

3. 右键 Placeholder_Fittings 选择 Isolate,只显示该掩膜。

4. 点击 Image processing — Segmentation — Threshold。

5. 在 Threshold 工具:

6. 点击 Image processing — Morphological — Dilate。

7. 在 Dilate 工具,勾选 Cubic/isotropic values,设置 X radius (pixels) 数值为 1,点击 Apply。

3.5 创建掩膜 ROI

1. 将 3D 视图最大化。

2. 点击 Image processing — Segmentation — 3D editing — Advanced 3D editing。

3. 在 Advanced 3D editing 工具面板:

默认情况下,点击 3D 视图中的掩膜区域将为单个选定区域创建新的掩膜 ROI。通过同时按住 Ctrl 键,点击一个掩膜区域将会把掩膜的所有区域添加到掩膜 ROI。

3.6 使用 Advanced 3D editing 处理气缸盖

1. 右键点击 Cylinder_Head 掩膜选择 Isolate。

2. 在 Advanced 3D editing 工具面板:

3. 在 Advanced 3D editing 工具面板:

4. 有一个区域,在应用过打开和平滑滤波器后还没有删除配件的一部分体积。可以在删除掩膜 ROI 后对此特征处应用强度更大的打开滤波器。

5. 在 Advanced 3D editing 工具面板:

不需要的特征已被完全移除。

在 3D 视图查看模型,在应用了 Open 滤波器的地方有一些不连接区域,可以使用 Mask flood fill 工具点击一键删除。

3.7 使用 Mask flood fill 删除不连接区域

1. 返回至 2D 和 3D 视图布局。

2. 确认选中 Cylinder_Head 掩膜使其为 Active mask。

3. 点击 Image processing — Segmentation — Mask flood fill。

4. 在 Mask flood fill 工具:

5. 在 2D 切片视图,左键点击气缸盖的任意主要区域,如下图的坐标 (100,70,202) 处。

6. 在 3D 视图查看不相连的区域已完全从气缸盖中删除。

4. 分割配件

4.1 阈值分割配件

1. 点击 Image processing — Segmentation — Threshold。

2. 在 Threshold 工具面板。

3. 将 Mask 1 重命名为 Fittings。

4. 右键点击 Fittings 选择 Isolate。

初始阈值分割结果中包含了部分螺栓,因为它们与配件的灰度值相似,可以通过 Simple 3D editing 工具删除。

4.2 删除配件掩膜中的螺栓

1. 点击 Image processing — Segmentation — 3D editing — Simple 3D editing。

2. 在 Simple 3D editing 工具面板:

配件上有一些孔洞,可以通过形态学 Close 滤波器填充。

4.3 填充配件掩膜中的孔洞

1. 点击 Image processing — Morphological — Close。

2. 在 Morphological - Close 工具面板:

4.4 删除气缸盖和配件的重叠区域

1. 返回至 2D 和 3D 视图布局。

2. 点击 Cylinder_Head 掩膜前面的“眼睛”按钮,使其变更为可见状态。

3. 点击 View — 2D slice views — Mask overlap,下图黄色区域为两者的重叠区域。

4. 右键点击 Cylinder_Head 选择 Boolean operations — Subtract with — Fittings,将从气缸盖中删除与配件重合的部分。

5. 为增加两者的对比,右键点击 Cylinder_Head 选择 Change colour — Metallic 更改其颜色。

6. 点击 3D 视图上方的 Fast preview 按钮生成表面渲染。

7. 在 3D 视图右键点击 Cylinder_Head 区域选择 Change opacity 将不透明度设置为低于 1,便于展示内部结构。

5. 参考