seung-lab/connected-components-3d
Connected components on discrete and continuous multilabel 3D & 2D images. Handles 26, 18, and 6 connected variants; periodic boundaries (4, 8, & 6)
解决的问题
cc3d 旨在解决 3D 图像中的连通组件标记(CCL)问题,特别针对不仅限于二值(黑白)图像,而是包含多个标签的多标签图像。许多现有工具仅限于二值图像,迫使用户逐个处理每个标签,导致在具有数百或数千个标签的图像上处理速度极慢。cc3d 可以在单次遍历中为所有连通组件标记,显著提升性能。
工作原理
该项目实现了 Rosenfeld 和 Pflatz 的两遍法的 3D 变体,结合了 Tarjan 的 Union-Find 不相交集合(带路径压缩和平衡)以及基于 Wu、Otoo 和 Suzuki 研究的决策树。
关键技术细节包括:
- 连接性选项:支持 3D 中的 26、18 或 6 连接邻域,以及 2D 中的 4 或 8 连接。
- 多标签支持:可同时处理具有多种不同标签的图像。
- 连续值支持:通过用户定义的 delta 阈值将相近值合并,可处理灰度图像。
- 内存效率:支持
memmap文件以处理超过 RAM 大小的图像,并提供压缩的CrackleArray用于厚 Z 切片的顺序处理。
适用人群
该工具主要面向处理密集标注的 3D 生物医学图像(如脑组织显微镜图像)的研究人员和开发者,或任何涉及 3D 体数据中实例分割和语义标记的应用场景。
主要亮点
- 高性能:一次处理即可标记所有连通组件,通常比仅支持二值图像的工具提速一个或多个数量级。
- 灵活的连接性:提供 2D 和 3D 空间中的多种连接性选项。
- C++ 与 Python:提供 Python 绑定和 C++ 实现,以实现最大灵活性。
- 高级分析工具:包含计算质心、边界框、体素数量、移除“尘埃”(小对象)以及提取前 k 个最大对象等功能。
- 表面面积分析:可计算不同标签之间的接触表面面积及接触网络。
相关
- 项目
- 项目
- 项目
- 项目
- 项目