Measurements & AnalysisChinese & English

BounTI Hard Tissue Segmentation

Separates touching hard-tissue elements that a single threshold merges into one blob — the individual bones of a skull, for instance. Following BounTI: seed at a high threshold where only the dense cores survive and the

Updated 2026-08-02User manual

BounTI Hard Tissue Segmentation(BounTI 硬组织分割)

BounTI Hard Tissue Segmentation - User Manual

Dragonfly Prototype Apps · BounTI Hard Tissue Segmentation...

版本 Version 1.0 · 2026-08-02


第一部分 中文手册

目录

1. 简介

2. 适用场景

3. 安装与启用

4. 运行环境与首次配置

5. 界面说明

6. 使用步骤

7. 参数说明

8. 输出结果

9. 常见问题与故障排除

10. 注意事项与已知限制

11. 参考资料

1. 简介

把单一阈值会粘连成一整块的硬组织元素分开——例如颅骨中相互接触的各块骨。方法来自 BounTI:先在高阈值处取得只剩致密核心、彼此仍分离的种子,保留其中最大的 N 个;随后逐级降低阈值,把已有标签生长到新暴露的体素中,且任何时候都不允许两个标签合并。

本插件只做「分离」——判断每个体素属于哪个元素——不计算任何骨形态学指标(BV/TV、Tb.Th、Tb.Sp、连通密度等)。

标签冲突规则就是算法本身。 两个对象同时到达同一个体素时,必须有规则来决定归属,而不同规则会给出不同结果,因此该规则显式交由用户选择。默认规则让争议体素保持未分配——插件绝不凭空指定边界位置——并报告争议体素的数量。

2. 适用场景

  • 把颅骨 CT 中相互接触的各块骨分开。
  • 分离粘连的牙齿、骨化中心或其它致密结构。
  • 任何「单一阈值把本应分开的致密对象连成一片」的场合。

3. 安装与启用

1. 安装 Prototype Apps 完整包(或在 App Store 中勾选本插件)。

2. 本插件默认未启用,请在 App Store 或菜单项管理器中启用。

3. 完全重启 Dragonfly(插件只在启动时被发现)。

4. 运行环境与首次配置

无需任何安装或配置。 完全运行在 Dragonfly 自带的 Python 中,使用其已附带的 NumPy 与 SciPy。不联网、不下载、不需要 GPU、不创建虚拟环境。

5. 界面说明

1. 输入

选择通道与可选的限定 ROI(只列出已发布对象)、时间步。

2. 标定与预处理

确认体素尺寸;对象缺少几何信息时可手动指定。

3. 参数

种子阈值(高)、最终阈值(低)、对象数量、阈值步数、连通性、最小种子体积,以及标签冲突规则。

4. 预览与质检

在降采样数据上以较短的阈值阶梯快速运行。不发布任何对象。

5. 运行

全分辨率运行完整阶梯,可随时取消。

6. 结果与导出

每个对象的体素数、体积、种子体积与生长倍数;发布最终 MultiROI 与种子;导出对象表(CSV)与 JSON。

6. 使用步骤

1. 第 1 步选择通道。

2. 第 3 步把种子阈值设到只剩致密核心且彼此分离的位置。

3. 第 4 步预览,确认种子数量正确。

4. 第 5 步全分辨率运行。

5. 第 6 步检查争议体素数量,然后发布或导出。

7. 参数说明

参数

默认值

说明

种子阈值(高)

200

只有致密核心存活、各元素仍分离的阈值

最终阈值(低)

80

生长停止的阈值,必须低于种子阈值

对象数量

2

保留最大的 N 个种子

阈值步数

10

从种子阈值降到最终阈值的级数

连通性

6 连通

判定连通与生长方向

最小种子体积

1

小于此体积的种子被丢弃

标签冲突规则

边界(不分配)

另有「最近对象」与「置信度最高」

8. 输出结果

输出

含义

最终 MultiROI

每个体素归属的元素

种子 MultiROI

高阈值处的初始种子,用于核对

对象表

每个对象的体素数、体积、种子体积与生长倍数

争议体素数

被两个以上对象同时争夺的体素数量

生长曲线

每一级阈值下各对象的体积

9. 常见问题与故障排除

  • 提示种子数量不足 —— 种子阈值太低,各核心尚未分开;提高它,或减少要求的对象数量。
  • 提示种子阈值必须高于最终阈值 —— 本方法自高向低进行,两者写反了。
  • 争议体素非常多 —— 说明这些元素在该处确实相接,边界位置是一种选择而非测量结果,请谨慎解读。
  • 有体素高于最终阈值却未被分配 —— 它们与任何种子都不连通。

10. 注意事项与已知限制

  • 整卷读入内存;超大体积请先裁剪或用预览确定参数。
  • 输入必须是已发布的通道。
  • 发布始终是第 6 步的显式操作。
  • 生长顺序无关:结果不依赖标签编号顺序。

11. 参考资料

方法来自 Didziokas 等人的 BounTI(MIT):https://github.com/Didziokas/BounTI ——未复制其源代码。若发表使用本方法得到的结果,请引用 BounTI 作者的论文。


Part II English Manual

Contents

1. Introduction

2. Use cases

3. Installation & enabling

4. Runtime environment & first-run setup

5. Interface

6. How to use

7. Parameters

8. Output

9. FAQ & troubleshooting

10. Notes & known limitations

11. References

1. Introduction

Separates touching hard-tissue elements that a single threshold merges into one blob — the individual bones of a skull, for instance. Following BounTI: seed at a high threshold where only the dense cores survive and the elements are still apart, keep the largest N, then lower the threshold step by step, growing the existing labels into newly-revealed voxels while never letting two labels merge.

This is a separation tool — it decides which element each voxel belongs to — and computes no bone morphometry (BV/TV, Tb.Th, Tb.Sp, connectivity density and so on).

The label-collision rule is the algorithm. When two objects both reach the same voxel something has to break the tie, and different rules give different answers, so the choice is left explicitly to the user. The default leaves contested voxels unassigned — the plugin never invents a boundary position — and reports how many there were.

2. Use cases

  • Separating the individual bones of a skull in CT.
  • Splitting touching teeth, ossification centres or other dense structures.
  • Anywhere a single threshold fuses dense objects that should be distinct.

3. Installation & enabling

1. Install the Prototype Apps package (or tick this plugin in the App Store).

2. This plugin is disabled by default — enable it in the App Store or the Menu Item Manager.

3. Restart Dragonfly completely (plugins are discovered at startup only).

4. Runtime environment & first-run setup

Nothing to install or configure. It runs entirely in Dragonfly's own Python using the NumPy and SciPy it already ships. No internet, no download, no GPU, no virtual environment.

5. Interface

1. Inputs

Choose the Channel and an optional restricting ROI (published objects only), plus the timestep.

2. Calibration & Preprocessing

Confirm the voxel size, or set it by hand for objects without geometry.

3. Parameters

Seed threshold (high), final threshold (low), number of objects, threshold steps, connectivity, minimum seed size, and the label-collision rule.

4. Preview & QC

A fast pass on downsampled data with a short ladder. Nothing is published.

5. Run

The full ladder at full resolution, cancellable at any time.

6. Results & Export

Per-object voxel count, volume, seed size and growth factor; publish the final MultiROI and the seeds; export the object table (CSV) and JSON.

6. How to use

1. Pick the Channel in step 1.

2. In step 3 set the seed threshold where only the dense cores survive and they are separate.

3. Preview in step 4 and confirm the right number of seeds was found.

4. Run at full resolution in step 5.

5. Check the contested-voxel count in step 6, then publish or export.

7. Parameters

Parameter

Default

Meaning

Seed threshold (high)

200

where only the dense cores survive and elements are still apart

Final threshold (low)

80

where growth stops; must be below the seed threshold

Number of objects

2

keep the largest N seeds

Threshold steps

10

levels between the seed and final thresholds

Connectivity

6-connected

how connectivity and growth directions are judged

Minimum seed size

1

seeds smaller than this are discarded

Label collision rule

boundary (unassigned)

or nearest object, or most confident object

8. Output

Output

Meaning

Final MultiROI

which element each voxel belongs to

Seeds MultiROI

the initial high-threshold seeds, for checking

Object table

voxels, volume, seed size and growth factor per object

Contested voxels

how many voxels more than one object reached

Growth curves

each object's volume at every threshold level

9. FAQ & troubleshooting

  • Fewer seeds than requested — the seed threshold is too low and the cores have not separated; raise it, or ask for fewer objects.
  • "seed threshold must be HIGHER than the final threshold" — the method works downwards; the two values are the wrong way round.
  • A very large contested set — those elements genuinely touch there, so the boundary is a choice rather than a measurement. Interpret accordingly.
  • Voxels above the final threshold left unassigned — they are not connected to any seed.

10. Notes & known limitations

  • The whole volume is read into memory; crop large data or settle parameters with the preview.
  • Inputs must be published Channels.
  • Publishing is always an explicit step-6 action.
  • Growth is order-independent: the result does not depend on how the labels are numbered.

11. References

The method follows BounTI by Didziokas et al. (MIT): https://github.com/Didziokas/BounTI — no source was copied. Please cite the BounTI authors' publication if you publish results obtained with this method.

You’ve reached the end of this manual.Explore the library →