Поиск границ из массива позиций Python 3

#image-processing #opencv3.0 #python-3.8 #edges #neighbours

#обработка изображений #opencv3.0 #python-3.8 #края #соседи

Вопрос:

Я нахожу границы на изображении с помощью python, сначала я создаю окрестности с изображением в сером масштабе, затем мне нужно найти точки, которые соединяют созданные мной окрестности (края).

Вот пример моего массива окрестностей. Значения [x, y] представляют позиции пикселя, который является частью окрестности. Это диаграмма массива окрестностей (vecinos)

 [ [ [0,0], [0,1],[0,2] ], [ [1,0], [1,1],[1,2] ] ]
  

Ссылка на Google Drive на полный массив окрестностей в текстовой форме

И это функция, которую я использую для обнаружения границ

 def getPoints(vecinos, img):
    print('puntos')
    length = len(vecinos)
    bol = np.zeros(img.shape,img.dtype)
    for i in range(length):
        for j in range(length):
            if not i == j:
                for val2 in vecinos[i]:
                    for val1 in vecinos[j]:
                        res1 = abs(val1[0] -  val2[0])
                        res2 = abs(val1[1] - val2[1])
                        if( (res1 == 0 or res1 == 1) and (res2 == 1 or res2 == 0) ):
                            print('borde')
                            bol[ val1[0],val1[1] ] = 1
                            bol[ val2[0],val2[1] ] = 1
    return bol
  

результат этой функции возвращает массив с той же высотой и шириной, где 1 идентифицируется как границы, а остальное равно 0. Вот пример массива numpy, который получается. это текст результата, который я загрузил на свой Google диск

эта функция возвращает массив с 0 и 1, 1 — это обнаруженные границы. Я хочу сделать это быстрее, это работает нормально, но это занимает много времени, когда размер изображения превышает 100 пикселей

Комментарии:

1. Возможно, диаграмма помогла бы показать, как выглядят «массив позиций» и «окрестности» … и еще одна, показывающая, как выглядит ожидаемый «ответ» .

2. Привет, я добавил диаграмму, чтобы вы могли лучше меня понять, я добавил несколько ссылок на ожидаемый массив ответов, который я ищу