Hi,
Ich wurde gerne in einem C# Programm zwei Bilder (z.B. Screenshots) vergleichen und ihren Unterschied "bewertet" haben (1=genau gleich, 0=Garnichts gleich).
Dabei sollte es aber möglich sein, einige Parameter anzugeben, die bis zu einem gewissen wert nicht zu einem Unterscheidung führen sollen. Wichtig wäre da eine Verschiebung um einige Pixel Richtung X und/oder Y.
Gibt es für soetwas schon in .Net ne Classe/namespace?
Dazu müsstest du festlegen was "gleich" bedeutet. Absolute Gleichheit? Die wäre einfach zu testen. Welches sind die Parameter die darauf Einfluss haben?
Wie soll die Verschiebung aussehen dürfen? Wenn das komplette Bild um 3 Pixel in jede Richtung verschoben sein kann, hast du schon 49 verschiedene Konstellationen.
(Pro Dimension die Ausgangslage plus 3 hin oder her = 7, in beide Dimensionen 7*7)
Erst wenn du das weißt kannst du dich auf die Suche machen oder selbst was programmieren.
Hallo JMano,
für einen Ansatz/Algorithmus zum Berechnen der Ähnlichkeit von zwei Bildern siehe Doppelte (bzw. ähnliche) Bilder finden in Kombination mit Unterschied zweier Bilder berechnen.
Allerdings geht der zweite Beitrag eher von Fotografien aus, bei denen angrenzende Pixel normalerweise ähnliche Farben habe, und daher bei einer kleinen Verschiebung nicht aus schwarz weiß wird und umgekehrt. Bei Screenshots hat man tendenziell eher harte Kontraste und daher kann eine kleine Verschiebung zu großen Unterschieden führen. Man stelle sich - bezogen auf das berechnete Thumbnail-Bild - ein Schachbrettmuster vor, das genau um ein Feld verschoben ist. Da wird der Algorithmus dann keine Ähnlichkeit mehr feststellen bzw. sogar einen maximalen Unterschied. Dann wäre man eher bei dem Problem in Wie ist es möglich ein (Teil-)Bild in einem Bild zu suchen? (Bildsucher) angelangt.
Mit dem Finden von Ähnlichkeiten in großen Bildbeständen beschäftigt sich - etwas abstrakter formuliert - der Thread Aus großer Menge von vieldimensionalen Vektoren die ähnlichsten finden.
Und dann gibt es da noch: Bilder vergleichen.
herbivore
Hallo zusammen
Für die Ähnlichkeitsanalyse habe ich gute Erfahrungen mit folgender Bibliothek gemacht:
Da bekommt man einen prozentualen Ähnlichkeitswert.
Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011