这是我的情况。我有一个图像以位数组的形式加载到内存中,可以随时对其进行修改。数组中的每个索引都是一个像素,可以为0或1。
添加像素时,仅表示其值从0到1。 删除像素后,仅表示其值从1变为0。
必须连接图像中的所有像素,这意味着像素只能添加到相邻的(4连接性)占用的像素中。
问题出现是在移除像素时。如果移除像素将像素分成多个未连接的不同组,则需要将其从图像中移除。
现在,我正在使用基本的连接组件标记算法来标记组件。这适用于静态图像,但不适用于动态图像。图片的值范围很广,可能很大,因此每次运行此算法都不可行。
我已经做了大量的研究,大多数事情都使我指出了动态连接图的问题。最具体地说:
J。 Holm,K。de Lichtenberg和M. Thorrup。 "Poly-logarithmic deterministic fully-dynamic algorithms for connectivity, minimum spanning tree, 2-edge connectivity and biconnectivity"。 2001. ACM杂志
但是,正如我在上面说的那样,图像可能会变得很大,并且将每个像素作为一个节点会大大增加其内存复杂性。这会变得很昂贵,因为会有多个图。
所以我的问题是,当我们知道要处理平面图或更好的动态数据网格时,有更好的解决方案来解决动态连接问题?类似于 dynamic 动态连接的组件标签。