本教程将使用单缸摩托车发动机的工业 CT 扫描数据展示如何使用 3D 编辑和其他工具、滤波器等精准分割气缸盖和配件掩膜。
本教程所用数据:Cylinder_Head.raw
1. 在软件欢迎页点击 Stack or raw images。
2. 在 Import images 对话框:
3. 数据加载后,点击 View — 2D slice views — Orientations,选择 Classic。
调整体积渲染设置更清晰地展示数据。
更改体积渲染设置
该发动机的 CT 扫描中灰度较高的区域表示质量密度较高的配件,而灰度较低的区域表示质量密度较低的气缸盖。Background volume rendering 可以快速可视化数据,确定零件的数量及其在 3D 中的位置。气缸盖和配件将会被分割成单独的掩膜。
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。
1. 返回至 2D 和 3D 视图同时显示的布局页面。
2. 打开 3D 视图上方的 Live 3D 按钮生成 3D 模型的实时预览。
3. 气缸盖的初始分割应如下所示。
4. 旋转查看模型,在螺栓孔周围有几个区域需要处理。首先,填充下图突出显示 4 个螺栓孔周围的间隙。由于 Cylinder_Head 掩膜在这些区域接触到了图像的边界,可以采用 Fill gaps 工具检测图像边界并自动填充间隙。
1. 点击 Image processing — Additional — Fill gaps。
2. 在 Fill gaps 工具:
3. 在下图中,间隙已被填充且螺栓孔并不受影响。另外,此操作还填充了掩膜中任何体素低于 250 的内部空腔/空隙。
剩余的螺栓孔仍还有一些区域需要处理,如下所示。
在阈值分割的过程中,还包含了一些高灰度值配件的体素,它们的部分体积与气缸盖具有相同的灰度强度。通过应用 3D editing 工具可以删除这些不需要的区域,同时处理剩余的螺栓孔。
将滤波器应用于整个掩膜可能并不总是合适的,如当模型中存在不应改变的具有较薄特征或高度精细区域时。在这些情况下,可以使用 3D editing 工具将滤波器应用在掩膜的特定子区域。该工具可以使用感兴趣区域(ROI)在 3D 视图突出显示选定区域,即滤波器的应用范围。在本示例中,为使用 3D editing 工具的掩膜感兴趣区域功能,将先分割出配件的占位掩膜,如此便可以在气缸盖掩膜特定区域应用滤波器。
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。
1. 将 3D 视图最大化。
2. 点击 Image processing — Segmentation — 3D editing — Advanced 3D editing。
3. 在 Advanced 3D editing 工具面板:
默认情况下,点击 3D 视图中的掩膜区域将为单个选定区域创建新的掩膜 ROI。通过同时按住 Ctrl 键,点击一个掩膜区域将会把掩膜的所有区域添加到掩膜 ROI。
1. 右键点击 Cylinder_Head 掩膜选择 Isolate。
2. 在 Advanced 3D editing 工具面板:
3. 在 Advanced 3D editing 工具面板:
4. 有一个区域,在应用过打开和平滑滤波器后还没有删除配件的一部分体积。可以在删除掩膜 ROI 后对此特征处应用强度更大的打开滤波器。
5. 在 Advanced 3D editing 工具面板:
不需要的特征已被完全移除。
在 3D 视图查看模型,在应用了 Open 滤波器的地方有一些不连接区域,可以使用 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 视图查看不相连的区域已完全从气缸盖中删除。
1. 点击 Image processing — Segmentation — Threshold。
2. 在 Threshold 工具面板。
3. 将 Mask 1 重命名为 Fittings。
4. 右键点击 Fittings 选择 Isolate。
初始阈值分割结果中包含了部分螺栓,因为它们与配件的灰度值相似,可以通过 Simple 3D editing 工具删除。
1. 点击 Image processing — Segmentation — 3D editing — Simple 3D editing。
2. 在 Simple 3D editing 工具面板:
配件上有一些孔洞,可以通过形态学 Close 滤波器填充。
1. 点击 Image processing — Morphological — Close。
2. 在 Morphological - Close 工具面板:
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,便于展示内部结构。