그것은 실제로 간단하지 않을 것입니다 ... 당신은 그래프 구조로 전체 작업을 시도 할 수 있습니다. 먼저 이미지에서 연결된 모든 픽셀을 추출하고 인접 노드가 가장자리와 연결된 그래프에 삽입하십시오. 일부 M 개 노드보다 작은 그래프를 버릴 수 있습니다 (이미지와 관련이없는 작은 점은 제외).
이 프로세스가 끝나면 연결이 끊어진 그래프 세트가 생깁니다. (이미지에서 판단하면 사이클이 있기 때문에 정확하게 나무가 아닙니다)
임의의 노드에서 시작하여 DFS를 수행하여 각 그래프의 극점 (각 그래프 주변의 극점 픽셀)을 찾을 수 있습니다 .
이 프로세스가 끝나면 연결이 형성 될 가능성이 높은 극단 점에 해당하는 각 그래프에 대한 픽셀 좌표 세트가 있습니다.
이제 가장 가까운 극단 점 (거리 <= 5)을 직선으로 간단하게 연결할 수 있습니다.
그러나 해당 극단 픽셀로 이어지는 선분의 기울기를 고려하려면 해당 극단 픽셀에 도달하기 전에 N 픽셀에 "선을 맞추십시오". 따라서 N = 5이면 분기의 마지막 5 픽셀이 선을 추정하는 데 사용됩니다.
따라서 가장 가까운 이웃 쌍마다 이제 두 세그먼트를 연결해야하는지 판단하는 기준으로 사용할 또 다른 사항이 있습니다 (즉, 극점 거리 <= 5 픽셀 및 대략 동일한 선 경사).
분기의 팁 근처에 선이 들쭉날쭉하게 나타나서 경사 추정값을 왜곡시킬 수있는 노이즈의 영향을 최소화하려면 그래프에 단순화 단계를 적용 해보십시오 (이는 위의 DFS 외에). 그래프 구조 작업). 예를 들어, 선이 일부 컷오프보다 큰 각도로 "구부러지는"그래프의 후속 노드를 제거 할 수 있습니다 . 이러한 방식으로 이미지 픽셀에 의해 형성된 세그먼트의 더 큰 부분의 방향에 "간단한"선을 맞출 수 있습니다.
그것은 아마도 (당신이 게시 한 이미지로 판단) 대부분의 경우에 적절한 연결을 초래할 것이지만 여전히 도전적인 사례를 남길 것입니다. 예를 들어 연결 지점 근처에서 분기 중 하나가 중단 된 "Y"모양의 중단 된 패턴은 어떻게 연결됩니까? (즉, "블렌딩"하는 선분과 연결되어야하는 "연속"벤드가 있습니다). 이러한 사례가 얼마나 흔한 지 검토하고 나중에 연결 기준을 수정할 수 있습니다.
또한 이미지 획득을 개선하는 방법 (예 : 해상도 증가)을 조사해 볼 가치가 있습니다.