라벨을 부착 할 올바른 지점을 식별하십시오


12

아래 이미지에는 레이블이 지정된 4 개의 클러스터를 식별 한 2D 데이터 세트가 있습니다 [0,1,2,3]. 각 모양에 대해 레이블을 자연스럽게 배치하는 알고리즘을 찾고 있습니다. 첫 번째 추측은 클러스터의 "질량 중심"에 배치하는 것입니다. 아래에 나와 있습니다. 연속 클러스터의 경우이 기능이 제대로 작동합니다. 0그러나 클러스터와 같은 모양을 갖는 클러스터의 경우 접근 방식이 실패합니다. 범례를 사용하지 않고이 이미지에 레이블을 배치하는 더 좋은 방법은 무엇입니까?

* 여기서 자연 스럽지만 어느 정도 주관적이지만 레이블의 요점은 시청자가 xy 평면의 특정 영역을 숫자와 연결하는 데 도움이됩니다.

여기에 이미지 설명을 입력하십시오


1
DSP.SE에 오신 것을 환영합니다. 이것은 좋은 질문입니다! =)
Phonon

@Hooked 만약 군집이 평균의 2 차원 가우스 시안과 2x2 공분산 행렬로 모델링된다면, 자연스러운 배치는 단순히 가우시안의 평균이라고 생각할 것입니다. 클러스터의 평균을 이미 결정 했습니까?
Spacey

답변:


11

라벨을 세그먼트의 가장 안쪽에 놓는 것은 어떻습니까? 세그먼트 마스크의 최대 거리 변환으로 가장 안쪽을 정의합시다.

Mathematica와 같은 소프트웨어 시스템 및 정렬 방식을 사용하면 간단합니다.

한 세그먼트의 마스크와 거리 변환 : 여기에 이미지 설명을 입력하십시오

개별 거리 변환이 최대 인 각 세그먼트 및 위치 레이블에 대해 반복 한 후 :

여기에 이미지 설명을 입력하십시오


1
"가장 안쪽"의 의미에 대해 조금 더 자세히 설명 하시겠습니까? Mathematica (파이썬 사용)에 액세스 할 수는 없지만 제시된 솔루션을 코딩 할 수 있어야합니다.
걸려

@Hooked 편집 내용을 참조하십시오. 거리 변환을 계산하는 함수에 액세스 할 수 있으면 모두 설정됩니다.
Matthias Odisio

2
이것은 훌륭해 보이며 구현하기가 어려울 것이라고 생각하지 않습니다. 분명히, 당신이 적용한 변환이 "... 각 픽셀의 값이 가장 가까운 배경 픽셀까지의 거리로 대체되는 이미지의 거리 변환"입니까?

그렇습니다. 거리 변환 함수를 직접 코딩 할 필요가 없다면이 솔루션을 구현하는 것은 어렵지 않습니다 (빠른 구현은 코딩하기 까다
로움

8

라벨을 배치하기에 이상적인 장소는 두 가지 목표를 충족해야합니다.

  • d
  • l

l×dαl+αdα

dl

나머지는 수치 최적화입니다.


1
d
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.