我需要遍历彼此相邻的图像中的所有(无序)像素对而不重复。我正在使用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方格中。因此, g 例如与 f 形成一个2点集团。如果我要遍历图像的所有行和列,这个集团将被计数两次,一次当 f 是中心像素时,一次当 g 是中心时像素。其他集团也会出现类似的低效率。
所以我想做的是循环所有派系,而不是每个像素。如果我熟悉图论,我认为已经给出类似问题的一些答案就足够了,但是我不是,我真的很感激你能用外行的术语中的有效算法给予任何帮助。提前谢谢!
答案 0 :(得分:1)
在所有点上循环第一个点。内圈循环右边,左下角,右下角和右下角的第二个点(如果它们存在)。