5 Image Processing Software

Um die Wiederholgenauigkeit der Drehvorrichtung nachzuweisen, wurden mit den bestehenden Messkameras Bilderserien erstellt (siehe Absch. 9.5). Um diese Daten quantitativ auswerten zu können müssen 2 Bilder, die nacheinander aus der gleichen Winkelposition nach einer oder mehreren Umdrehungen der Vorrichtung erstellt wurden, miteinander verglichen werden.

Zum Auswerten dieser Bilder wurde ein weiteres Programm erstellt, das es ermöglicht, 2 ,,Images'' pixelweise zu vergleichen und Abweichungen optisch darzustellen.

Dieses Programm, mit dem Namen ,,Simple Image Processor'', weist eine Reihe von Features auf, mit denen 2 Bilder ,,quantitativ'' verglichen werden können.

  1. einlesen von 2 Bitmap-Dateien und speichern des Ergebnisses als Bitmap-Datei
  2. direkter optischer Vergleich, durch ,,Umschalten'' zwischen Bild 1 und Bild 2
  3. Anzeige der Grauwerte, bzw. RGB-Komponenten auf Bildpunktbasis
  4. Distanzmessung zwischen 2 Bildpunkten (in mm und Bildpunkten)
  5. Beschneidung des Bildes auf einen beliebigen rechteckigen Bereich (Cropping)
  6. Beliebige Vergrößerung und Verkleinerung um den Faktor 2 (Pixel Duplicating und Pixel Subsampling)
  7. ,,Überlagern'', Löschen und Verschieben von Markierungen (Image-Marker) zum lokalen optischen Vergleich in Form von einzelnen waagrechten und senkrechten Linien, Ellipsen, Kreisen und einem Linienraster
  8. Bildmanipulation durch Verschieben der Graustufen (abdunkeln oder aufhellen), Erhöhung und Verminderung des Kontrastes, obere und untere Schwellwert-Isolierung und Invertierung des Grauwertes
  9. Berechnung eines ,,Differenzbildes'' auf Pixelebene, wobei die Grauwert-Abweichungen in Helligkeits- oder Farbstufen umgerechnet werden
Figure 7.4: Simple Image Processor
Image ImageProc

Die Abbildungen werden grundsätzlich in dem, für Bildschirme üblichen RGB-Farbraum mit 8-Bit Farbtiefe behandelt [12] S. 585. Da das Messsystem nur Schwarzweißbilder liefert, sind bei den verwendeten Graustufenbildern die Rot-, Grün- und Blauanteile jeweils gleich. Die ,,Image-Marker'' werden farbig dargestellt um sie leichter von den Nutzdaten unterscheiden zu können.

Die Bildmanipulations-Operationen lassen sich am einfachsten mathematisch beschreiben.

Grey shifting
Zu jedem Farbwert eines Bildpunktes wird ein konstanter Wert hinzugezählt, der Bereich dieser Korrekturwerte reicht von -254...254.
Formel: $g_{1}=g_{0}+c$
Contrast stretching
Der Grauwert jedes Bildpunktes wird mit einer exponentiellen Konstanten multipliziert, der Wert der Konstanten reicht von -3...3.
Formel: $g_{1}=g_{0}*2^{c}$
Threshold low
Jeder Bildpunkt, dessen Grauwert einen definierten Grenzwert unterschreitet, wird auf 0 (=Schwarz) gesetzt (unterer Schwellwert). Dieser Bereich kann von 0...254 festgelegt werden.
Formel: $if\,(g_{0}<c)\Rightarrow g_{1}=0$
Threshold high
Jeder Bildpunkt, dessen Grauwert einen definierten Grenzwert überschreitet, wird auf 255 (=Weiß) gesetzt (oberer Schwellwert), diese Werte liegen ebenfalls im Bereich von 0...254.
Formel: $if\,(g_{0}>c)\Rightarrow g_{1}=255$
Color Inverting
Jeder Bildpunkt wird im Farbbereich invertiert.
Formel: $g_{1}=255-g_{0}$
Es bedeuten:

$g_{0}$... Grauwert des ursprünglichen Bildpunktes

$g_{1}$... Grauwert des Ergebnis-Bildpunktes

$c$ ... Konstanter Wert, der über die ,,Schieberegler'' der Software eingestellt wird
Zusätzlich gilt für jede Bildpunktoperation, dass bei Unterschreiten des Minimalwertes der Grauwert mit 0 und beim Überschreiten des Maximalwertes der Grauwert mit 255 begrenzt wird.

Mit den so ,,vorbereiteten'' Eingabebildern kann dann ein ,,Differenzbild'' errechnet und dargestellt werden, wobei unterschiedliche Algorithmen zur Berechnung eines Ergebnispunktes gewählt werden können. Das errechnete Ergebnisbild kann wiederum als Bitmapdatei gespeichert.

Als grundlegender Mechanismus bei der Berechnung wird pro Pixel der Differenzwert der Graukomponenten der beiden ,,vorbearbeiteten'' Eingabedateien ermittelt und das Ergebnis stellt den neuen ,,Grauwert'' dar. Nachdem diese Differenz auch negativ werden kann, wird ein negatives Ergebnis als Differenz vom Maximalwert und dem ermittelten Differenz-Grauwert umgesetzt (siehe auch die Operation ,,Color Inverting'' bei den ,,Bildmanipulations-Operationen'' oben), dies führt bei einem Grauwert-Nulldurchgang (z.B. von +1...-1) zu einem abrupten Helligkeitsübergang. Der Differenzwert 0 (d.h. die Grauwerte sind identisch) wird in den verschiedenen Modi unterschiedlich behandelt.

Bemerkung:
Das bedeutet aber auch, dass beim Vertauschen der beiden Eingabebilder ein anderes Ergebnis erzielt wird, da die Subtraktion als mathematische Operation nicht kommutativ ist.
Zur Visualisierung des ,,Differenz-Bildes'' können mehrere Darstellungsmodi verwendet werden.

Monochrom-Normal Modus
Diese ,,normale'' Berechnung ermittelt den Differenzwert über den vorhin beschriebenen Mechanismus. Der Differenzwert 0 (beide Eingabe-Bildpunkt haben den selben Grauwert) wird immer als weiß (RGB 0xffffff) dargestellt.
Monochrom-Invers Modus
Alle Punkte werden nach derselben Methode errechnet und anschließend invertiert ($k=255-k$). Der Differenzwert 0 bleibt weiß dargestellt.
Farb-Normal Modus
Dieser Modus errechnet die Grauwert-Differenz und setzt die Differenz in Farbwerte um. Negative Differenzen werden gelb, positive Differenzen blau, Null-Differenzwerte werden schwarz dargestellt. Damit ist es möglich, die 3 Zustände, positive, negative Differenzen und identische Grauwerte darzustellen.
Farb-Invers Modus
In diesem Modus erfolgt die Berechnung analog zum Normal-Modus, negative Differenzen werden blau, positive gelb und Nullwerte weiß dargestellt, wobei die Farbkomponenten (abgesehen von der 0-Differenz) für die Farbwertdefinition invertiert werden. Auch hier sind die 3 Zustände (Punkt 1 ist heller, Punkt 2 ist heller oder beide Bildpunkte sind gleich hell) unterscheidbar.
Der ,,Simple Image Processor'' wurde ebenfalls in der Programmiersprache Tcl/Tk (siehe 7.4.2.4) geschrieben und verwendet die freie Tcl/Tk Widget-Bibliothek BWidgets[13].

gerhard.reithofer@tech-edv.co.at