BIKUBISCHE INTERPOLATION AM BEISPIEL DER DIGITALEN BILDBEARBEITUNG - AUFGABENSTELLUNG FÜR SCHÜLER Problem Bei Veränderung der Größe eines Digitalbildes sind entweder zuviel Pixel (Verkleinerung) oder zuwenig Pixel (Vergrößerung) vorhanden. Bei der Verkleinerung werden Pixel aus dem Bild entfernt und aus den ursprünglichen Pixelwerten werden neue Pixelwerte für die verringerte Pixelzahl berechnet. Bei der Vergrößerung des Bildes müssen neue Pixelwerte für die größere Pixelzahl hinzugerechnet werden. In beiden Fällen müssen die neuen Pixelwerte so berechnet werden, dass möglichst wenig Bildfehler entstehen. Grundsätzlich gilt, dass bei jeder Formatänderung eine Neuberechnung des Bildes erfolgen muss, dies führt immer zu irreversiblen Datenverlust. Aus dem Grund sollte immer die Originaldatei erhalten werden und jede Bildveränderung unter einem neuen Namen gespeichert werden. Die Berechnung der Farb- und Helligkeitswerte der neuen Pixel erfolgt nach dem mathematischen Verfahren der Interpolation. Dabei werden aus benachbarten Pixelwerten Zwischenwerte berechnet, die möglichst nahe den Werten der beteiligten Ursprungswerte liegen. Man unterscheidet dabei drei verschiedene Möglichkeiten, mit denen unterschiedliche Bildqualitäten erreicht werden:. Pixelwiederholung (einfachstes und schnellstes Verfahren, schlechte Bildqualität, verpixeltes Bild). lineare Interpolation (oder auch bilineare Interpolation). bikubische Interpolation (bestes Verfahren, erfordert hohen mathematischen Aufwand) Am einfachsten lässt sich das Prinzip am Beispiel der Verdoppelung der Bildgröße demonstrieren. Zu diesem Zweck wurde ein Schwarz-Weiß- Foto auf eine geringe Pixelzahl verkleinert und anschließend mit Photoshop die prozentuale Flächendeckung (Schwärzung K) jedes Pixels ermittelt. Aufg_Bikubische_Interpolation_SAXSIM_.doc Dr.Neidhart Kamprath
Veranschaulichung der drei Interpolationsverfahren - Prinzip Pixelwiederholung lineare Interpolation bikubische Interpolation neue Spalte neue Zeile Aus einem Pixel werden 4 Pixel, aus 4 Pixeln werden 4x4 = 6 Pixel. Die Kantenschärfe bleibt erhalten, das Bild wird aber grob verpixelt. Beispielrechnung zur linearen Interpolation: oberer Schwärzungswert: = 9 unterer Schwärzungswert = neue Zeile Schwärzungs-Zwischenwert wird im einfachsten Fall als arithmetischer Mittelwert der beiden benachbarten Schwärzungswerte in eine neue Zeile hinzugefügt. neuer, mittlerer Schwärzungswert = (+9)/ = 55 Bei bilinearer Interpolation wird im einfachsten Fall der Mittelwert eines Pixel- Quartetts berechnet und in die Kreuzung der neuen Zeile und neuen Spalte eingetragen. neue Zelle mit interpoliertem Wert Für die Berechnung eines neuen Pixelwertes werden die 6 benachbarten Schwärzungs-, Helligkeits- oder Farbwerte ausgewertet. Die Beschreibung erfolgt durch eine kubische Interpolationsfunktion mit zwei unabhängigen Variablen (xund y-koordinaten der Pixelpositionen daher bikubisch). Da 6 Einzelwerte berücksichtigt werden müssen, entsteht ein Gleichungssystem mit 6 Unbekannten für die Berechnung der Koeffizienten der Interpolationsfunktion, die in Folge dessen auch 6 einzelne Polynomterme besitzen muss. Für den neuen Wert werden je eine neue Spalte und eine neue Zeile eingefügt. An der Kreuzung wird der Pixelwert mit der kubischen Funktion berechnet. Aufg_Bikubische_Interpolation_SAXSIM_.doc Dr.Neidhart Kamprath
Erläuterungen zur Arbeit mit einem Digitalbild mittels Photoshop Änderung der Bildgröße mittels Photoshop Wenn man die Größe eines Bildes ändern will, geht man das über den Menüpunkt Bild zu dem Untermenü Bildgröße. Hier werden dann die Abmessungen, die Dateigröße und die Auflösung des Bildes angezeigt. Jetzt kann man die gewünschten Änderungen vornehmen. Mit OK wird das veränderte Bild abgespeichert und das ursprüngliche Bild geht verloren. Wenn man keine weiteren Einstellungen vorgenommen hatte, wird das veränderte Bild der voreingestellten bikubischen Interpolation unterworfen und abgespeichert. Aktiviert man vorher das untere Pull-Down-Menü bei bikubisch, erscheinen die beiden weiteren Berechnungsverfahren (s. nebenstehende Abbildung) die zur Anwendung ebenfalls bereitstehen. Einschalten der Palette für die Bildpunktinformationen Um sich diese Informationen anzeigen zu lassen, ist es nötig über den Menüpunkt Fenster das Kästchen Informationen zu aktivieren. Aufg_Bikubische_Interpolation_SAXSIM_.doc Dr.Neidhart Kamprath
Anzeigen der Bildinformation an der Cursorposition in Photoshop Schwärzungswert K aktuelle X-Y- Koordinaten des Farbaufnehmers Farbwerte des CMYK Farbsystems erfasster Pixelbereich in Breite und Höhe Beispiel eines stark pixelreduzierten Bildes und auslesen der Pixeldaten Der Cursor ist im Kreuzungspunkt der Hilfslinien positioniert und liefert folgende Daten des Pixelwertes: x-koordinate:,6mm y-koordinate: 4,mm Schwärzungswert K: % Cyan-Farbwert C: % Magenta-Farbwert M: 8% Yellow_Farbwert Y: 8% Grauwert K: % Breite des erfassten Bereiches B: Höhe des erfassten Bereiches H:,mm,mm Aufg_Bikubische_Interpolation_SAXSIM_.doc Dr.Neidhart Kamprath 4
Beispiel für die prozentuale Flächendeckung eines pixelreduzierten Bildes aus x 5 Pixel im Vergleich zum Originalbild mit 6 x 94 Pixel Auslesen der Schwärzungswerte Pixelreduktion Auflösung 4 Pixel/Zoll 5 Pixel/Zoll Die Umrechnung der prozentualen Schwärzung in Helligkeitswerte eines 8-bit Signals (56 Grauwerte von = schwarz bis 55 = weiß) erfolgt nach nebenstehender Beziehung: Beziehungsweise die Umkehrung: K H = 55 K = H 55 Aufg_Bikubische_Interpolation_SAXSIM_.doc Dr.Neidhart Kamprath 5
Aufgabenstellung Entwerfen Sie mittels MathCAD ein Rechenblatt zur Berechnung des neuen Pixelwertes der prozentualen Schwärzung K im Zentrum von 6 benachbarten Werten nach dem Verfahren der bikubischen Interpolation. Das Polynom der bikubischen Funktion lautet: k( x, y) = a y + a x + a x + a x + a4 y + a5 y + a6 y + a7 x y + a8 x y + a9x +... Gestalten Sie das Rechenschema so allgemein, so dass außer der Dateneingabe von Hand alle Berechnungen ohne weitere Eingriffe in das Rechenschema erfolgen. Nutzen Sie zur Berechnung die Möglichkeiten der Matrizenrechnung von MathCAD und veranschaulichen Sie die Berechnungsergebnisse auf geeignete Weise. Teilaufgaben... + a x y + a x y + a x y + a x y + a4 x y + a5 x y. Entwerfen Sie unter Berücksichtigung des EVA-Prinzips den Algorithmus zur Gestaltung des Rechenblattes.. Gestalten Sie die Dateneingabe für die Schwärzungswerte und für die Koordinatenwerte in x- und in y- Richtung mit nebenstehenden Beispielwerten.. Erzeugen Sie die für die Lösung des Gleichungssystems notwendigen Matrizen. 4. Berechnen Sie die 6 unbekannten Koeffizienten a i mit i =,,,...,5 des Interpolationspolynoms durch Lösung des Gleichungssystems für die nebenstehenden Schwärzungswerte und Koordinaten. 5. Veranschaulichen Sie das Ergebnis mit einem D-Säulendiagramm aus den Eingabedaten und dem interpolierten Neuwert. 6. Veranschaulichen Sie die Interpolationsfunktion als Fläche.Ordnung in einem D-Diagramm (optional). 7. Ergänzen Sie das Rechenschema um die Berechnung der bilinearen Interpolation für die benachbarten vier und die benachbarten 6 Schwärzungswerte. Vergleichen Sie die Ergebnisse mit denen der bikubischen Interpolation. Interpretieren Sie die Unterschiede in ihrer Auswirkung auf die Bildqualität. 8. Variieren Sie die Eingabewerte durch Auswahl eines anderen Bildausschnittes und protokollieren Sie die Ergebnisse und Unterschiede. 9. Dokumentieren Sie Ihre Arbeitsweise und Ihre Arbeitsergebnisse. y\x 4 9 9 4 6 69 69 6 64 69 4 44 8 7 6 Aufg_Bikubische_Interpolation_SAXSIM_.doc Dr.Neidhart Kamprath 6
Lösungshinweise. Eingabe der Schwärzungswerte K in eine 4x4-Matrix KW in Analogie zur Struktur der Pixelmatrix des Bildes. KW := 9 69 44 4 6 8 6 64 7 9 69 69 6. Eingabe der x-koordinaten und der y-koordinaten als Vektoren xk und yk Prinzipiell können auch die aus Photoshop ermittelten Koordinaten übernommen werden, dies ändert aber nichts am Ergebnis des interpolierten Schwärzungswertes. Durch die Verwendung der wahren Koordinaten wird nur das Berechnungsschema komplizierter, ohne Nutzen für die Klärung des prinzipiellen Zusammenhangs. xk := yk 4 := 4. Erzeugung einer 5x5-Matrix KWE mit Leerspalte und Leerzeile in der Mitte der Matrix und automatische Übernahme der Schwärzungswerte aus der 4x4-Matrix KW. KWE := KW, KW, KW, KW, KW, KW, KW, KW, KW, KW, KW, KW, KW, KW, KW, KW, Aufg_Bikubische_Interpolation_SAXSIM_.doc Dr.Neidhart Kamprath 7
4. Aufstellen des linearen Gleichungssystems mit 6 Gleichungen für die 6 unbekannten Koeffizienten a, a,..., a 5. nach dem Ansatz des bikubischen Polynoms. Die Matrizen-Schreibweise lautet dafür: (XY) *A = K a) Erzeugung der 6x6-Koeffizientenmatrix (XY) des Gleichungssystems entsprechend der bikubischen Funktion. Nutzen Sie dazu die MathCAD-Anweisungen stapeln, erweitern, transponieren, submatrix und vektorisieren. b) Erzeugung des Spaltenvektors der Schwärzungswerte K für das Gleichungssystem. Nutzen Sie dazu die MathCAD-Anweisungen submatrix. c) Matrizenmultiplikation der Gleichung mit der inversen Koeffizientenmatrix (XY) von links und Auflösen der Gleichung nach dem Spaltenvektor A der Polynomkoeffizienten (XY) - * K = A Erproben Sie ergänzend die Ermittlung der Koeffizientenmatrix A mit der MathCAD-Anweisung llösen und vergleichen Sie die Berechnungsergebnisse. d) Ausgabe der Lösung des Spaltenvektors A mit den Koeffizienten a, a,..., a 5. Mit dem Interpolationspolynom müssen sich alle 6 Schwärzungswerte zu den gegebenen Koordinaten berechnen lassen, deshalb sind 6 Gleichungen in einem Gleichungssystem nötig um die 6 konkreten Koeffizienten a i, zu ermitteln. Jeder der 6 Wertetripel erfüllt damit die Funktionsdefinition k(x,y). 5. Funktionsvereinbarung k(x,y) mit den konkreten Koeffizienten a i aus dem Spaltenvektor A. 6. Berechnung des k-wertes mit der ermittelten bikubischen Funktion an den Koordinaten der Kreuzung von neuer Zeile mit neuer Spalte, ( k (xk, yk ) ) und Eintragen des Wertes in die Mitte des Datenfeldes KWE an der Kreuzung der Leerzeile mit der Leerspalte. 7. Veranschaulichung des Ergebnisses mit einem D-Säulendiagramm aus den Daten der 5x5-Matrix. Aufg_Bikubische_Interpolation_SAXSIM_.doc Dr.Neidhart Kamprath 8
MathCAD Hilfestellungen für benötigte Anweisungen für die Matrizenoperationen MathCAD-Hilfetext zu stapeln(a,b,c,...) Übergibt ein Feld, das durch Anordnen der Felder A, B, C usw. untereinander gebildet wird. A, B, C usw. sind Felder mit derselben Anzahl von Spalten oder Skalare und Spaltenvektoren. MathCAD-Hilfetext zu erweitern(a,b,c,...) Übergibt ein Feld, das durch das Nebeneinanderstellen der Felder A, B, C usw. von links nach rechts gebildet wird. MathCAD-Hilfetext zu transponieren M^T Übergibt ein Feld des Formats n m, das durch Vertauschen der Zeilen und Spalten eines Feldes vom Format m n gebildet wird. M ist ein Feld oder Vektor. MathCAD-Hilfetext zu submatrix(a,ir,jr,ic,jc) Übergibt eine Teilmatrix von A, die aus den Elementen in den Zeilen ir bis jr und in den Spalten ic bis jc von A besteht. MathCAD-Hilfetext zu vektorisieren Wendet Operatoren und Funktionen elementweise auf ein Feld an, so dass Sie iterative Berechnungen ohne Bereichsvariable durchführen können. MathCAD-Hilfetext zu llösen Übergibt den Lösungsvektor v für das lineare Gleichungssystem M*x = v. MathCAD-Hilfetext zu Aufg_Bikubische_Interpolation_SAXSIM_.doc Dr.Neidhart Kamprath 9