Vimage Special

Geometrische Transformationen

Verschiedene Karten passen oft nicht übereinander. Es ist dann die Aufgabe einer geometrischen Transformation, ein Bild so zu verzerren (oder zu entzerren) dass es pixelgenau mit dem anderen Bild übereinstimmt. Dieses Spezialkapitel widmet sich vertiefend der Passpunkttransformation.

Die Passpunkte

Ein Passpunkt (im weiteren Sinn) ist eigentlich ein Passpunktpaar, das aus einem Basispunkt und einem Passpunkt (in engerem Sinn) besteht. Der Basispunkt bezeichnet die lagerichtige Soll-Position in einem Basisbild, welche nicht verändert wird.

 

Der Passpunkt (im engeren Sinn) bezeichnet die lagefalsche Ist-Position in dem verzerrten Quellbild der geometrischen Transformation.

 

Für eine geometrische Transformation werden mindestens 2 Passpunkte benötigt. Zur Entzerrung komplizierter Geometrien lassen sich Transformationen mit bis zu 800 Passpunkten vornehmen.

 

Für das Setzen und Löschen von Passpunkten gibt es den Passpunktdialog.

 

Der Passpunktdialog

 

Der Passpunktdialog öffnet ein kleines Passpunktmenüfenster. Nun können Passpunkte per Mausklick gesetzt werden. Diese erscheinen als kleine Kreuzchen.

 

Im Bearbeiten-Menü des Passpunktmenüfensters stehen weiteren Funktionen bereit:

 

• Neuen Passpunkt hinzufügen

• Letzten Passpunkt löschen

• Passpunktsatz speichern

• Passpunktsatz laden

• Alle Passpunkte einbrennen

• Alle Passpunkte löschen

• Passpunkte in Basispunkte kopieren

• Passpunkt mit Basispunkten tauschen

• Basispunkte in Passpunkte zurückkopieren

• Basispunkte speichern

• Basispunkte laden

• Alle Basispunkte löschen

• Gesamten Passpunktksatz löschen

• Passpunktdialog beenden

 

Dieses Menü ist auch über Rechts-Mausklick zugänglich.

 

Der Passpunktdialog setzt, löscht, lädt und speichert grundsätzlich immer nur Passpunkte (i. e. S.) Diese stehen links im Passpunktmenüfenster.

 

Basispunkte stehen „im Hintergrund“ auf der rechten Seite des Passpunktmenüfensters. Für Basispunkte gibt es keine gesondert Eingabefunktion. Man setze die Basispunkte zunächst wies Passpunkte und kopiere sie dann mit den Hin-und-her-Kopierfunktionen 2. Menügruppe zu Basispunkten und zurück.

 

Die Passpunkte können zusammen mit ihren zugehörigen Basispunkten in Passpunktdateien (.pas-Dateien) gespeichert werden. Eine Passpunktdatei beschreibt vollständig eine bestimmte geometrische Transformation. Wenn mehrere Bilder in gleicher Art und Weise zu entzerren sind, kann man die entsprechenden Passpunktpaare aus diesen Dateien wieder laden.


Die Zielgeometrie

Rasterbilder geometrisch transformieren heißt, ein Quellbild-„Kästchenpapier“ kästchenweise in ein Zielbild-„Kästchenpapier“ zu übertragen.  Fundamental ist hierbei die Größe und die Geokoordinatendefinition des Zielbildes.

 

Viele geometrische Transformationen scheitern nicht am Algorithmus oder an falschen Passpunkten, sondern daran, dass die Zielgeometrie undefiniert errichtet wird. Vor der Ausführung der geometrischen Transformation sollte das Zielbild in seiner Geometrie entworfen sein.

 

Hier sind verschiedene gedankliche Ansätze möglich, z. B.:

 

• Bei einfachen Operationen wie einer Bildvergrößerung, kann man es Vimage überlassen, die Zielgeometrie automatisch zu errichten.

 

• Bei einer Einpassung einer Karte auf eine andere Grundkarte steht mit dieser die Zielbildgeometrie bereits fest.

 

• Oder es soll ein bestimmtes Papierblatt zugrunde liegen. Für ein Blatt 20 x 30 cm mit 0,1-mm-Pixeln errichte man z. B. ein leeres Bild mit 2000 x 3000 Pixeln als Zielbild.

 

• Oder es wird eine Karte gewünscht? Eine Weltkarte mit längentreuem Äquator und Nullmeridian misst in 1:100 Millionen 20 x 40 cm. Bei 0,1-mm-Pixeln ist hier in ein Bild mit 2000 x 4000 Pixeln „hineinzutransformieren“.

 

Um nun die Zielbildgeometrie Vimage mitzuteilen, gibt es 3 Möglichkeiten, die über die Option „Zielgeoemtriewahl“ eingestellt werden: a) Automatisch, b) Zielbild dem Sekundäroperanden entnehmen, c) Zielbildgeometrie einer Datei entnehmen. Siehe hierzu unten.


Kurze Mustertechnologie für eine Passpunkttransformation

 

Basisbild und zu entzerrendes Bild sollten als Fixbilddatei vorliegen. Dann gehe man wie folgt vor:

 

  1. Basisbild in Bild 0 laden

  2. Passpunktmenü rufen

  3. Basispunkte eingeben. Diese erscheinen zunächst auf der Passpunktseite

  4. Passpunkte in Basispunkte kopieren. Nun stehen die Basispunkte auf der richtigen Seite

  5. Passpunkte löschen (diese stehen ja nun auf der Basispunktseite)

  6. Passpunktmenü verlassen. Die Basispunkte sind nun bekannt.

  7. Zu entzerrendes Bild in Bild 0 laden

  8. Passpunktmenü erneut rufen

  9. Nun die „richtigen“ Passpunkte eingeben

10. Passpunktmenü verlassen. Nun sind sowohl Passpunkte als auch Basispunkte bekannt.

11. Option Zielgeometriewahl auf „Zielbild dem Sekundäroperator entnehmen“ stellen.

12. Basisbild in Sekundäroperand laden *)

13. Sicherstellen, dass das zu entzerrendes Bild in Bild 0 steht (von Schritt 7)

14. Transformation, z. B. Affintransformation oder Helmerttransformation  aufrufen

15. Nun sollte das zu entzerrende Bild exakt auf das Basisbild transformiert worden sein

 

*) Der Geübte wird das Basisbild per Register-Schalttaste gleich nach Schritt 6 in den Sekundäroperanden zu laden.


Die verschiedenen Parametergruppen der geometrischen Transformation

Geometrische Transformationen lassen sich nach verschiedenen Merkmalen einstellen und gliedern.

Die Steuerungsart

Die Steuerungsart teilt zunächst die verschiedenen geometrischen Transformationen grob ein.

 

• Trivial sind Drehungen um ganze rechte Winkel mit und ohne Spiegelung. Hier gibt es lediglich 8 Möglichkeiten, die „Nulltransformation“ eingeschlossen. Diese sind weniger der Bildentzerrung, als der allgemeinen Datenaufbereitung zuzurechnen. 

 

• Parametersteuerung: Parameter sind gewisse explizite Vorgaben wie Drehwinkel, Vergrößerungsfaktoren o. ä. Diese beschreiben die gewünschte geometrische Transformation. Es sind auch recht einfache Transformationen.

 

• Passpunktsteuerung: Oft sind Bilder „zufällig verzerrt“. Es ist unbekannt um wie viel Grad ein Bild zu drehen oder um wie viel Prozent ein Bild zu strecken ist. Dann sind Passpunkte eine mögliche Alternative. Ein Passpunkt (im weiteren Sinn) ist eigentlich ein Passpunktpaar. Er besteht aus zwei Punktpositionen (vgl. oben): aus einem Basispunkt in einem Bild, auf das zu entzerren ist, und einem Passpunkt (im engeren Sinne) in einem Bild, das zu entzerren ist. Aus 2 bis 800 Passpunktpaaren berechnet das Programm Entzerrungsparameter, mit denen die Bilder pixelgenau zur Deckung gebracht werden können.

 

• Programmsteuerung: Hier wird eine Formel vorgegeben und abgearbeitet. Die programmgesteuerte geometrische Transformation ist die Technologie, mit der Vimage Kartennetzentwürfe berechnet. Hierzu gibt es die Programmiersprache RTA und verschiedene Projection engines.

Die Transformationsmodelle

Die geometrische Transformation kann man sich als Verzerrung eines Gummituches vorstellen, auf dem sich ein Bild befindet. Das Transformationsmodell beschreibt die Art und Weise, in welcher das Gummituch verzerrbar ist.

 

• Einfache Vergrößerung/Verkleinerung. Hier kann lediglich ein Vergrößerungsfaktor (X  und Y gemeinsam oder einzeln) gewählt werden. Dieser bewirkt, dass entsprechend zeilen- bzw. spaltenweise Zwischenpunkte eingeschaltet oder weggelassen werden. Parametersteuerung. Passpunkttransformation ist nicht möglich.

 

• Helmerttransformation: Die Helmerttransformation kann Bilder vergrößern/verkleinern sowie drehen. Sie macht aus einem Quadrat ein beliebiges anders im Bild liegendes Quadrat. Wichtige Eigenschaft: Sie ist winkeltreu, d. h. es erfolgt niemals eine Bildverzerrung. Wichtigste Aufgabe: Einpassen eingescannter Bilder oder Bildausschnitte. Die Helmerttransformation kann 2 Passpunktpaare zur Deckung bringen. Es werden immer die ersten beiden Passpunktpaare des aktuellen Passpunktsatzes genutzt.

 

• Rechtecktransformation: Die Rechtecktransformation vergrößert/verkleinert ein Bild mit jeweils unterschiedlichen Faktoren in X- und Y-Richtung. Sie macht aus einem achsparallelen Quadrat ein beliebiges achsparalleles Rechteck. Die Rechtecktransformation bringt wie die Helmerttransformation 2 Passpunktpaare zur Deckung. Es werden immer die ersten beiden Passpunktpaare des aktuellen Passpunktsatzes genutzt.

 

• Affintransformation: Hier wird ein Quadrat in jede beliebige Form eines Parallelogrammes transformiert. Es erfolgt Bild-Drehstreckung. Die Affintransformation kann 3 Passpunkte zur Deckung bringen. Es werden immer die ersten drei Passpunktpaare des aktuellen Passpunktsatzes genutzt.

 

• Perspektivtransformation: Hier kann ein Quadrat in jedes beliebige Viereck verzerrt werden. Das Ergebnis entspricht einer Zentralperspektive. Wichtige Eigenschaft: Geraden bleiben erhalten. Die Perspektivtransformation kann 4 Passpunkte zur Deckung bringen. Es werden immer die ersten vier Passpunktpaare des aktuellen Passpunktsatzes genutzt.

 

• Transformation mit quadratischen Polynomen: Hier werden Geraden allgemein zu Parabeln. Es können 6 Passpunkte zur Deckung gebracht werden. Es werden immer die ersten sechs Passpunktpaare des aktuellen Passpunktsatzes genutzt.

 

• Transformation mit kubischen und quadronischen Polynomen: Mit Polynomen 3. und 4. Grades können 10 bzw. 15 Passpunkte zur Deckung gebracht werden. Weil Polynome höheren Grades aber sehr stark schwingen, ist dieses Verfahren nur in der Testgenerierung (s. Extramenü) aufrufbar.

 

• Multiquadratische Interpolation nach Hardy: Dieses Verfahren kann bis zu 800  Passpunkte zur Deckung bringen. Mit der Option „Glättungsstärke bei MQI“ lässt sich die „Spannung“ des interpolationsbestimmenden „Gummituches“ einstellen. Bei kritischen Passpunktanordnungen kann das Verfahren allerdings versagen.

 

• Programmgesteuerte  Transformation (Projection engines): Hier wird eine beliebige Transformationsformel in einem Programm beschrieben. Siehe hierzu die Spezialkapitel „RTA: Einen Kartennetzentwurf berechnen“ und „RTA: Einen Kartennetzentwurf programmieren“, sowie die „Beschreibung der Assemblersprache RTA“ im Anhang.

 

Die Steuerungsart und das Transformationsmodell werden gemeinsam durch die Wahl der entsprechenden Menüfunktion ausgewählt.

 

Die Resamplingmodelle

Das Resamplingmodell bestimmt die Bildfeintextur. Das Neubild wird aus Bildpunkten zusammengesetzt. In der Regel befinden sich aber die Neupunkte nicht exakt auf Altpunkten, sondern dazwischen. Nun kann man verschieden interpolieren...

 

• Nächster Nachbar: Es wird der nächstliegende Altpunkt genommen. Nachteil: An Pixelgrenzen gibt es Grauwertsprünge, dadurch werden schräge Linien ausgefranzt. Dann anwenden, wenn das Ergebnisbild unbedingt die Grauwerte des Originals beibehalten soll, also keine Zwischengrauwerte interpoliert werden dürfen. (Akademisches Beispiel hierzu: multispektrale Klassifikationen von Fernerkundungsbildern.)

 

• Bilineare Interpolation: Der Neupunkt-Grauwert wird aus den benachbarten 4 Altpunkten ermittelt, wobei linear interpoliert wird. Ausgewogenes Bild. An Pixelgrenzen gibt es Grauwertknicke. Dann anwenden, wenn die Überschwingneigung (s. u.) kubischer Interpolationen stört.

 

• Bikubische Interpolation (über 4 Punkte): Der Neupunkt-Grauwert wird ermittelt, indem eine Kurve 3. Grades durch die nächstgelegenen 4 Altpunkte gelegt wird (Lagrangesche Interpolation). Beste praktische Ergebnisse. Ganz leichte Überschwingneigung, d. h. Interpolationen aus Altzeilengrauwerten von z. B. 0 0 0 100 100 100 können Grauwerte etwas unter 0 und etwas über 100 ergeben.

 

• Bikubische Splineinterpolation: Der Neupunkt-Grauwert wird aus den Grauwerten der Nachbarpunkte und den Anstiegen in diesen Punkten ermittelt (Hermitesche Interpolation). Theoretische Vorzugsvariante. Das Ergebnisbild ist völlig stetig, was mathematische Perfektionisten zweifelsohne befriedigt. Der praktische Unterschied zu der vorigen Variante ist gering. Splines ergeben möglicherweise geringfügig schärfere Bilder, schwingen allerdings auch etwas stärker.

 

Welches der 4 folgenden Verfahren angewendet wird, wird durch die Option „Geometrie-Interpolationsart“ eingestellt.

Die Zielgeometriewahl

Das Bild-Gummituch wird nicht nur verzerrt — vielmehr muss es, bevor  mit der Verzerrung begonnen werden kann, überhaupt erst einmal definiert werden...

 

Hierzu gibt es 3 Möglichkeiten:

 

• 1. Automatische Festlegung. Das Zielbild wird so groß gemacht, dass ungefähr das gesamte Quellbild hineingeht und die Pixel werden so groß gemacht, wie sie ungefähr im Quellbild sind. Bei Kartennetzentwürfen wird bei „automatisch“ immer ein Bild mit 1000 x 500 Pixeln à 0,1 mm errichtet. Funktioniert immer; da aber nichts vorgegeben wird, ist das Ergebnis oft nicht befriedigend.

 

2. Das Zielbild soll genau auf das Sekundäroperandenbild passen. Dies ist sinnvoll, wenn das Eingangsbild auf dieses Bild eingepasst werden soll. Es erhält dann genau dessen Spalten- und Zeilenzahl, sowie dessen Pixelgröße. Überzählige Spalten/Zeilen werden abgeschnitten und gehen verloren. Nicht belegte Spalten/Zeilen werden mit Leerpixeln (Grauwert –9999) belegt.

 

3. Wie vor. Punkt, die Zielbildgröße wird jedoch aus einer Bilddatei ermittelt. Hierzu wird der Fixbildkopf dieser Datei gelesen. Dies spart den Hauptspeicher des Sekundärbildes. (Profi-Tipp: per „Bildverwaltung/Bildhauptparameter“ Datentyp Void einstellen, dann braucht die Datei (fast) keinen Speicher.)

 

Das Zielkoordinaten-Erzeugungsmodell wird mit der Option „Zielgeometriewahl“

eingestellt. Bei den Großbild-Projection engines (Großbild-Generator, Großbild-Translator etc.) wird die Zielbildgeometrie immer anhand eines leeren Fixbildes errichtet. Die Option ist hier also immer 3.

Der Matrizenarithmetiktyp

Passpunkte einpassen heißt auch Gleichungssysteme lösen. Wenn mehr als 2 Passpunkte auf einer Geraden liegen, ist die Lösung eines Gleichungssystems nur noch näherungsweise möglich. Bei der Polynomtransformation wird die Lösung geprüft und im Nebenkommentar (Zeile unten, neben Forstschrittskontrollbalken) ein DELTA-Wert angezeigt. Dieser sollte 0 sein. DELTA-Werte ungleich Null sind ein Indiz dafür, dass es nicht gelingt, Passpunkte und Basispunkte zur Deckung zu bringen.

 

Möglicherweise ist die Rechengenauigkeit der benutzten Double-Gleitkommaarithmetik zu gering. Hier bietet Vimage das Ausweichen auf eine hochgenaue „Ida-Arithmetik“ (=Integer Digit Array) an. Idazahlen sind hochgenaue Festkommazahlen, benötigen allerdings sehr sehr viel Rechenzeit.

 

Mit einer Option Matrizenarithmetiktyp wird vimage-intern bestimmt, mit welchen Zahlenarten gerechnet wird:

 

• 1. mit gewöhnlichen Double-Gleitkommazahlen

• 2. mit 80-stelligen Idazahlen

• 3. mit 160-stelligen Idazahlen

• 4. mit 320-stelligen Idazahlen

• 5. mit 608-stelligen Idazahlen 

 

Gleichungssysteme über 100x100 werden auch bei eingestellter Ida-Arithmetik in Double gerechnet. Das ist der Grund, warum Vimage MQI-Transformationen mit mehr als 100 Passpunkten u. U. nicht mehr ausführen kann.

Die Bild-Zugriffsart

Normalerweise werden Bilder im Hauptspeicher gehalten. Dies kann insbesondere bei großen Bildern Speicherprobleme bereiten. Hier bietet Vimage 2 Möglichkeiten Hauptspeicher zu sparen. Auf das Ergebnis hat die Bild-Zugriffsart theoretisch keine Auswirkung.

 

• Gewöhnliche Transformation: Alle Bilddaten werden im Hauptspeicher gehalten. Volle Genauigkeit, großer Wertebereich. Speicherverbrauch etwa 8 Byte je Pixel. Bildgröße bis etwa 6000 Zeilen/Spalten.

 

• Großbilder: Die Bilddaten stehen teilweise in Dateien, teilweise als Bytewerte im Hauptspeicher. Es sind nur Grauwerte 0 … 255 möglich und nur ganze Zahlenwerte. Speicherverbrauch etwa 1 Byte je Pixel. Bildgröße bis etwa 15000 Zeilen/Spalten.

 

Großbildalgorithmen gibt es für alle Passpunktverfahren, sowie für die Projection engines Generator und Translator. Sie werden über das Geometriemenü erreicht.

 

• Riesenbilder: Riesenbilder werden vollständig in Dateien gehalten. Es wird kaum Hauptspeicher benötigt. Bildgröße bis etwa 50000 Zeilen/Spalten. Es gibt allerdings nur einfache Bildoperationen. Riesenbildfunktionen stehen im Extramenü.


Was eigentlich bei der Passpunkttransformation passiert

 

Passpunktpaare beschreiben zwar eine Bildtransformation, dies aber nur an den Stellen der Punkte und nicht an den Stellen zwischen den Punkten. Um nun alle Bildpunkte entzerren zu können, werden die Passpunktpositionen als Stützstellen einer zweidimensionalen Funktion aufgefasst. Diese Funktion heißt Transformationsfunktion und ist z. B. ein Polynom. Charakteristisch ist, dass die Transformationsfunktion durch feste Zahlenwerte, sog. Transformationskoeffizienten weitgehend beliebig geformt werden kann.

 

Nun ist es der erste Schritt einer Passpunkttransformation, die Transformationskoeffizienten so zu bestimmen, dass die Transformationsfunktion an den Passpunkt-Stellen genau die Basispunkte erzeugt. Kernstück ist dabei die Lösung eines Gleichungssystems („Solve“).

 

Es folgt in einem zweiten Schritt eine Bild-Neuabtastung („Resampling“). Dies erfolgt invers: Zuerst wird ein leeres Zielbild errichtet. Dann wird dieses Zielbild zeilenweise „durchgescannt“ und zu jedem Zielpunkt wird der zugehörige Quellpunkt im Quellbild ermittelt und gelesen. Weil die Lesekoordinate gewöhnlich nicht ganzzahlig ist, wird interpoliert. Hierzu gibt es die verschiedenen Resamplingmodelle.

 

Bei Kartennetzentwürfen ist genau diese Inversion oft ein Problem, nämlich dann, wenn sich die Netzentwurfsformel nicht invertieren lässt. Hierzu wurde die Technologie „Dissampling“ und die Projection engines Direkttransformator, Direktgenerator (ff.) entwickelt.

 

Bei Polynomen ist diese Inversion dann problematisch, wenn die Transformationsfunktion nicht bijektiv ist.


(Auszug aus: Vimage-Buch, 3. Aufl., Kapitel 4.1)

-SP-87-00

Zum Seitenanfang