Identifica il punto corretto per posizionare un'etichetta


12

Nell'immagine mostrata di seguito, ho un set di dati 2D in cui ho identificato quattro cluster etichettati [0,1,2,3]. Sto cercando un algoritmo per posizionare le etichette in modo naturale * per ogni forma. La mia prima ipotesi è stata quella di posizionarli nel "centro di massa" del cluster, che è mostrato di seguito. Per i cluster contigui funziona bene. Per i cluster che prendono forma come nel cluster 0, tuttavia, l'approccio fallisce. Senza usare una legenda, quale sarebbe un metodo migliore per posizionare le etichette su questa immagine?

* naturale qui è soggettivo in una certa misura, ma il punto delle etichette è aiutare lo spettatore ad associare una determinata regione nel piano xy con un numero.

inserisci qui la descrizione dell'immagine


1
Benvenuti in DSP.SE. Questa è un'ottima domanda! =)
Phonon,

@Hooked Se i cluster sono modellati come gaussiani bidimensionali di una media e una matrice di covarianza 2x2, allora penso che il posizionamento naturale sarebbe semplicemente la media dei gaussiani. Hai già determinato la media dei tuoi cluster?
Spacey,

Risposte:


11

Che ne dici di mettere l'etichetta nel punto più interno del segmento? Definiamo il più interno dal massimo della trasformata di distanza della maschera del segmento.

Con sistemi software come Mathematica e il genere, è semplice da ottenere.

La maschera per un segmento e la sua distanza si trasformano: inserisci qui la descrizione dell'immagine

Dopo aver ripetuto per ogni segmento e posizionando le etichette in cui le singole trasformazioni della distanza sono massime:

inserisci qui la descrizione dell'immagine


1
Ti dispiace elaborare un po 'ciò che significa "più interno"? Non ho accesso a Mathematica (usando python), ma dovrei essere in grado di codificare qualsiasi soluzione presentata.
Agganciato il

@Hooked Vedi la modifica. Se hai accesso a una funzione che calcola la trasformazione della distanza sei pronto.
Matthias Odisio,

2
Sembra fantastico e non credo che sarà difficile implementare me stesso. Giusto per essere chiari, la trasformazione che hai applicato è la "... trasformazione della distanza dell'immagine, in cui il valore di ciascun pixel viene sostituito dalla sua distanza dal pixel di sfondo più vicino."?
Agganciato il

Sì, è questo. Non sarà difficile implementare questa soluzione, a condizione che non sia necessario codificare tu stesso una funzione di trasformazione della distanza (le implementazioni veloci sono più difficili da codificare)
Matthias Odisio

8

Sottolineo che il posto ideale per posizionare l'etichetta dovrebbe raggiungere due obiettivi:

  • d
  • l

l×dαl+αdα

dl

Il resto è l'ottimizzazione numerica.


1
d
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.