Summe der absoluten Differenzen

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 26. Juli 2017 um 11:50 Uhr durch imported>Bautsch(218874) (→‎Umsetzung in der Informatik (monochrome Bilder): Wikilink).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Die Summe der absoluten Differenzen (Abkürzung SAD, von engl. sum of absolute differences) ist eine positive Zahl, die durch Bildung der Differenz zweier digitaler Bilder entsteht. Sie dient als Maß für die Unterschiedlichkeit zweier Bilder und findet Anwendung in der Bildverarbeitung und Schnitterkennung.

Die SAD wird gewonnen, indem die Farbwerte der Bilder Bildpunkt für Bildpunkt voneinander subtrahiert und betragsweise aufsummiert werden.

Mathematische Grundlagen

Ein Bild ist eine Abbildung von einer zweidimensionalen Definitionsmenge in einen Wertebereich . Die Definitionsmenge entspricht der Menge aller Bildpunkte des Bildes und ist demnach gegeben durch , wobei b die Breite und h die Höhe des Bildes in Pixeln bezeichnet. Der Wertebereich entspricht dem Farbraum des Bildes und ist für ein gewöhnliches Grauwert-Modell mit 7 Bit Farbtiefe gegeben durch ; handelt es sich um ein Farbbild, ist der Wertebereich in der Regel dreidimensional.

Gegeben zwei gleich große Bilder und , ist die Summe der absoluten Differenzen definiert durch:

wobei b die Breite und h die Höhe der Bilder bezeichnet.

Die Summe der absoluten Differenzen ist positiv semidefinit, also stets .

Umsetzung in der Informatik (monochrome Bilder)

Ein digitales Bild wird in der Informatik beispielsweise durch den folgenden Datentyp repräsentiert:

type Bild {
   int Breite;
   int Hoehe;
   int Pixel[0..(Breite-1)] [0..(Hoehe-1)];
}

Der Algorithmus wird für zwei Bilder gleicher Größe durch folgenden Pseudocode umgesetzt:

long berechneSAD(Bild B1, Bild B2)
 {
    long SAD = 0;
    For x = 0 to B1.Breite-1 do
       For y = 0 to B1.Hoehe-1 do
          SAD = SAD + abs(B2.Pixel[x][y] - B1.Pixel[x][y])
 }

Der Algorithmus hat eine Komplexität von , wobei n die Anzahl Pixel bezeichnet.