Seite 1 von 1
Bilder vergleichen
Verfasst: Montag 5. April 2010, 13:05
von Andyh
Hallo
Ich möchte zwei Bilder vergleichen und zwar so das ein Prozentwert herauskommt.
Habe schon einige Sachen mit PIL ausprobiert, leider ohne Ergebnis.
Gruß
Andyh
Re: Bilder vergleichen
Verfasst: Montag 5. April 2010, 13:08
von Hyperion
Andyh hat geschrieben:
Ich möchte zwei Bilder vergleichen und zwar so das ein Prozentwert herauskommt.
Die entscheidene Frage ist doch, wie dieser Wert ermittelt werden soll? Was ist das Kriterium für "Gleichheit"?
Habe schon einige Sachen mit PIL ausprobiert, leider ohne Ergebnis.
Du bist doch kein Neuling mehr hier (> 300 Posts)... also solltest Du wissen, dass man ein wenig präziser beschreiben sollte, was man erreichen will und ggf. auch mal zeigen sollte, was man denn bereits probiert hat und woran es ggf. hapert.
Du glaubst doch nicht, dass Dir nach diesen 2 Sätzchen jemand ernsthaft helfen kann?
Verfasst: Montag 5. April 2010, 13:43
von Andyh
Hallo
Ja die Frage war jetzt nicht gerade meine beste
Nur wieder mal komisch ich habe den ganzen morgen gesucht und gebastelt und nichts gefunden, dann stell ich hier die Frage und finde dann innerhalb einer Stunde etwas.
Code: Alles auswählen
def img_equal(i1, i2, o_grenze = None, u_grenze = None):
assert i1.mode == i2.mode, "Different kinds of images."
assert i1.size == i2.size, "Different sizes."
pairs = izip(i1.getdata(), i2.getdata())
if len(i1.getbands()) == 1:
dif = sum(abs(p1-p2) for p1,p2 in pairs)
else:
dif = sum(abs(c1-c2) for p1,p2 in pairs for c1,c2 in zip(p1,p2))
ncomponents = i1.size[0] * i1.size[1] * 3
diff = 100 - ((dif / 255.0 * 100) / ncomponents)
if o_grenze and u_grenze:
if diff >= u_grenze and diff <= o_grenze:
return (True, diff)
else:
return (False, diff)
else:
return diff
gruß
Andyh
Verfasst: Montag 5. April 2010, 14:41
von BlackJack
@Andyh: Das die Funktion je nach Argumenten mal ein Tupel und mal einen einzelnen Wert zurückgibt ist unschön. Ausserdem funktioniert das nicht wenn die Ober- oder die Untergrenze 0 ist. Dieser zusätzliche Test ob das Ergebnis in einem bestimmten Rahmen liegt gehört IMHO nicht in diese Funktion.
Verfasst: Dienstag 6. April 2010, 08:07
von Gabelmensch
Verfasst: Dienstag 6. April 2010, 09:18
von Andyh
Hallo
Nö eigentlich nicht. Ich habe es genau so wie es da steht in einer Paste gefunden, weis aber gerade nicht mehr wo das wahr.
Es ist aber fast identisch also hat da jemand abgeschrieben
Gruß
Andyh