답은 상황에 따라 다릅니다 . 적은 수의 세그먼트 만 조사하는 경우 계산 비용이 많이 드는 솔루션을 제공 할 수 있습니다. 그러나이 계산을 좋은 라벨 포인트 검색에 포함시키는 것이 좋습니다. 그렇다면, 후보 라인 세그먼트가 약간 변할 때 계산 속도가 빠르거나 솔루션을 신속하게 업데이트 할 수있는 솔루션을 갖는 것이 큰 이점이다.
예를 들어 체계적인 검색을 수행한다고 가정합니다.점 P (0), P (1), ..., P (n)의 시퀀스로 표시되는 등고선의 전체 연결된 구성 요소를 가로지 릅니다. 이것은 하나의 포인터 (시퀀스로의 색인) s = 0 ( "시작"의 경우 "s")을 초기화하고 다른 포인터 f ( "종료"의 경우)는 거리 (P (f), P (s))> = 100, 그런 다음 거리 (P (f), P (s + 1))> = 100 동안 s를 진행합니다. 그러면 후보 폴리 라인 (P (s), P (s +)이 생성됩니다. 1) ..., P (f-1), P (f)) 평가. 레이블을 지원하기 위해 "적합성"을 평가 한 후에는 s를 1 씩 증가시키고 (s = s + 1) 후보 폴리 라인이 최소값을 다시 초과 할 때까지 f를 f (예) f '및 s (s)를 s'로 증가시킵니다. 100의 범위는 (P (s '), ... P (f), P (f + 1), ..., P (f'))로 표시됩니다. 그렇게하면 정점 P (s) ... P (s ' 삭제되고 추가 된 정점에 대한 지식만으로도 체력을 빠르게 업데이트 할 수 있어야합니다. (이 스캔 절차는 s = n까지 계속됩니다. 평소와 같이 f는 프로세스에서 n을 다시 0으로 "랩핑"해야합니다.)
이 고려 사항 은 그렇지 않을 수도있는 많은 가능한 체력 측정 ( 신성 , 비틀림 등)을 배제 합니다. 기본 데이터가 약간 변경 될 때 일반적으로 빠르게 업데이트 될 수 있기 때문에 L2 기반 측정 을 선호 합니다. Principal Components Analysis 와 비유 하면 다음과 같은 측정법을 사용할 수 있습니다 (요청에 따라 작을수록 좋습니다). 공분산 행렬 의 두 고유 값 중 작은 값 을 사용하십시오점 좌표의. 기하학적으로, 이것은 폴리 라인의 후보 섹션 내에서 꼭짓점의 "일반적인"좌우 편차의 한 가지 척도입니다. (한 해석은 제곱근이 타원의 작은 반축으로 폴리 라인 정점 의 두 번째 관성 모멘트를 나타냅니다 .) 공선 정점 세트의 경우에만 0이됩니다. 그렇지 않으면 0을 초과합니다. 폴리 라인의 시작과 끝으로 생성 된 100 픽셀 기준선에 대한 평균 좌우 편차를 측정하므로 간단한 해석이 가능합니다.
공분산 행렬은 2x2에 불과하므로 단일 이차 방정식을 풀면 고유 값을 빠르게 찾을 수 있습니다. 또한 공분산 행렬은 폴리 라인에서 각 정점의 기여도의 합입니다. 따라서 점이 누락되거나 추가 될 때 빠르게 업데이트 되어 n- 포인트 윤곽선에 대한 O (n) 알고리즘으로 이어집니다. 이것은 응용 프로그램에서 구상 한 매우 상세한 윤곽선으로 확장됩니다.
이 알고리즘의 결과에 대한 예는 다음과 같습니다. 검은 점은 윤곽의 꼭짓점입니다. 빨간색 실선은 해당 컨투어 내에서 종단 간 길이가 100보다 큰 후보 폴리 라인 선분입니다. (오른쪽 상단의 시각적으로 명백한 후보는 충분히 길지 않습니다.)