3D 网格簇检测中广度优先搜索的替代方案?

计算科学 算法 C 计算机视觉 搜索
2021-11-30 11:20:12

我有一个关于为我的问题找到最快算法的好方法的问题:

问题: 我有一个 3D 立方体网格,其中包含 1 或 0 的体素。它存储为扁平数组。如果多个 1-voxel 彼此相邻,则它们一起形成一个簇。我想检测小于给定大小(n)的集群。

当前解决方案(慢):

对于每个 1-voxel,我进行广度优先搜索以查找它有多少个邻居,以及这些邻居有多少个邻居,等等,直到达到一定数量的邻居 (n)。

当将 n 设置为我的首选数量 n>50 时,这非常慢,因为总立方体边缘大小为 64

有什么不同的方法可以做到这一点,而不是广度优先搜索?一切都是开放的:甚至可能是来自计算机视觉的东西,比如 3d pooling 或其他什么,但我有点卡住了。还是我最好尝试优化我目前的方法?如果有兴趣,我在代码审查中发布了我的 c# 代码

提前致谢!

0个回答
没有发现任何回复~