In der Abbildung unten habe ich einen 2D-Datensatz, in dem ich vier Cluster mit der Bezeichnung identifiziert habe [0,1,2,3]
. Ich suche einen Algorithmus, um die Beschriftungen für jede Form auf natürliche Weise zu platzieren. Meine erste Vermutung war, sie in den "Massenmittelpunkt" des Clusters zu platzieren, der unten gezeigt wird. Für zusammenhängende Cluster funktioniert dies problemlos. Bei Clustern, die eine Form wie in Cluster haben 0
, schlägt der Ansatz jedoch fehl. Was wäre eine bessere Methode, um die Beschriftungen auf diesem Bild zu platzieren, ohne eine Legende zu verwenden?
* natural ist hier in gewissem Maße subjektiv, aber der Sinn der Beschriftungen besteht darin, dem Betrachter zu helfen, einen bestimmten Bereich in der xy-Ebene mit einer Zahl zu verknüpfen.
quelle
Antworten:
Wie wäre es, wenn Sie das Etikett an der innersten Stelle des Segments platzieren? Definieren wir das Innerste durch das Maximum der Abstandstransformation der Segmentmaske.
Mit Softwaresystemen wie Mathematica und ähnlichen ist dies einfach zu erreichen.
Die Maske für ein Segment und ihre Entfernungstransformation:
Nach dem Wiederholen für jedes Segment und Positionieren von Beschriftungen, bei denen die einzelnen Abstandstransformationen maximal sind:
quelle
Ich bin der Meinung, dass der ideale Ort für die Platzierung des Etiketts zwei Ziele erfüllen sollte:
Ergo können wir den idealen Punkt bestimmen, indem wir eine ganzheitliche Metrik wie minimierenl × dα l + α d α der Kompromissparameter ist.
Der Rest ist numerische Optimierung.
quelle