Zidentyfikuj właściwe miejsce do umieszczenia etykiety


12

Na poniższym obrazku mam zestaw danych 2D, w którym zidentyfikowałem cztery oznaczone klastry [0,1,2,3]. Szukam algorytmu do umieszczania etykiet w naturalny * sposób dla każdego kształtu. Moim pierwszym przypuszczeniem było umieszczenie ich w „środku masy” gromady, co pokazano poniżej. W przypadku ciągłych klastrów działa to dobrze. Jednak w przypadku klastrów, które przyjmują kształt jak w klastrze 0, podejście kończy się niepowodzeniem. Bez użycia legendy, jaka byłaby lepsza metoda umieszczania etykiet na tym obrazie?

* naturalne tutaj jest do pewnego stopnia subiektywne, ale celem etykiet jest pomoc widzowi w powiązaniu określonego regionu na płaszczyźnie xy z liczbą.

wprowadź opis zdjęcia tutaj


1
Witamy w DSP.SE. To świetne pytanie! =)
— Phonon

@Hooked Jeśli klastry są modelowane jako dwuwymiarowe gaussianie średniej i macierz kowariancji 2x2, to sądzę, że naturalne umiejscowienie byłoby po prostu średnią gaussianów. Czy już określiłeś średnią swoich klastrów?
— Spacey

Odpowiedzi:


11

Co powiesz na umieszczenie etykiety w najbardziej wewnętrznym punkcie segmentu? Zdefiniujmy wewnętrznie maksimum transformacji odległościowej maski segmentu.

Dzięki takim systemom oprogramowania jak Mathematica i tym podobne osiągnięcie jest proste.

Maska dla jednego segmentu i jego transformacja odległości: wprowadź opis zdjęcia tutaj

Po powtórzeniu dla każdego segmentu i etykiet pozycjonowania, w których poszczególne przekształcenia odległości są maksymalne:

wprowadź opis zdjęcia tutaj


1
Zastanawiasz się nad tym, co znaczy „najbardziej wewnętrzny”? Nie mam dostępu do Matematyki (używając Pythona), ale powinienem być w stanie kodować dowolne przedstawione rozwiązanie.
— Hooked

@Hooked Zobacz edycję. Jeśli masz dostęp do funkcji obliczającej transformację odległości, wszystko jest ustawione.
— Matthias Odisio

2
Wygląda to świetnie i nie sądzę, że trudno będzie się wdrożyć. Dla jasności, czy zastosowana transformacja jest „... transformacją odległości obrazu, w której wartość każdego piksela jest zastępowana jego odległością do najbliższego piksela tła”.
— Hooked

Tak, to jest to. Zaimplementowanie tego rozwiązania nie będzie trudne, pod warunkiem, że nie musisz samodzielnie kodować funkcji przekształcania odległości (szybkie implementacje są trudniejsze do zakodowania)
— Matthias Odisio

8

Uważam, że idealne miejsce na umieszczenie etykiety powinno spełniać dwa cele:

  • d
  • l

l×dαl+αdα

dl

Reszta to optymalizacja numeryczna.


1
d
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.