2016-08-24 1 views
0

mein Programm Zweck ist es, 2 Bilder zu nehmen und zu entscheiden, wie ähnlich sie sind. ich spreche hier nicht über identische, aber Ähnlichkeit. Zum Beispiel, wenn ich 2 Screenshots von 2 verschiedenen Seiten derselben Webseite mache, wären ihre Themenfarben wahrscheinlich sehr ähnlich und deshalb möchte ich, dass das Programm erklärt, dass sie ähnlich sind.Python2.7 Histogramm Vergleich - weißer Hintergrund Anomalie

Mein Problem beginnt, wenn beide Bilder einen weißen Hintergrund haben, der ziemlich genau die Histogrammberechnung übernimmt (über 30% des Bildes ist weiß und der Rest ist verteilt).

In diesem Fall gibt der cv2.compareHist (Korrelationsmethode, die für die anderen Fälle funktioniert) sehr schlechte Ergebnisse, das heißt, die Note ist sehr hoch, obwohl sie sehr unterschiedlich aussehen.

Ich habe überlegt, das Weiß (255) vor dem Vergleich aus dem Histogramm zu nehmen, aber das erfordert, dass ich das Histogramm mit 256 Bins berechnen muss, was nicht gut ist, wenn ich die Ähnlichkeit prüfen will (ich dachte, dass ich 32 oder 64 verwende) Behälter wäre am besten)

leider kann ich nicht Bilder hinzufügen, mit rechtlichen Gründen

, wenn jemand mit einer Idee helfen kann, oder Code im, arbeiten, die es i

Sie

danken sehr wäre sehr dankbar, löst viel

+0

Anstatt reines Weiß zu entfernen, entfernen Sie einfach das höchste Fach Ihres Histogramms, unabhängig davon, ob 32 oder 64 Fächer vorhanden sind. – Sunreef

Antwort

0

Sie können die weiße Farbe entfernen, das Histogra neu erstellen und dann vergleichen:

  • Berechnen Sie ein Histogramm mit 256 Bins.
  • Den weißen Behälter entfernen (oder Null machen).
  • Gruppieren Sie die Fächer neu, um 64 Behälter zu erhalten, indem Sie die Werte von 4 aufeinander folgenden Behältern hinzufügen.
  • Führen Sie compareHist() aus.

Dies würde für jede "vorherrschende Farbe" funktionieren. Um zu verallgemeinern, können Sie Folgendes tun:

Vergleichen Sie die vollständigen histrogramme. Wenn sie anders sind, dann beende. Wenn sie ähnlich sind, suchen Sie nach der vorherrschenden Farbe (mit einem Histogramm mit 256 Fächern) und führen Sie das oben beschriebene Verfahren aus, um die vorherrschende Farbe aus dem Vergleich zu entfernen.

+0

Ich habe die Frage bearbeitet –