Мне нужно перебрать все (неупорядоченные) пары пикселей в изображении, которые являются соседями друг друга без повторения. Я использую 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. Если бы я перебрал все строки и столбцы изображения, эта клика была бы подсчитана дважды: один раз, когда f является центральным пикселем, и один раз, когда g является центром. пиксель. Аналогичная неэффективность будет иметь место и с остальными кликами.
Итак, что я хотел бы сделать, это перебрать все клики, а не каждый пиксель. Если бы я был знаком с теорией графов, я думаю, что некоторых ответов, уже данных на подобные вопросы, было бы достаточно, но поскольку я не знаком, я был бы очень признателен за любую помощь, которую вы можете дать с эффективным алгоритмом с точки зрения непрофессионала. Заранее спасибо!