Laden...

Bilder vergleichen: Ähnlichkeit feststellen, auch wenn der Bildausschnitt etwas verschoben ist

Erstellt von JMano vor 10 Jahren Letzter Beitrag vor 10 Jahren 9.249 Views
J
JMano Themenstarter:in
38 Beiträge seit 2013
vor 10 Jahren
Bilder vergleichen: Ähnlichkeit feststellen, auch wenn der Bildausschnitt etwas verschoben ist

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?

C
2.122 Beiträge seit 2010
vor 10 Jahren

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.

49.485 Beiträge seit 2005
vor 10 Jahren

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

5.942 Beiträge seit 2005
vor 10 Jahren

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