0comments

convex hull 예제

X의 볼록 선체가 닫힌 집합인 경우(예: X가 유한 집합이거나 일반적으로 컴팩트한 집합인 경우) X를 포함하는 모든 닫힌 반공간의 교차점입니다. 초평면 분리 정리는 이 경우 볼록 선체에 없는 각 지점을 반간격으로 볼록선체와 분리할 수 있음을 증명한다. 그러나 이러한 방식으로 나타낼 수 없는 볼록 집합과 볼록한 집합이 있습니다. 열린 하프스페이스는 이러한 예입니다. 여기에 제공된 구현에는 std:::p ints의 airs로 점을 포함하는 std::vector를 포함하는 함수 볼록_hull이 있으며 볼록 선체에 있는 점이 포함된 다른 std::vector를 반환합니다. 우리는 구석구석에서 크로스 제품을 계산했기 때문에 볼록한 다각형을 얻고 있다는 것을 확실히 알고 있습니다. 이제 우리는이 볼록 한 다각형이 실제로 모든 점을 동봉한다는 것을 증명해야합니다. 다음 지점으로 이동, 우리는 같은 일을 계속 : 모서리가 볼록하다 확인 wheter, 그렇지 않은 경우, 점을 제거 한 다음 다음 점을 추가하고 반복에 가서. 입력은 x 및 y 좌표에 의해 지정된 점의 배열입니다. 출력은 이 점 세트의 볼록한 선체입니다.

(실제로 이러한 조건을 충족하는 가장 작은 볼록 다각형이지만 원래 점 집합의 하위 집합인 볼록 다각형의 모퉁이 점에서 매우 쉽게 따릅니다.) 첫 번째 정의가 의미가 있다는 것은 분명하지 않습니다 : 왜 모든 X에 대해 X를 포함하는 고유 한 최소 볼록 세트가 있어야합니까? 그러나 두 번째 정의인 X를 포함하는 모든 볼록 세트의 교차점은 잘 정의되며 교차되는 집합 중 Y가 포함되기 때문에 X를 포함하는 다른 모든 볼록 집합 Y의 하위 집합입니다. 따라서 X를 포함하는 고유의 최소 볼록 세트입니다. X를 포함하는 각 볼록 세트는 X의 모든 볼록 조합이 X의 모든 볼록 조합을 포함해야 하므로 모든 볼록 조합 세트는 X를 포함하는 모든 볼록 세트의 교차점에 포함되어 있습니다. 그 자체로 X를 포함하는 볼록 세트이므로 X를 포함하는 모든 볼록 세트의 교차점도 포함되므로 이 두 정의에서 부여된 집합은 같아야 합니다. 사실, Carathéodory의 정리에 따르면 X가 N 차원 벡터 공간의 하위 집합인 경우, 대부분의 N + 1 점의 볼록 조합은 위의 정의에 충분합니다. 따라서 평면에서 3개 이상의 점으로 설정된 X세트의 볼록 선체는 X에서 점의 삼중으로 결정되는 모든 삼각형의 결합이며, 일반적으로 N차원 공간에서 볼록한 선체는 대부분의 N + 1 정점 f에서 결정되는 심플릿의 결합입니다. 롬 X. 2차원 및 3차원의 점의 경우 출력에 민감한 알고리즘은 O(n log h)의 볼록 한 선체를 계산하는 것으로 알려져 있습니다. 치수 d가 3보다 높은 경우 볼록 선체를 계산하는 시간은 O(n^{lfloor d/2rfloor})}이며 문제의 최악의 출력 복잡성과 일치합니다. [5] 볼록한 선체는 일반적으로 윤리학에서 최소 볼록 다각형 (MCP)으로 알려져 있으며, 동물이 관찰 된 점을 기반으로 동물의 집 범위를 추정하는 것은 아마도 단순하지만 고전입니다. [10] 이상값은 MCP를 지나치게 크게 만들 수 있으며, 이는 관측값의 하위 집합만 포함하는 완화된 접근 방식을 동기부여했습니다(예: 포인트의 95% 이상을 포함하는 MCP 찾기). [11] 계산 지오메트리에서는 유한한 점 세트와 다른 기하학적 객체에 대해 볼록 선체를 계산하는 알고리즘이 많이 알려져 있습니다.

마지막 단계는 방금 찾은 볼록한 선체를 시각화하는 것입니다. 물론 볼록 선체 자체는 단지 윤곽이기 때문에 OpenCV의 드로브를 사용할 수 있습니다. 등고선 정보 대신 특징점 정보를 복구하는 다른 응용 프로그램이 몇 가지 있습니다. 예를 들어 Kinect와 같은 많은 활성 조명 시스템에서는 점 모음인 그레이스케일 깊이 맵을 복구합니다.

Comments are closed.