用户工具

站点工具

本页面的其他翻译:
  • zh

sw:气缸盖的图像分割

气缸盖的图像分割

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

本教程所用数据:Cylinder_Head.raw

1. 导入图像数据

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

2. 在 Import images 对话框:

  • 点击 Select File(s)… 选择 Cylinder_Head.raw。
  • 输入图像体积中体素的物理尺寸,本例为立方体,填写 Spacing 下方的X (mm)、Y (mm)、Z (mm) 均为 0.5。
  • 设置 Pixel type 为 Unsigned short (16 bit)。
  • 输入图像体积的像素数量,Size - X(pixels)、Size - Y (pixels)、和 Number of slices 分别为 430、255 和 405。
  • 内置的 File size check 应该显示为 OK。如果显示 “WARNING: File is too big”或类似的信息,请查看像素数和 Pixel type 是否有错误。
  • 点击 Finish 导入数据。

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 工具面板:

  • 不勾选 Fill cavities in the resulting mask 和 Only keep the largest resulting island。
  • 在 Apply on 的下拉菜单选择 All slices。
  • 在 Output 的下拉菜单选择 <New mask>。
  • 点击 Profile line 栏,在 2D 切片视图画一条轮廓线用于阈值校准。

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

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

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

  • 图中显示跨越所画线长内的灰度值变化,x 轴为以像素为单位的距离,y 轴是灰度值。
  • 图中有三个值得注意的区域,从左至右:
  • 左侧低灰度平坦区域:周围的空气
  • 中间高灰度峰值:环
  • 右侧中灰度平坦区域:气缸盖
  • 阈值范围可以通过移动红色水平线设置,交互式的阈值会随着滑块的移动而即时更新,在 2D 切片视图中显示的掩膜预览有助于调整范围。由于灰度强度与 CT 成像中的质量密度为线性关系,因此应在气缸盖和周围空气之间的中点选择最小灰度值,如 15200。在环和气缸盖之间的中点选择最大灰度值,如 31488。
  • 设置 Lower value 和 Upper value 分别为 15200、31488。

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 工具:

  • 保持 Gap assignation rule 的默认设置。这里该操作只应用在一个掩膜上,这个选项没有影响。
  • 不勾选 Fill gaps of any size,设置 Max size of gap to fill (voxels) 为 250。为避免应用工具后填充螺栓孔本身,此设置可以限制填充间隙的尺寸。
  • 勾选 Include gaps touching image boundaries。这将有效地将图像边界视为相邻掩膜,以便将螺栓孔周围的间隙包含在应用范围。
  • 点击 Apply 应用工具。

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 工具:

  • 在 Histogram 栏,设置 Lower value 为 24000,Upper value 拖至最右侧即 49562。采用较宽的阈值范围分割配件周围额外部分的体积。
  • 不勾选 Fill cavities in the resulting mask 和 Only keep the largest resulting island。
  • 在 Apply on 下拉菜单选择 All slices。
  • 在 Output 下拉菜单选择 Placeholder_Fittings <REPLACE>。
  • 点击 Apply 应用。

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 工具面板:

  • 在 Regions of interest 区域点击 Mask 按钮。
  • 按住 Ctrl 键并将鼠标悬停在 3D 视图的其中一个配件上方。当光标变为星形时,左键点击创建一个新的配件掩膜 ROI。

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

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

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

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

  • Operation 选择 Open,设置 Strength (pixels) 为 1。
  • 不勾选 Apply on visible surfaces only。
  • 点击 Apply。应用操作并自动更新 3D 视图。

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

  • Operation 选择 Smooth,设置 Strength (pixels) 为 1。
  • 不勾选 Apply on visible surfaces only。
  • 点击 Apply。应用操作并自动更新 3D 视图。

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

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

  • 在 Regions of interest 区域,依次点击 Delete all 和 Yes 删除掩膜 ROI。
  • 在 Primitive 的下拉菜单选择 Cylinder。
  • 在上述要删除的特征处点击并拖拽,调整圆柱体 ROI 的尺寸。
  • 通过操纵小部件重新定位使其与要删除的特征精准重叠。
  • Operation 选择 Open,设置 Strength (pixels) 为 2。
  • 点击 Apply。应用更强的打开操作并自动更新 3D 视图。

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

在 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 工具:

  • Operation 选择 Flood fill。
  • Mode 选择 3D。
  • 在 Apply on 的下拉菜单选择 All slices。
  • 在 Output 的下拉菜单选择 Cylinder_Head <REPLACE>。

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

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

4. 分割配件

4.1 阈值分割配件

1. 点击 Image processing — Segmentation — Threshold。

2. 在 Threshold 工具面板。

  • 在 Histogram 栏,设置 Lower value 为 27000,Upper value 拖到最右即 49562。
  • 不勾选 Fill cavities in the resultant mask 和 Only keep the largest resulting island。
  • 在 Apply on 下拉菜单选择 All slices。
  • 在 Output 下拉菜单选择 <New mask>。
  • 点击 Apply 应用,生成 Mask 1。

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 工具面板:

  • Operation 选择 Delete。
  • 调整 3D 视图使所有螺栓水平排列,在 Simple 3D editing 对话框选择 Rectangle。
  • 在 3D 视图中点击拖拽选中 8 个螺栓的区域,松开鼠标,螺栓将在短暂突出显示后被删除。

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

4.3 填充配件掩膜中的孔洞

1. 点击 Image processing — Morphological — Close。

2. 在 Morphological - Close 工具面板:

  • 勾选 Cubic/isotropic values。
  • 设置 X radius (pixels) 为 2。
  • 不勾选 Fill cavities in the resulting mask。
  • 点击 Apply 应用。

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. 参考

  • Simpleware 软件内置教程 Tutorials—Materials and industrial engineering—Cylinder Head Part 1: Segmentation
sw/气缸盖的图像分割.txt · 最后更改: 2024/04/22 11:35 由 liu.ning

© 2014-2022 费米科技(京ICP备14023855号