2010-06-01 3 views
2

일부 클러스터링 알고리즘에 일부 데이터 포인트가 있습니다 (이미지가 나타날 때까지 약간의 시간이 걸릴 수 있음) alt text http://www.freeimagehosting.net/uploads/05a807bc42.png문제가 MATLAB의 데이터 클러스터에 다각형 드로잉

각 색상은 다른 클러스터를 나타냅니다. 각 클러스터 주위에 다각형을 그려야합니다. 이런 이유로 convhull을 사용합니다. 그러나 당신이 볼 수 있듯이 붉은 색 클러스터의 다각형은 매우 크고, 내가 찾고있는 영역이 아닌 많은 영역을 포함합니다. 내 데이터 세트 주위에 선 (ploygons)을 그려야합니다. 예를 들어 위의 그림에서 3 개의 가지가있는 빨간색 클러스터와 똑같은 (그리고 주변의) 다각형을 그려야합니다. 즉,이 경우 전체 영역을 덮는 큰 다각형이 아닌 내 빨간 클러스터를 덮기 위해 3 개의 분기가있는 다각형이 필요합니다. 아무도 이것으로 나를 도울 수 있습니까? 알고리즘은 클러스터가 알고리즘 실행마다 변경되므로 솔루션이 일반적이어야한다는 점에 유의하십시오. 따라서 일반적인 방식이어야합니다.

+0

중복 http://stackoverflow.com/questions/2944872/drawing-and-filling-different-polygons-at-the-same-time-in-matlab –

+0

는 미안하지만,이 완전히 다르다. ... – Hossein

답변

3

이것이 완전히 지정된 질문인지 확신 할 수 없습니다. 이 질문에 대한이 변종이 꽤 자주 나타납니다.

왜 여기에 답을 할 수없는 이유 : 같은 방향으로 정삼각형 안에 3 개의 정삼각형이있는 3 개의 정삼각형으로 6 개를 상상해보십시오.

이 주변의 올바른 선체는 무엇입니까? 그냥 볼록한 선체입니까? 3 개의 라인 스퍼가 나오는 안쪽 삼각형입니까? 삼각형의 상대적인 크기가 중요하니? 그 매개 변수를 지정해야합니까?

0

당신의 클러스터가 매우 컴팩트 한 경우, 다음과 같은 시도 할 수 :

  1. 그리드를 만들기 0.1의 간격을 말한다.
  2. 하나 이상의 데이터 요소가있는 경우 눈금의 모든 픽셀을 1로 설정하고 픽셀을 덮는 데이터 요소가 없으면 픽셀을 0으로 설정합니다.
  3. 불량한 불운으로 인해 색칠되지 않은 내부에 작은 구멍을 채우기 위해 마스크에 imclose을 실행해야 할 수도 있습니다.
  4. 예를 들어,를 사용하여 테두리 픽셀을 추출합니다. bwperim. 이것은 당신이 찾고있는 다각형의 윤곽입니다.