Построение графика соединений на выходе детектора углов Harris - PullRequest
0 голосов
/ 02 мая 2019

Мое окончательное намерение - построить что-то на основе этого: https://www.researchgate.net/publication/308194022_Tifinagh_Character_Recognition_using_Harris_Corner_Detector_and_Graph_Representation

И я застрял в части 3.2 с созданием матрицы смежности для углов. Приведенный ниже рисунок помогает визуализировать то, чего я пытаюсь достичь.

Output so far

Скажем, я взял это изображение А и применил к нему Харриса, а затем использовал этот код

# define the criteria to stop and refine the corners
ret, labels, stats, centroids = cv2.connectedComponentsWithStats(dst)
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 100, 0.001)
corners = cv2.cornerSubPix(gray,np.float32(centroids),(5,5),(-1,-1),criteria)

#print corners
for i in range(1, len(corners)):
    print(corners[i])

Я получаю хороший список угловых координат, который выглядит следующим образом:

[51.70207 62.5541 ]
[ 37.04742 100.78287]
[ 66.707726 100.73132 ]
[ 29.685337 119.28638 ]
[ 75.62286 119.49719]

Для справки: изображение размером 106 x 189.

Но как я могу выяснить, с кем это связано? Я пытался "пройти" массив изображений из угла, пока не столкнулся с другим, но это не охватывает случаи, когда их много, например, центральные точки в точке А. Я также подумал о том, как я могу перебрать каждый угол и посмотреть, смогу ли я подключиться к другим, но, поскольку они являются частью одного контура, они всегда смогут подключиться.

Любой совет приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...