2011-01-11 6 views
-1

Diese Frage soll sowohl eine Zusammenfassung zu konzentrieren und einen Ansatz zu meinem Problem bei "Find the most colourful image in a collection of images" ausgedrückten konzentrieren.Most "gründliche" Verteilung von Punkten um einen Kreis

Stellen Sie sich vor, wir haben eine Reihe von Kreisen, jeder hat eine Anzahl von Punkten um seinen Umfang. Wir wollen eine Metrik finden, die einem Kreis eine höhere Bewertung gibt, mit gleichmäßig verteilten Punkten im Kreis. Kreise mit einigen Punkten, die durch die vollen 360 ° gestreut sind, sind besser, aber Kreise mit einer viel größeren Anzahl von Punkten in einem Bereich verglichen mit einer kleineren Zahl in einem anderen Bereich sind weniger gut.

Die Anzahl der Punkte ist nicht begrenzt.

Zwei oder mehr Punkte können übereinstimmen.

Übereinstimmende Punkte sind immer noch relevant. Ein Kreis mit einem Punkt bei 0 ° und einem Punkt bei 180 ° ist besser als ein Kreis mit 100 Punkten bei 0 ° und 1000 Punkten bei 180 °.

Ein Kreis mit einem Punkt jeden Grad um den Kreis ist sehr gut. Ein Kreis mit einem Punkt in jedem halben Grad um den Kreis ist besser.

In meiner anderen (farbbasierten Frage) wurde vorgeschlagen, dass Standardabweichung nützlich wäre, aber mit Vorbehalt. Ist das ein guter Vorschlag und bewältigt er die Nähe von 359 ° zu 1 °?

Antwort

1

Also, ich würde Winkel Unterschiede betrachten. Der erste Schritt besteht darin, die Punkte um den Kreis herum zu sortieren. Dann summiere die quadratischen benachbarten Winkelunterschiede.

Nehmen wir also an, p [0] ist 0 Grad, p [1] ist 10 und p [2] ist 20. Dann ist der Fehler (10-0)^2 + (20-10)^2 + (360-20)^2.

Sie könnten auch durch die Anzahl der Punkte normalisieren, oder jede Differenz normalisieren basierend auf den optimalen Abstand für die Anzahl der Punkte (abs (Differenz) -optimale)^2

Sie auch mit wahrnehmbaren Farb aussehen könnte Räume statt nur RGB oder HSV.

+0

Re wahrnehmbare Farbräume, entschied ich mich zu ignorieren zu versuchen, menschliche Vision für jetzt und den vereinfachten Fall zuerst zu lösen. – hippietrail

2

Das hängt sehr davon ab, was Sie eigentlich erreichen wollen, wenn Sie nur eine gleichmäßige Verteilung wünschen, dann könnten Sie einfach alle Punkte auf dem Kreis nehmen und sie mitteln, je näher dieser Mittelpunkt an der Mitte des Kreises liegt , desto gleichmäßiger die Verteilung.

Die Einschränkung hier ist jedoch, dass eine Verteilung mit 180 Punkten bei 0 ° und 180 Punkten bei 180 ° genau so gut ist wie eine Verteilung mit einem einzelnen Punkt bei jedem Grad. Es ist einfach eine Frage der Definitionen, ob Sie das wollen oder nicht.

Ein verwandten, aber ein wenig komplexes Konzept ist, dass die geometrischen Standardabweichung: http://en.wikipedia.org/wiki/Geometric_standard_deviation

Eine andere Methode wie in der anderen Frage vorgeschlagen würde, Blick auf der mittleren Anzahl von Punkten in allen Winkeln und sieht, wie viel für jeden Winkel weicht die Anzahl der Punkte davon ab.

heißt lassen I Ihr Satz von Winkeln sein, sagen {0..359} und v_i = #points at angle i, for i in I, wo ein Punkt p im Winkel ist i iff floor(p) == i. Dann mean_v = (sum of v_i for i in I)/length(I) und d_v_i = v_i - mean_v.

Jetzt können Sie mehrere Metriken definieren:

  1. maximum of abs(d_v_i) for i in I
  2. sum of abs(d_v_i) for i in I
  3. sqrt((sum of (d_v_i^2) for i in I)/length(I)) (dies ist die Standardabweichung)

Es gibt viele weitere Metriken sind Sie nehmen könnte, jede Zahl, die drückt die in d_v_i enthaltenen Abweichungen aus. Es ist alles eine Frage dessen, was genau Sie wollen, dass die beste Metrik bestimmen würde.

Eine letzte Anmerkung, da Sie wahrscheinlich die Metriken zwischen verschiedenen Eingabesätzen vergleichen möchten, d. H. Mengen mit unterschiedlicher Anzahl von Datenpunkten, die in Ihrem Fall Bilder unterschiedlicher Größe sind. Wahrscheinlich müssen Sie die Messwerte entsprechend der Größe Ihrer Eingabe skalieren, und abhängig von der verwendeten Metrik müssen Sie möglicherweise auf verschiedene Arten skalieren. Es gibt jedoch eine einfache Möglichkeit, Ihre Metrik zu validieren. Berechnen Sie einfach die Metrik für ein Bild, skalieren Sie das Bild dann auf eine andere Größe und berechnen Sie es erneut für das skalierte Bild. Beide Metriken sollten natürlich gleich sein.