用户工具

站点工具

本页面的其他翻译:
  • zh

sw:结合使用涂画和插值工具分割纤维

结合使用涂画和插值工具分割纤维

本教程将向您介绍 Paint 和 Paint with threshold 工具的插值切片选项功能。该工具对于分割在一个轴向上具有相似横截面或相邻材料间没有对比度的区域非常有用。

本教程所用数据文件路径 C:\Program Files\Synopsys\Simpleware\U-2022.12\Data\FibresFiles

  • 1_Fibres.sip
  • 2_FibresAligned.sip
  • 3_FibresPreTidying.sip
  • 4_FibresSegmented.sip

1. 图像处理

1.1 准备数据

1.1.1 打开数据文件

  • 点击 Welcome 页面的 Open project… 按钮
  • 选择 1_Fibres.sip

1.1.2 数据重采样

一般建议分割出的最小特征至少是 5 个体素大小,这样可以精确地描述几何形状。在这个数据中,纤维的最小特征是它们在 Z 方向上的单个厚度,大约为 15 个体素。因此,可以对数据进行重采样,减小数据规模,从而缩短处理时间。而且纤维间的交界处没有对比度,也不需要担心降低了这些点的分辨率。

  1. 点击 Image processing — Transforms — Resample,打开重采样工具
  2. 在 Units 区域选择 Pixel spacing (mm)
  3. 勾选 Cubic/isotropic resampling
  4. 设置 Pixel spacing 为 0.048
  5. Interpolation method 区域的 Background 和 Mask 都选择 Linear
  6. 点击 Apply

1.1.3 对齐数据

切片插值工具是作用在三个轴向上的,因此如果数据对齐会使纤维沿图像轴的方向贯穿,将节省大量的分割时间。

  1. 放大 XY 2D 切片视图
  2. 滑动至第 85 张切片,可以清晰看到纤维的方向
  3. 点击 Image processing — Transforms — Align
  4. 应用对象 Apply on 选择 All (backgrounds + masks)
  5. Rotation 的 Method 选择 Align vector with axis
  6. 点击 Pick 按钮,然后在 XY 切片视图中选择某一条纤维边缘上 A 和 B 两个点。或者也可以输入以下数值
  7. 点 A:
    • X: 157.0
    • Y: 21.0
    • Z: 85.0
  8. 点 B:
    • X: 37.0
    • Y: 102.0
    • Z: 85.0
  9. Rotation axis 选择 X
  10. Translation Method 选择 No translation
  11. Interpolation type 选择 Linear
  12. 点击 Apply

图:纤维在 X 轴对齐的矢量

1.1.4 裁剪数据

数据对齐后纤维沿着图像的轴向贯穿,但需要裁剪数据填充的区域进行对齐。

  1. 点击 Image processing — Transforms — Crop
  2. 通过滑块或输入的方式设置以下参数:
    • Xmin: 134
    • Xmax: 272
    • Ymin: 112
    • Ymax: 278
    • Zmin: 0
    • Zmax: 118
  3. 点击 Apply

点击 File — Save as… 修改项目文件名称并保存到合适的位置。

1.2 在 X 方向上分割纤维

本部分是关于如何在 X 方向上分割纤维,可以使用上一步处理过的数据或者打开文件 2_FibresAligned.sip

1.2.1 分割横截面

  1. 放大 ZY 2D 切片视图,定位至第 0 张切片
  2. 双击或右键单击软件左下角 Dataset browser 里的 Masks 创建一个新的掩膜
  3. 点击 Image processing — Segmentation — Paint with threshold
  4. 选择圆盘 Disk 形状的刷子,尺寸为 10
  5. 勾选 Smooth edges
  6. 在 Threshold settings 区域,移动直方图中两侧的红线调整阈值范围。指定 Lower value 和 Upper value 分别为 130 和 255
  7. 在当前切片上涂画纤维的横截面,结果如下图所示。(请注意,可能会有必要通使用 Paint 工具中小一些的刷子尺寸整理纤维的边缘区域)

    图:在 ZY 2D 切片视图涂画纤维的横截面

  8. 对第 35、70、105、137 张切片重复以上步骤,确保横截面数量完全相同(18个纤维)。
  9. 使用 Close 滤波器整理边缘和填充间隙。应用在 2D 视图,且只需要在 Structuring element (ball) 的 Y 和 Z 指定非零值。
    • 点击 Image processing — Morphological — Close
    • 确认应用目标是 Active mask (Mask 1)
    • 不勾选 Cubic/isotropic values
    • 设置 X radius 为 0
    • 设置 Y radius 为 1
    • 设置 Z radius 为 1
    • 保持 Sub-voxel component 为 0
    • 不勾选 Fill cavities in the resulting mask
    • 点击 Apply
  10. 放大 3D view,点击 Fast preview 快速预览。

图:涂画横截面的快速预览

1.2.2 插值工具的准备

插值切片选项适用于未接触图像边界的区域。由于某些纤维是在 Z max 和 Zmin 的边界处,将在 Z 方向上填充 1 个像素。

  1. 点击 Image processing — Transforms — Pad
  2. 取消勾选 Uniform padding
  3. 设置 X 和 Y 值为 0
  4. 设置 Zmin 和 Zmax 为 1
  5. 点击 OK

1.2.3 在横截面间插值

  1. 点击 Image processing — Segmentation — Interpolation toolbox。
  2. 确认 ZY 2D 切片视图为活动(Active)状态,如果不是,可以勾选视图左上角 Active 前面的方框。
  3. 在 Slice interpolation 标签页,Direction 区域选择 Active。
  4. 点击 Apply

放大 3D 视图并快速预览,应如下图所示。

图:横截面间插值后的快速预览

1.2.4 平滑纤维

  1. 点击 Image processing — Additional — Smoothing filters — Recursive Gaussian
  2. 确认应用目标为 Active (Mask 1)
  3. 勾选 Binarise
  4. 勾选 Cubic/isotropic values
  5. 设置 Gaussian sigma 为2
  6. 点击 Apply

更新快速预览,显示平滑后的结果。

1.3 在 Y 方向上分割纤维

本部分将采用相似的步骤沿 Y 轴方向分割纤维。

1.3.1 分割横截面

  1. 放大 ZX 2D 切片视图,定位至第 0 张切片
  2. 双击或右键单击软件左下角 Dataset browser 里的 Msks 创建一个新的掩膜
  3. 在 Simpleware ScanIP 中掩膜的上下顺序代表着优先级,将新的掩膜拖动到 Mask 1 的下方,这样有助于分割纤维的横截面。
  4. 点击 Image processing — Segmentation — Paint with threshold
  5. 选择圆盘 Disk 形状的刷子,尺寸为 10
  6. 勾选 Smooth edges
  7. 在 Threshold settings 区域,移动直方图中两侧的红线调整阈值范围。
  8. 指定 Lower value 和 Upper value 分别为 95 和 255
  9. 在当前切片上涂画纤维的横截面,结果如下图所示。(请注意,可能会有必要通使用 Paint 工具中小一些的刷子尺寸整理纤维的边缘区域)

    图:在 ZX 2D 切片视图涂画纤维的横截面

  10. 对第 40、80、120、154 张切片重复以上步骤,确保横截面数量完全相同(12个纤维)。
  11. 在没有接触边界的切片上,横截面应该与已经分割好的纤维具有一致的边缘。例如,第 120 张切片类似于下图。

    图: XZ 2D 切片视图的第 120 张切片显示如何使用掩膜优先级分割边界

  12. 使用 Close 滤波器整理边缘和填充间隙。应用在 2D 视图,且只需要在 Structuring element (ball) 的 X 和 Z 指定非零值。
    • 点击 Image processing — Morphological — Close
    • 确认应用目标是 Active mask (Mask 2)
    • 不勾选 Cubic/isotropic values
    • 设置 X radius 为 1
    • 设置 Y radius 为 0
    • 设置 Z radius 为 1
    • 保持 Sub-voxel component 为 0
    • 不勾选 Fill cavities in the resulting mask
    • 点击 Apply
  13. 放大 3D view,点击 Fast preview 快速预览。

图:第二个纤维掩膜横截面的快速预览

1.3.2 插值工具的准备

目前已经利用掩膜的优先级涂画了没有对比度的纤维横截面。但在设置 Mask 1 不可见后,会发现涂画的掩膜与实际纤维的横截面不匹配,这将影响插值工具的输出结果。为避免以上情况,需要执行布尔运算。

  • 点击 Image processing — Segmentation — Booleans — General Boolean operations
    • Input A: Mask 2
    • Operation: Subtract
    • Input B: Mask 1
    • Apply on: All slices
    • Output: Mask 2
    • 点击 Apply

1.3.3 在横截面间插值

  1. 点击 Image processing — Segmentation — Interpolation toolbox。
  2. 确认 ZX 2D 切片视图为活动(Active)状态,如果不是,可以勾选视图左上角 Active 前面的方框。
  3. 在 Slice interpolation 标签页,Direction 区域选择 Active。
  4. 点击 Apply

放大 3D 视图并快速预览,应如下图所示。

图:快速预览显示的插值结果

现在需要考虑 Z 正负方向上的 1 个像素的衬垫而“重新裁剪”图像,然后使用 Recursive Gaussian 滤波器平滑纤维。

  1. 点击 Image processing — Transforms — Crop
  2. 在 Crop 对话框通过滑块或直接输入设置以下数值
    • X: 0 - 138
    • Y: 0 - 165
    • Z: 1 - 118
    • 点击 Apply
  3. 点击 Image processing — Additional — Smoothing filters — Recursive Gaussian
  4. 确认应用目标是 Active mask (Mask 2)
  5. 勾选 Binarise
  6. 勾选 Cubic/isotropic values
  7. 设置 Gaussian Sigma 为 2
  8. 点击 Apply

生成快速预览应如与下图相似。

图:Recursive Gaussian 平滑后的结果

点击 File — Save as… 修改项目文件名称并保存在合适的位置。

1.4 整理分割

由于纤维间是相互接触的(扫描数据中也显示接触),需要确保分割出的掩膜符合要求,且需要接触面上没有间隙。本部分将展示如何整理纤维间产生的间隙,可以使用上一部分保存的文件或者 3_FibresPreTidying.sip。

1. 右键单击 Mask 1 将其重命名为 XFibres

2. 将 Mask 2 重命名为 YFibres

下一步是闭合纤维间的任何空隙。通过布尔运算临时结合在一起,然后应用 Close 滤波器闭合空隙,最后减去原始的掩膜。

3. 点击 Image processing — Segmentation — Booleans — General Boolean operations

  • Input A: YFibres
  • Operation: Union
  • Input B: XFibres
  • Apply on: All slices
  • Output: YFibres
  • 点击 Apply

4. 使用形态学 Close 滤波器应用 1 个像素强度闭合纤维间的空隙。点击 Image processing — Morphological — Close

  • 确认应用目标是 Active mask (YFibres)
  • Structuring element ball 区域设置 X、Y和Z 方向上均为 1
  • 保持 Sub-voxel component 为 0.0
  • 不勾选 Fill cavities in the resulting mask
  • 点击 Apply

现在可以观察到纤维之间没有了空隙,接下来需要减去 XFibres 掩膜部分,平滑由 Close 滤波器产生的隆起。

5. 点击 Image processing — Segmentation — Booleans — General Boolean operations

  • Input A: YFibres
  • Operation: Subtract
  • Input B: XFibres
  • Apply on: All slices
  • Output: YFibres
  • 点击 Apply

6. 纤维已经被分离出来,可以开始平滑隆起部分。点击 Image Processing Additional — Smoothing filters — Recursive Gaussian

  • 设置应用目标为 Active mask (YFibres)
  • 勾选 Binarise
  • 不勾选 Cubic/isotropic values
  • 设置 X sigma 为 2
  • 设置 Y sigma 为 4
  • 设置 Z sigma 为 2
  • 点击 Apply

分割的最后一步是使用 Fill gaps 工具填充掩膜间完全封闭的间隙

7. 点击 Image processing — Additional — Fill gaps.

  • 应用目标同时勾选 XFibres 和 YFibres
  • Gap assignation rule 选择 Most contact surface
  • 勾选 Fill gaps of any size
  • 不勾选 Include gaps touching boundaries
  • 点击 Apply

点击 File — Save as… 修改项目文件名称并保存到合适的位置。

2. 模型生成

该部分将展示如何根据分割结果设置和生成 FE 模型,可以使用上一部分保存的项目文件或打开 4_FibresSegmented.sip。在模型设置中有 Contact pair(接触对),可以复制纤维交界处的网格节点,使纤维间的仿真包含滑移界面。

2.1 模型设置

  1. 右键 Dataset browser 区域的 Models 选择 Create a new FE model
  2. 将 XFibres 和 YFibres 掩膜拖拽到 Model 1 (FE)
  3. 右键 Model 1 (FE) 选择 Model Configuration…
  4. 在 Contacts 标签卡选择 From: Y Fibres 和 To: X Fibres
  5. 点击 Add contact pair,Model configuration 对话框如下图所示。

    图:Model configuration 对话框中 Contacts 标签卡页面

  6. 点击右下角的 Close 关闭 Model configuration 对话框

2.2 生成网格

  1. 点击 FE Model — General — Full Model 生成网格,完成后 3D 视图应如下图所示。

    图:生成的网格模型

  2. 点击 FE Model — Inspection — Mesh quality 或查看 Log 标签下的网格质量指标信息
  3. 点击 FE Model — General — Export 导出网格
  4. 可视化接触
    • 点击 View — 3D View — Visibility options
    • Surface entities 选择 Contact surfaces,3D 视图中纤维间的接触面的可视化如下图所示。

图:纤维网格的接触面

3. 参考

  • Simpleware 软件内置教程 Tutorials — Materials and industrial engineering — Fibre segmentation using the Paint tool with interpolation
sw/结合使用涂画和插值工具分割纤维.txt · 最后更改: 2023/05/12 00:40 由 liu.ning

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