【问题标题】:Efficient algorithm for looping over all neighbor pairs (2 point cliques) in 2-D array循环遍历二维数组中所有邻居对(2点团)的高效算法
【发布时间】:2014-11-29 16:02:27
【问题描述】:

我需要循环遍历图像中彼此相邻的所有(无序)像素对而不重复。我正在使用 8 点邻域。例如:

  x,y| 0   1   2   3   4
  ---+---+---+---+---+---+
   0 |   |   |   |   |   |
     +---+---+---+---+---+
   1 | a | b | c | d |   |
     +---+---+---+---+---+
   2 | e | f | g | h |   |
     +---+---+---+---+---+
   3 | i | j | k | l |   |
     +---+---+---+---+---+
   4 |   |   |   |   |   |
     +---+---+---+---+---+

像素 f 的邻居在它周围的 3x3 正方形中。因此,例如,gf 形成一个 2 点团。如果我要遍历图像的所有行和列,这个团将被计算两次,一次是 f 是中心像素,一次是 g 是中心像素。其他派系也会出现类似的低效率。

所以我想做的是遍历所有派系,而不是每个像素。如果我熟悉图论,我认为已经对类似问题给出的一些答案就足够了,但由于我不是,我真的很感激你可以用外行的有效算法提供的任何帮助。提前致谢!

【问题讨论】:

    标签: c algorithm image-processing graph-theory clique-problem


    【解决方案1】:

    在所有点上循环第一个点。内循环第二个点越过右、左下、下和右下邻居(如果存在)。

    【讨论】:

    • 谢谢,@大卫!这是一种非常简单直接的方法。早该想到的。我纠结于试图理解图论和一般的集团问题:)。
    猜你喜欢
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    • 2019-02-04
    • 2018-03-09
    相关资源
    最近更新 更多