home *** CD-ROM | disk | FTP | other *** search
-
- ---------------------------------------
- ImageLab - ein Bildbearbeitungsprogramm
- ---------------------------------------
- Stand: ImageLab 2.1 - April 1993
-
-
- Einführende Bemerkungen:
- ========================
-
- Anstatt damit zu beginnen, was ImageLab ist, soll Ihnen ausnahmsweise zuerst
- gesagt werden, was ImageLab nicht ist:
-
- ImageLab ist kein Mal- oder Zeichen-Programm.
-
- Es ist vielmehr ein Programm, mit dessen Hilfe Bilder (in der Regel digitali-
- sierte Fotos oder Bilder einer Videokamera), die aus echten Graustufen be-
- stehen, dargestellt und nachbearbeitet (manipuliert) werden können.
-
- Auch auf dem Atari ST stehen dafür mittlerweile einige Programme zur Verfügung,
- davon sind jedoch die meisten kommerzieller Art und für jemanden, der nur mal
- "reinschnuppern" möchte, nicht erschwinglich. Da ImageLab auch in der Version
- 2.1 Public Domain ist, erhoffe ich mir eine weitere Verbreitung, als dies
- sonst möglich wäre. Gerade im Hinblick auf den TT und den Mega STE, die mit
- höheren Taktfrequenzen als der gute alte ST arbeiten, ist die Rechengeschwin-
- digkeit in der Bildverarbeitung kein großes Manko mehr. Auch auf dem Falcon
- sollte ImageLab laufen, nutzt allerdings nicht dessen Farbfähigkeit aus.
-
- ImageLab 2.1 sollte in allen Auflösungen funktionieren! Da die Bilder aber
- grundsätzlich in monochrom dargestellt werden, sollte man sich - gerade auf
- dem ST - die Verwendung anderer Auflösungen aber gut überlegen.
-
- Das Programm ist komplett in GEM eingebunden; es wurden keine "schmutzigen"
- Tricks verwendet, so daß höchstmögliche Kompatibilität - auch zu Multitasking-
- Betriebssystemen - gewährleistet sein sollte. Eine Garantie dafür kann aber
- nicht übernommen werden. Alle Menüfunktionen sind auch über Tastatur-Shortcuts
- erreichbar. Die Standard-Shortcuts wie Ctrl-O für "Öffnen", Ctrl-S für
- "Sichern", etc., wurden verwendet.
-
- Alle Dialogboxen wurden als sogenannte "fliegende Dialoge" realisiert. Gerade
- bei der ST-monochrom-Auflösung von 640x400 Punkten verdecken Dialoge oftmals
- die Bilder, die man verändern möchte. Einige fliegende Dialoge von anderen
- Autoren lassen sich zwar verschieben, bleiben aber ständig sichtbar, so daß
- sie immer einen Teil des Schirms verdecken. Schlimmstenfalls führt dies bei
- großen Dialogen dazu, daß man den Hintergrund in Bildschirmmitte nie zu
- Gesicht bekommt. Die in ImageLab eingesetzten Dialogboxen werden durchsichtig,
- sobald man die rechte obere Ecke anklickt. Meistens genügt das schon, um
- einen Blick auf den Hintergrund zu werfen. Mit besagter Ecke lassen sie sich
- aber natürlich auch beliebig verschieben.
-
- ImageLab beinhaltet Bildmanipulations-Verfahren, die zu erklären nicht immer
- sonderlich einfach ist. Deshalb wurde die Dokumentation in zwei Dateien
- aufgespalten:
-
- 2_MANUAL.DOC: Diese Datei beinhaltet die Benutzeranleitung - also Antworten
- auf die Frage: "Wie benutze ich welche Funktion?".
-
- 3_THEORY.DOC: Diese Datei enthält den theoretischen Unterbau - also Antwor-
- ten auf die Frage: "Wie macht ImageLab das eigentlich, was es
- da macht ?". In dieser Datei steht auch beschrieben, wie die
- Bild-Datenformate aussehen, die ImageLab zu verarbeiten im-
- stande ist. Da es sich bei den Bildern, die ImageLab bear-
- beitet, um Bilder mit echten Graustufen handelt, können
- die auf dem Atari sonst benutzten Grafik-Formate (STAD,
- Degas, ...) nicht angewandt werden.
-
- Während die Kenntnis des Inhalts der ersten Datei für das erfolgreiche
- Arbeiten mit ImageLab unbedingt erforderlich ist, muß man sich durch die
- zweite Doku nicht unbedingt durchgequält haben, um ImageLab benutzen zu
- können. Von Vorteil ist es aber allemal zu wissen, warum man das, was man
- mit dem Programm anstellen kann, überhaupt macht.
-
- Im Moment lesen Sie den Text "2_MANUAL.DOC".
-
- Der Programmdiskette liegen Bildbeispiele bei, mit deren Hilfe wir uns
- schrittweise die ImageLab-Funktionen erarbeiten werden. Diese Bildbeispiele
- sind keine alltäglichen Motive; daher ein paar einführende Worte zu den
- Fotos:
-
- Als die amerikanischen Viking-Sonden den Mars erforschten, funkten sie auch
- eine Vielzahl digitalisierter Bilder der Oberfläche unseres Nachbarplaneten
- zur Erde. Auf zwei dieser 1204 * 1055 Pixel großen Bilder war etwas zu sehen,
- was als das "Mars-Gesicht" berühmt wurde. Erich von Däniken hätte seine Freu-
- de daran :-)
-
- Die beiden Bilddateien "FACE01.ORG" und "FACE02.ORG" sind 100 * 100 Pixel
- große Ausschnitte der beiden NASA-Originaldateien - und zwar genau die Aus-
- schnitte, die jeweils das "Gesicht" zeigen. Die Bilddaten liegen meines Wis-
- sens exakt so vor, wie sie von der NASA empfangen wurden; inklusive aller
- Übertragungsfehler. Die Komplettbilder mit ImageLab mitzuliefern wäre sinn-
- los, da diese jeweils 1,3 Megabytes groß sind und damit nicht auf eine Dis-
- kette gepaßt hätten.
-
- Soviel als Hintergrund-Information. Wenden wir uns nun der Praxis zu.
-
-
-
-
- Der Einstieg:
- =============
-
- Als erstes schauen wir uns "FACE01.ORG" an. Dazu starten Sie bitte ImageLab
- wie üblich durch Anklicken. Es erscheint ein leeres Desktop (grauer Hinter-
- grund) auf dem Bildschirm und eine Menüleiste.
-
- Die meisten Funktionen sind im Moment noch gesperrt. Dies dient dazu, Sie
- vor Fehlbedienungen zu schützen. ImageLab sperrt alle Funktionen, die zu
- einem gegebenen Zeitpunkt ohnehin sinnlos wären.
-
- Bitte fahren Sie mit dem Pfeilcursor den Menütitel "Datei" an, sodaß das
- entsprechende Menü herunterklappt und klicken Sie den Menüpunkt "Öffnen..."
- an oder drücken Sie ^O. Es erscheint nun eine Datei-Auswahlbox, mit der Sie
- "FACE01.ORG" auswählen können.
-
- Wenn die Datei geladen ist, erscheint zunächst ein kleines leeres Fenster
- auf dem Bildschirm und nach einigen Augenblicken, in denen ImageLab im Hin-
- tergrund wichtige Kenndaten des Bildes berechnet (dazu später mehr) und das
- Bild in einem speziellen internen Puffer aufbaut, erscheint ein ziemlich
- graues Etwas im Fenster. Bitte glauben Sie nicht, dieses komische Rechteck
- links oben auf dem Bildschirm wäre das Ergebnis eines ImageLab-Ladefehlers -
- nein, die Marsbilder sehen unbearbeitet tatsächlich mehr nach einer Bildstö-
- rung als nach einem echten Bild aus. Aber ImageLab ist ja dazu da, diesem we-
- nig befriedigenden Umstand abzuhelfen.
-
- Wenn Sie sich die Menüleiste nun wieder anschauen, werden Sie feststellen,
- daß jetzt alle Menüs inklusive ihrer Funktionen freigegeben sind.
-
- Als erste Aktion werden wir nun das kümmerliche Bildchen vergrößern, um
- besser damit arbeiten zu können. Dazu lassen Sie bitte das Menü "Bildbearbei-
- tung" herunterklappen und wählen Sie die Funktion "Bildgröße ändern..." aus.
- Lassen Sie die Einstellungen vorerst unverändert, geben Sie nur als Vergröße-
- rungsfaktor "200" ein - das sind 200 Prozent oder eine Bildgrößen-Verdopplung.
-
- Nun geschieht wieder eine Zeitlang nichts, während ImageLab das neue Bild
- berechnet. An dieser Stelle gleich der wichtige Hinweis:
-
- Denken Sie immer daran, daß Sie es bei einem Atari ST nicht mit einer Work-
- station oder mit einem Großrechner zu tun haben. Sowohl der vergleichsweise
- kleine Hauptspeicher von höchstens vier Megabytes als auch die "niedrige"
- Taktrate (acht Megahertz) des 16-Bit-Prozessors zwingen zur Geduld. Sind Sie
- stolzer Besitzer eines Mega STE oder gar eines TT, so sind Sie in dieser
- Beziehung natürlich fein raus. Außerdem muß ImageLab die Graustufen, die der
- ST im Monochrommodus nicht darstellen kann (die Farbmodi kommen aufgrund ihrer
- geringen Auflösung eigentlich nicht in Frage), durch ein speziellen Algorithmus
- simulieren, was auch Zeit kostet. Deshalb können einige rechenintensive Bild-
- manipulationsverfahren durchaus ein paar Minuten in Anspruch nehmen (das ist
- allerdings nur bei sehr großen Bildern der Fall). Haben Sie Geduld.
-
- Um Ihnen einen Anhaltspunkt zu geben, wo in der Reihe der Verarbeitungs-
- schritte sich ImageLab gerade befindet, wird während der eigentlichen Funk-
- tions-Rechnerei (also z.B. während ImageLab ein vergrößertes Bild berechnet)
- die bekannte "fleissige Biene" als Mauscursor dargestellt und während das
- Programm die Graustufensimualtion berechnet, um das Bild aufbauen zu können,
- ein kleiner Pinsel.
-
- So, nun müßte das neue Bild auf dem Bildschirm zu sehen sein. Das vergrößerte
- Bild ist auch noch nicht viel eindrucksvoller, deshalb werden wir ein wenig
- nachhelfen.
-
- Zunächst schauen wir uns einmal an, wie die Grauwerte im Bild verteilt sind.
- Dies gibt uns wertvolle Hinweise darauf, was wir mit dem Bild tun können,
- um seine technische Qualität zu steigern.
-
- Bitte wählen Sie im "Informationen"-Menü die Funktion "Histogramm anzeigen..."
- aus. Auf die Frage nach der Art der darzustellenden Häufigkeit antworten Sie
- einfach durch Betätigen der Returntaste. Das Rechteck, in dem die Vertei-
- lungs-Kurve zu sehen ist, nennt sich "Histogramm". Die X-Richtung repräsen-
- tiert die Graustufen, die ImageLab-intern als Zahlenwerte von 0 ... 255 ab-
- gelegt sind, die Y-Richtung die Häufigkeit, in der jeder Grauwert im Bild
- vorkommt - und zwar bezogen auf den Grauwert, der am häufigsten vorkommt
- ("relative Häufigkeit"). Wir sehen, daß das Bild nur sehr wenige, aber dicht
- beieinander liegende Grauabstufungen bietet und kennen damit den Grund für
- die "graue Soße" als Bildinhalt. Um die Bilddetails (besser) sichtbar zu
- machen, müssen wir den Bereich, in dem sich die Graustufen häufen, über das
- gesamte Grauwertspektrum "strecken" - und Sie werden sehen: das wirkt Wunder.
-
- Die Methode, die wir dazu verwenden, soll an dieser Stelle noch nicht
- erläutert werden; das kommt später noch zur Genüge. Uns geht es im Moment
- ausschließlich ums Machen. Machen wir also:
-
- Bitte wählen Sie im Menü "Bildbearbeitung" die Funktion "Histogramm
- equalisieren..." an und harren nun geduldig der Dinge, die da kommen mögen.
-
- Wenn die Umrechnung abgeschlossen ist, wird das Ergebnis dargestellt. Nun
- sollte ein Aha-Erlebnis fällig sein: wo vorher eine Variation in Grau zu se-
- hen war, müßte jetzt sehr deutlich ein weißes Gesicht mit einem schwarzen
- Schatten auf graugemustertem Grund zu sehen sein. Und das nur, weil ImageLab
- die Grauwerte etwas gleichmäßiger über das gesamte Spektrum verteilt hat.
- Wenn Sie möchten, dann rufen Sie doch jetzt noch einmal die Funktion
- "Histogramm darstellen..." auf. Sie werden sehen, daß die "Striche" jetzt
- über die gesamte Histogrammbreite verteilt sind.
-
- Ist es Ihnen noch nicht gelungen, das Beschriebene zu reproduzieren, dann
- verzagen Sie nicht. Lesen Sie die Hinweise nochmals und probieren Sie es
- wieder. Die Bilddatei geht Ihnen beim Experimentieren ja nicht verloren, so-
- lange Sie keine der beiden Speicherfunktionen aufrufen.
-
- Übrigens, die weißen und schwarzen "Klötzchen", die Sie im Bild sehen kön-
- nen, sind Bitfehler, die bei der Übertragung der Daten von der Sonde zur
- Erde entstanden. Diese können mit bestimmten mathematischen Verfahren, die
- ImageLab allerdings (im Moment noch) nicht anbietet, gemildert und zuweilen
- ganz beseitigt werden.
-
- Nachdem wir nun den Einstieg (mehr oder weniger) glücklich hinter uns ge-
- bracht haben, ist es an der Zeit, den einzelnen ImageLab-Funktionen etwas
- mehr Aufmerksamkeit zu widmen. Arbeiten wir uns also durch die Menüs hin-
- durch.
-
-
-
- Generelles
- ==========
-
- ImageLab 2.1 ist komplett in GEM eingebunden. Alle Bilder erscheinen in GEM-
- Fenstern; es sind maximal vier Fenster möglich. Neuere Betriebssystem-Versionen
- oder das Programm "Winx" können unter GEM zwar mittlerweile mehr als vier
- Fenster darstellen, aber eine Erweiterung hätte so massive Programmierarbeit
- erfordert, daß ich diese Möglichkeit verworfen habe. Normalerweise kommt man
- mit vier Fenstern auch gut zurecht.
-
- In der Titelzeile der Fenster erscheinen die Bildnummer und der Name des
- Bildes. Der Name ist bei einem geladenen Bild mit dem Filenamen identisch;
- der komplette Pfadname wird zwar im Speicher behalten, aber nicht im Titel
- angezeigt. Dies hat sich - speziell bei langen Pfadnamen und kleinen Bildern -
- als recht sinnvoll erwiesen, da sonst nur der Anfang des Pfades, nicht aber
- der Filename zu lesen wäre. Werden Bilder im Programm durch den Befehl "Neu...",
- "Bild kopieren", oder "Puffer erzeugt Bild" erzeugt, erhalten sie den Namen
- "Bild 1", "Bild 2", etc.
-
- Bei dem gerade aktiven Fenster kann durch Drücken der rechten Maustaste ein
- sogenanntes Densitometer aktiviert werden. Der Mauszeiger verwandelt sich in
- ein Fadenkreuz und die zugehörigen Bildkoordinaten werden links oben in der
- Titelzeile des Fensters angezeigt. Dahinter wird noch ein Wert gezeigt; es
- ist der Grauwert des Bildpunktes unter dem Fadenkreuz. Dadurch können die
- Grauwerte innerhalb eines Bildes exakt bestimmt werden. Das ist z.B. wichtig,
- wenn Sie den Kontrast eines Bildbereiches verstärken wollen und dafür heraus-
- finden müssen, welchen Grauwertbereich er enthält. Wenn Sie die Maustaste
- wieder loslassen, sollte das Fadenkreuz und die Anzeige verschwinden. Leider
- tut es dies manchmal aus unerfindlichen Gründen nicht, und Mauszeiger und
- Anzeige beginnen zu flimmern. Drücken Sie dann einfach eine Maustaste, und
- schon ist dieser Effekt behoben.
-
- Wenn Sie ein Fenster schließen, geht dessen Inhalt verloren. Deshalb werden
- Sie - sofern Sie das entsprechende Bild nach einer Änderung noch nicht abge-
- speichert haben - gefragt, ob Sie nicht doch lieber sichern wollen.
-
-
- Das Menü "Datei"
- ################
-
- Die Funktion "Neu..."
- =====================
-
- Mit dieser Funktion können Sie ein leeres Bild erzeugen, auch wenn Sie noch
- gar kein anderes geladen haben. In der Dialogbox wählen Sie die Größe des
- Bildes. Ein Bild muß allerdings mindestens die Abmessungen 60x60 haben.
-
- Wozu soll ein leeres Bild nun gut sein? Vielleicht wollen Sie eine Collage von
- mehreren Ausschnitten, die Sie aus anderen Bildern kopieren, erstellen, oder
- verschiedene Effekte mit "Verknüpfen..." ausprobieren. Wer weiß?
-
-
-
- Die Funktion "Öffnen..."
- =========================
-
- Diese Funktion ist sicherlich eine der trivialsten des gesamten Programms.
- Die Dateiauswahlbox funktioniert wie üblich. Sie können selbstverständlich
- jede x-beliebige Datei auswählen, aber ImageLab verarbeitet logischerweise
- nur Dateien, die in einem der zugelassenen Bilddatenformate vorliegen:
-
- B&W256-Format oder das Videodigitizer-Format der Firma Print Technik sowie
- das IFF-Format und das AIM-Format. Diese Formate sind in der Datei
- "3_THEORY.DOC" beschrieben.
- Wenn das Bild geladen ist, berechnet ImageLab wichtige Kenndaten desselben
- (Lookuptable und Histogramm) und setzt die Daten mittels des sogenannten
- "Floyd/Steinberg-Algorithmus" in eine Art Raster um, das dazu dient, Grau-
- stufen zu simulieren. Auch wenn das Ergebnis ziemlich "gepunktet" aussieht -
- in Wirklichkeit bestehen die Bilddaten aus wirklichen Graustufen. Wenn Sie
- einmal Gelegenheit haben, eine mit ImageLab bearbeitete Datei auf einem Rech-
- ner ausgeben zu lassen, der echte 256 Graustufen darstellen kann, werden Sie
- sicherlich erstaunt sein über die hervorragende (technische) Qualität des
- Bildes.
-
- Sie können bei genügend Speicher bis zu vier Bilder gleichzeitig bearbeiten,
- es sei aber dringend empfohlen, zumindest auf einem ST mit 512k oder 1MB
- Speicherplatz möglichst immer nur ein Bild im Speicher zu haben, da der für
- ImageLab sehr wichtige Hauptspeicher ohnehin meist eher zu klein als zu
- groß ist.
-
- ImageLab merkt sich den Dateipfad, den Sie zuletzt benutzt haben. Wenn Sie
- also beim ersten Mal die Datei "C:\BILDER\TEST.B_W" geladen haben, wird Ihnen
- beim nächsten Mal der Pfad "C:\BILDER\*.B?W" vorgegeben.
-
-
-
- Die Funktionen "Sichern" und "Sichern als..."
- =============================================
-
- Das Speichern der Bilddaten kann jederzeit geschehen - sei es, um den gerade
- aktuellen Stand zu sichern, oder um den Abschluß der Arbeiten zu sichern.
- ImageLab speichert hierbei die Daten in der Datei, von der das Bild ursprüng-
- lich auch geladen wurde. Wenn Sie lieber einen anderen Namen verwenden möch-
- ten, so können Sie dies mit der Funktion "Sichern als..." tun.
-
- Hat ein Bild keinen Pfadnamen, wurde es also im Programm selbst erzeugt, so
- wird auch bei versehentlicher Auswahl von "Sichern" die Fileselect-Box aufge-
- rufen.
-
-
-
- Die Funktion "ImageLab beenden"
- ===============================
-
- Muß darüber noch etwas gesagt werden? Vielleicht soviel, daß Sie noch einmal
- gefragt werden, ob Sie ungesicherte Bilder nicht lieber doch noch sichern
- wollen. Diese Abfrage entfällt, wenn keine Bilder mehr vorhanden, bzw. alle
- Bilder nach den letzten Änderungen bereits gesichert wurden.
-
-
-
- Das Menü "Edit"
- ###############
-
- Die Funktion "Ausschneiden..."
- ==============================
-
- Vielleicht möchten Sie Ausschnitte eines Bildes in ein anderes Bild hinein-
- kopieren oder einen Bildteil duplizieren. Dazu steht Ihnen die Funktionen
- "Ausschneiden..." zur Verfügung. Wie funktioniert's ?
-
- Diese Funktion kopiert einen Ausschnitt in einen internen Puffer. Um diesen
- Ausschnitt zu bestimmen, fahren Sie mit dem Cursorpfeil in die linke obere
- Ecke des Bereichs, den Sie kopieren möchten. Links oben in der Titelzeile
- werden dabei die aktuellen Koordinaten des Mauszeigers angezeigt. Nun drücken
- Sie die linke Maustaste und halten sie gedrückt. Es erscheint ein gestricheltes
- Rechteck, dessen Größe Sie durch Bewegen der Maus (bei gedrückter linker
- Maustaste) verändern können. Dabei werden in der Titelzeile Höhe und Breite
- des Ausschnittes im Format "dx dy" angezeigt. Rahmen
- Sie damit den gewünschten Bildausschnitt ein und lassen Sie dann die linke
- Maustaste los. Der markierte Bereich wird jetzt von ImageLab in einen Puffer
- kopiert, bleibt aber natürlich im Originalbild erhalten. Beim Markieren eines
- Bereiches in Bildern, die nicht vollständig in ein Fenster passen, können Sie
- übrigens auch aus dem Fenster hinausgehen; der sichtbare Bereich scrollt dann
- automatisch nach rechts, bzw. nach unten.
-
- Die Mindestgröße des Puffers ist auf 20x20 beschränkt. Wenn Sie aus dem Puffer
- ein Bild erzeugen wollen, muß dieser mindestens 60x60 groß sein.
-
-
-
- Die Funktion "Einfügen..."
- ==========================
-
- Mit dieser Funktion können Sie den Pufferinhalt in ein Bild einsetzen. Der
- Puffer überschreibt dabei völlig den Bereich des Bildes, den er bedeckt.
- Fahren Sie dazu den Mauszeiger in die linke obere Ecke des Bereichs, in den
- Sie den Ausschnitt kopiert haben möchten. Die Koordinaten des Zeigers werden
- wieder links oben in der Titelzeile des Bildes angezeigt. Das ermöglicht exakte
- Positionierung. Dann drücken Sie die linke Maustaste und halten sie gedrückt. Es
- erscheint ein gestricheltes Rechteck, das genau den Bereich bezeichnet, in
- dem der Ausschnitt eingefügt wird. Sie können den Bereich durch Bewegen der
- Maus (bei weiter gedrückter linker Maustaste) verschieben. Dabei werden dann
- allerdings keine Koordinaten mehr angezeigt (wegen der GEM-Funktion
- graf_dragbox(), die dieses Rechteck verwaltet). Wenn Sie die linke
- Maustaste loslassen, beginnt ImageLab mit dem Einfügen. Das Ganze nimmt
- einige Zeit in Anspruch, da nach dem Einfügen die Graustufen-Simulation für
- die Bildschirmdarstellung des Bildes komplett neu berechnet wird.
-
- Der gepufferte Ausschnitt bleibt übrigens vorhanden, bis er durch einen
- neuen Ausschnitt im Puffer überschrieben wird. Sie können also denselben
- Ausschnitt mehrfach kopieren, wenn Sie möchten.
-
-
-
- Die Funktion "Puffer->Bild"
- ===========================
-
- Vielleicht wollen Sie einen gepufferten Ausschnitt als Bild weiterverwenden.
- Auch dies ist möglich. Wenn Sie die Funktion "Puffer -> Bild" anwählen, wird
- das gerade aktive Fenster auf die Größe des gepufferten Ausschnittes ge-
- bracht und der Pufferinhalt dort eingesetzt. Der alte Bildinhalt geht damit
- verloren! Außerdem wird automatisch der Puffer gelöscht.
-
-
-
- Die Funktion "Bild->Puffer"
- ===========================
-
- Umgekehrt können Sie auch ein komplettes Bild in den Puffer übernehmen, was
- gerade bei der noch folgenden Verknüpfungsfunktion sinnvoll sein kann. Dazu
- wählen Sie "Bild -> Puffer". Das Original-Bild bleibt dabei natürlich erhalten.
-
-
-
- Die Funktion "Puffer erzeugt Bild"
- ==================================
-
- Hiermit läßt sich der Pufferinhalt in ein neues Fenster kopieren, das exakt
- die Größe des Puffers hat. Der Puffer muß dazu mindestens die Maße 60x60 haben.
-
-
-
- Die Funktion "Bild kopieren"
- ============================
-
- Eine äußerst praktische Funktion, die Ihnen eine Menge Ärger ersparen kann.
- Vor riskanten Bildmanipulationen können Sie damit eine Kopie des gerade
- aktuellen Fensters erzeugen und haben somit immer noch das Original, ohne
- jedesmal abspeichern zu müssen. Sie sollten diese Funktion als Ersatz für
- die nicht implementierte Undo-Funktion verwenden, sofern Ihr Speicherplatz
- mitspielt.
-
-
-
- Die Funktion "Verknüpfen..."
- ============================
-
- Sie können einen Puffer nicht nur durch brutales Einsetzen in ein Bild ein-
- fügen, sondern diese miteinander verknüpfen. Dabei können Sie die Formel
-
- Zielbild = a% Puffer + b% Bild
-
- in ihren Prozentzahlen von -100...100% verändern. Es ist ungleich einfacher,
- die unterschiedlichen Effekte einfach auszuprobieren, als diese hier zu er-
- klären. Behalten Sie immer im Gedächtnis, daß ein Bildpunkt umso heller ist,
- je höher sein Grauwert ist!
-
-
-
- Die Funktion "Puffer löschen"
- =============================
-
- Wenn Ihnen der Speicherplatz ausgeht, können Sie den Kopier-Puffer komplett
- aus dem Hauptspeicher entfernen, indem Sie "Puffer löschen" anwählen. Er
- wird ggf. beim nächsten Aufruf der Funktion "Kopieren" neu angelegt.
-
-
-
-
- Das Menü "Bildbearbeitung"
- ##########################
-
- Die Funktion "Bildgröße ändern..."
- ==================================
-
- Die Änderung der Bildgröße erfolgt bei ImageLab in Prozent. Der Bereich er-
- streckt sich dabei von 50...200%, was bei dem kleinsten Wert einer Halbierung
- und bei dem höchsten Wert einer Verdopplung gleichkommt. Bei der Größenänderung
- kann zwischen zwei Interpolationsverfahren gewählt werden. Die bilineare Inter-
- polation berechnet die Grauwerte, die zwischen zwei Pixeln des Originals liegen
- "müssten". Sie ist etwas aufwendiger und dauert daher länger. Bei Bildverklei-
- nerungen sollte sie nicht verwendet werden, da sie dort keinen Sinn ergibt.
- Das "nächster Nachbar"-Verfahren nimmt einfach den Wert des Nachbarpixels als
- Zwischenwert an. Das kann bei starker Vergrößerung zu Kästchenbildung führen.
- Es ist am besten, Sie probieren einmal beide Interpolationsmethoden aus und
- machen sich selbst ein Bild von dem Ergebnis.
-
- Manchmal kommt es vor, daß ein Bild in einer Richtung verzerrt ist. Das kann
- z.B. bei Video-Digitizern häufiger Vorkommen. Um diesen unangenehmen Effekt zu
- korrigieren, steht Ihnen die Funktion "Bild entzerren" zur Verfügung. Sie
- können hierbei die Größenänderung in x- und y-Richtung getrennt beeinflussen.
- Auch hier werden die oben besprochenen Interpolationsverfahren benutzt.
-
-
-
- Die Funktion "Kontrast ändern..."
- =================================
-
- Auch hier geben Sie einen "Korrekturwert" ein, allerdings keinen absoluten
- Wert, sondern einen relativen Faktor in Prozent: Geben Sie einen Wert größer
- 100 % ein, um den Kontrast zu verstärken und einen Wert kleiner 100 %, um
- ihn abzuschwächen.
-
-
-
- Die Funktion "Histogramm spreizen"
- ==================================
-
- Wenn Sie im Histogramm sehen, daß der zur Verfügung stehende Grauwertbereich
- von 0 ... 255 gar nicht ausgenutzt wird, so ist es meist angebracht, die
- vorhandenen Grauwerte gleichmäßig über den Gesamtbereich zu verteilen, oder,
- anders ausgedrückt: die Grauwerte linear zu spreizen. Wenn z.B. nur Grauwerte
- im Bereich von ca. 50 bis ca. 100 vorkommen, so sieht das Bild insgesamt aus
- wie eine dunkelgraue Soße. Durch die lineare Spreizung werden die vorhandenen
- Grautöne auf den Gesamtbereich verteilt (aus 50 wird 0, aus 100 wird 255).
- Die Bildqualität (gemeint ist immer die technische Qualität, nicht die
- ästhetische) steigt stark an.
-
-
-
- Die Funktion "Histogramm equalisieren"
- ======================================
-
- Mit dieser Funktion greifen Sie massiv in die Grauwertverteilung ein - im
- Gegensatz zu den Grauwertoperationen (siehe unten) brauchen
- Sie hier allerdings selbst keine Einstellungen vorzunehmen. Was macht die
- Ebnungs-Funktion ? Sie sorgt dafür, daß alle im Bild vorkommenden Grauwerte
- in etwa gleich häufig vorkommen. Das hört sich harmlos an, kann aber zum
- einnen ungeahnte Details aus einem Bild herauskitzeln (das ist die positive
- Seite), andererseits kann diese Funktion das Bild ruinieren (das ist die ne-
- gative Seite). Ein Tip: Speichern Sie den aktuellen Zustand Ihres in Arbeit
- befindlichen Bildes sicherheitshalber ab, bevor Sie eine der massiven Mani-
- pulationsfunktionen "Grauwertoperationen" oder "Histogramm equalisieren"
- anwenden.
-
-
-
- Die Funktionen zur Grauwert-Morphologie
- =======================================
-
- Hinter diesem - im ersten Moment vielleicht etwas geheimnisvollen Namen
- - verbergen sich drei Funktionen, deren nun folgende Aufzählung die Sache
- zunächst auch nicht weniger seltsam macht; aber wir werden schon Licht ins
- Dunkel bringen. Das sind die drei Funktionen:
-
- - Medianfilterung
- - Dilatation
- - Erosion
-
- Die drei Funktionen dienen dazu, den Grauwert eines jeden Pixel eines Bildes
- in Abhängigkeit der Grauwerte seiner "Nachbarn" zu modifizieren. Details
- ersparen wir uns hier wieder, deshalb nur kurz die Wirkung:
-
- Die "Medianfilterung" bildet einen Mittelwert aus den Grauwerten des
- aktuellen Pixels und seiner Nachbarn und verwendet diesen Grauwert als neuen
- Grauwert. Der Effekt wird manchmal mit einer Art "Weichzeichnung"
- umschrieben, was aber m. E. nicht ganz exakt ist. Einerlei, probieren Sie's
- aus und bilden Sie sich selbst ein Urteil.
-
- Bei der "Dilatation" wird der höchste Grauwert, der in dem Pixel-Grüppchen
- auftaucht, zur Bildung eines neuen Grauwertes herangezogen. Die Wirkung ist
- die, daß sich die hellen Bildbereiche ausdehnen und in die dunkleren
- "hineinwachsen".
-
- Den umgekehrten Effekt erzielt man mit der "Erosion". Hierbei wird der
- dunkelste Grauwert des Pixel-Grüppchens verwendet. Dies bewirkt, daß sich
- die dunklen Bildteile ausdehnen und in die helleren "hineinwachsen".
-
- Bitte verwechseln Sie die beiden letztgenannten Effekte nicht mit einer
- Änderung der Bildhelligkeit, wie sie weiter oben beschrieben wurde. Die
- Wirkungen sind sehr unterschiedlich, wie Sie durch eigene Experimente schnell
- herausfinden werden.
-
-
-
- Die Funktion "Grauwertoperationen"
- ==================================
-
- Die weiter oben beschriebene lineare Spreizung von Grauwerten ist oft hilf-
- reich, aber leider ist die Grauwertverteilung meistens nicht so einfach, daß
- sie mittels linearer Spreizung eine wesentliche Verbesserung erfährt. Des-
- halb gibt es Verfahren, mit denen man wesentlich massiver und gezielter die
- Grauverteilung verändern kann. Ein Verfahren haben Sie schon kennengelernt:
- die Histogramm-Ebnung (siehe oben), die Ihnen jedoch keinen manuellen Ein-
- griff gestattet. Ein weiteres Verfahren lernen Sie jetzt kennen: Die direkte
- Manipulation der Grauwerte über die Lookup-Table. So mächtig dieses Verfahren
- ist, es hat den Nachteil, daß man genau wissen muß, was man tut, da
- die Manipulation schnell zum "Umkippen" des Bildes im Sinne einer Bildver-
- schlechterung führt. Ein Blick in "3_THEORY.DOC", um die Hintergründe kennen-
- zulernen, ist bei der Grauwertmanipulation, die wir uns nun anschauen wollen,
- sicher nicht das Verkehrteste.
-
- Prinzipiell ist es so: "Grauwertoperationen" versetzt Sie in die Lage, Grau-
- werte (die ja alle durch eine Zahl repräsentiert werden) durch andere Grau-
- werte zu ersetzen.
-
- Zum Beispiel überall da, wo im Bild der Grauwert 97 vorkommt, nun den Grau-
- wert auf 123 zu setzen. Dazu haben Sie zwei Möglichkeiten:
-
- 1. Sie zeichnen mit Hilfe des Cursors einen Funktionsverlauf in das
- weiße Rechteck. Dieser Funktionsverlauf stellt die neuen Grauwerte über den
- alten dar, oder anders ausgedrückt: in der X-Achse stellen Sie sich die Zah-
- len 0 ... 255 (von links nach rechts) vor, die den Graustufen entsprechen
- und in der Y-Achse die wiederum die Zahlen 0 ... 255, die neu zu belegenden
- Graustufen entsprechen. Im Urzustand entspricht jede Graustufe der X-Achse
- derjenigen der Y-Achse, also der (alte) Grauwert 100 ist auch der (neue)
- Grauwert 100. Grafisch ausgedrückt: Die Transferfunktion ist eine Gerade,
- die von der linken unteren Ecke des Rechtecks zur rechten oberen Ecke des
- Rechtecks verläuft. Wenn Sie nun aber durch Anklicken diverser Punkte im
- Rechteck dafür sorgen, daß die obere Kante schon vor dem rechten Rechtecks-
- ende erreicht wird (die Steigung ist höher), dann bewirkt dies, daß der Grau-
- wert "weiß" schon früher erreicht wird, etwa schon (als Beispiel) bei dem
- (alten) Grauwert 170. In der Fotografensprache würde man dies eine "Aufstei-
- lung der Gradation" nennen - wir haben den Bildkontrast erhöht.
-
- Zur Praxis: Die Funktion wird durch Anklicken von "Stützstellen" im Rechteck
- von links nach rechts punktweise eingegeben. Lassen Sie die linke Maustaste
- gedrückt, so können Sie eine Freihandlinie zeichnen. Durch Klicken ausserhalb
- des Rechtecks beenden Sie die Eingabe. Sollte Ihre Funktion nicht bis an das
- rechte Ende des Rechtecks reichen, so wird der letzte eingegebene Wert bis
- zu Ende verlängert (wie eine horizontale Linie). Dabei wird die Cursorposition
- immer angezeigt, so daß eine exakte Kurve gezeichnet werden kann. Mit "Rechne!"
- wird das aktuelle Bild anhand dieser Kurve umgerechnet. "Ok" behält die neue
- Kurve im Speicher, verändert das Bild jedoch nicht.
-
- 2. Sie geben die Werte numerisch ein. Wie funktioniert's? Unterhalb des Wortes
- "Register" sehen Sie zwei Pfeile, mit denen Sie durch Anklicken die
- Belegung der Graustufen "abfahren" können. Wenn Sie z.B. nachschauen
- wollen, durch welchen Grauwert der alte Grauwert 200 ersetzt wird, klicken
- Sie den Pfeil nach oben an, bis die "Register"-Anzeige die Zahl "200"
- zeigt. In dem Feld "Inhalt" sehen Sie dann den neuen Grauwert, den Sie
- nun durch Eingabe einer neuen Zahl wunschgemäß ändern können. Ihre Änderung
- wird zur Kontrolle auch links grafisch dargestellt. Wenn Sie über den Wert
- 255 hinausfahren, landen Sie wieder bei 0, und umgekehrt.
-
- Aber vielleicht wollen Sie das Bild auch invertieren, d.h. negativ dar-
- stellen; kein Problem: Klicken Sie einfach das Button "Invertieren" an -
- die Wirkung sehen Sie wieder links in der grafischen Darstellung.
-
- Um die Gradationskurve wieder auf den Anfangsverlauf (1:1-Umsetzung der
- Grauwerte) zu bringen, klicken Sie auf "Reset".
-
- Photo- und Videokameras sowie Scanner haben häufig eine nichtlineare Kenn-
- linie, d.h. im dunklen oder hellen Bereich werden die Grauwerte nicht mehr
- linear aufgelöst sondern gehen in Sättigung. Um diesen Effekt zu korrigieren
- kann man mit dem Bild eine sogenannte Gamma-Korrektur durchführen. Wenn Sie
- den entsprechenden Button anlicken, können Sie einen Gamma-Faktor zwischen
- 100 und 1900 eingeben. Ist der Faktor kleiner als 1000, so wird der Kontrast
- im hellen Bereich angehoben; für einen Faktor größer als 1000 ändert sich der
- Kontrast im dunklen Bereich stärker. Faktor 1000 berechnet die normale Gerade
- x=y.
-
- Die so erzeugte Gradiationskurve, in der Bildverarbeitung auch "Lookup table"
- genannt, können Sie nun für spätere Zwecke mit dem Button "Speichern" speichern.
- Gespeicherte Kurven lassen sich logischerweise über den Button "Laden" wieder
- laden.
-
- Ein paar Gradationskurven sind bei ImageLab schon dabei:
-
- KONTRAST.LUT: Eine Anhebung des Kontrastes im mittleren Grauwertbereich
- POST_2 .LUT: Posterization (Farbtontrennung) in zwei Grauwerte
- POST_4 .LUT: " in vier Grauwerte
-
-
- Zugegeben, Transferfunktionen sind nicht einfach zu beherrschen, aber auch
- hier macht Übung den Meister - also probieren Sie einfach drauf los.
-
-
-
- Die Funktion "Kanten verstärken..."
- ===================================
-
- Hinter dieser Funktion versteckt sich einiges an Mathematik, deshalb findet
- die Erläuterung des benutzten Verfahrens nicht hier statt (sondern in
- "3_THEORY.DOC"). Kurz umrissen funktioniert die Sache so, daß ein Zweitbild
- mit extrem herausgearbeiteten Kanten erzeugt wird. Sie können nun bestimmen,
- wie stark dieses Zweitbild in das Vorlagebild hineingemischt wird: Geben
- einfach einen Prozentwert ein. Praktische Erfahrungen zeigen, daß weniger
- mehr ist: besser erst einmal mit höchstens 5 % probieren als gleich mit
- den großen Beimischfaktoren klotzen!
-
-
-
- Die Funktion "Definierbare Filter..."
- =====================================
-
- Bei diesem Menüpunkt schlägt das Herz eines jeden Bildverarbeiters höher! Ist
- hier doch die Möglichkeit gegeben, nach eigenen Vorstellungen Filtermatrizen
- zu entwerfen und diese auch zu speichern. Zur Wahl stehen 3x3- und 5x5-
- Matrizen, die lineare verschiebungsinvariante Filterkerne darstellen. Einige
- Beispiele sind bei ImageLab mit dabei, so z.B. diverse Sobelfilter, Laplace-
- Filter und Rechteckfilter. Probieren Sie die Effekte dieser Filter ruhig aus.
- Wenn Sie eigene Filterkerne konstruieren wollen, so möchte ich hier auf den
- entsprechenden Abschnitt in 3_THEORY.DOC hinweisen und ansonsten auf die dort
- angegebene Fachliteratur. Es handelt sich beim Design von Filtern nämlich um
- die "hohe Kunst" der Bildverarbeitung, die nicht ohne umfassendes mathemati-
- sches Rüstzeug auskommt. Ich möchte hier nur kurz erwähnen, was die mitgelie-
- ferten Filter bewirken.
-
- LAPLACE1.FIL: Ein Hochpass-Filter, der die Kanten hervorhebt.
- LAPLACE2.FIL: Auch ein Hochpass-Filter, nur mit anderen Parametern.
- SOBEL_LO.FIL: Sobel-Filter, ein Gradienten-Filter. Er erzeugt ein relief-
- . artiges Bild. Die verschiedenen Sobel-Filter bezeichnen die
- . verschiedenen Gradienten-Richtungen. Die Buchstaben stehen
- . dafür, aus welcher Richtung bei dem "Relief" das "Licht"
- kommt: LO = links oben, R = rechts, usw.
- RECHTECK.FIL: Ein Tiefpass-Filter, der einfach die Nachbarwerte aufsummiert
- und die Summe durch neun teilt.
-
- Der neue Wert eines Pixels setzt sich aus der Summe seiner Nachbarschaften
- zusammen, die mit den Faktoren in der Matrix multipliziert wurden. Diese Summe
- wird mit dem Faktor (praktischerweise als Bruch) multipliziert und dazu kann
- noch eine Konstante addiert werden.
-
- Das Bild wird zeilenweise gefiltert. Da sich der Wert eines Pixels aus denen
- seiner acht, bzw. 24, Nachbarn zusammensetzt, werden die neu berechneten Werte
- in den Puffer geschrieben, da sonst bereits berechnete Werte das Ergebnis ver-
- fälschen würden. Der Pufferinhalt geht daher bei der Matrix-Operation verloren!
-
- Da die Pixel an den Rändern keine vollständige Nachbarschaft besitzen, werden
- sie übergangen und schwarz gesetzt. Dementsprechend entsteht bei einer 3x3-
- Matrix ein schwarzer Rand von einem Pixel Breite, bei einer 5x5-Matrix ein
- zwei Pixel breiter Rand.
-
- Filteroperationen können mitunter sehr lange dauern, besonders bei der Verwen-
- dung von 5x5-Matrizen. Deshalb verwandelt sich der Mauszeiger während der
- Berechnung in ein kleines Mäuschen, das mit den Ohren wackelt.
-
-
-
- Das Menü "Informationen"
- ########################
-
- Die Funktion "Statistik..."
- ===========================
-
- Hier können Sie sich über die Größe und Speicherbelegung der Bilder informieren.
- Zu jedem Bild werden Breite, Höhe und Speicherplatzbedarf (einschließlich des
- Speichers für die Bildschirm-Darstellung) angezeigt. Sie erfahren ebenfalls
- die gesamte Speicherbelegung durch die Bilder sowie den freien Speicherplatz.
-
-
-
- Die Funktion "Histogramm anzeigen..."
- =====================================
-
- Ein Histogramm ist eine grafische Darstellung, die die Häufigkeit der
- im Bild vorkommenden Graustufen anzeigt - also wie häufig der Grauwert 0,
- 1, 2, 3, ... 253, 254, 255 im Bild vorkommt. ImageLab stellt die "relative
- Häufigkeit" oder die "absolute Häufigkeit" dar, also im ersten Falle die
- Häufigkeit bezogen auf den Grauwert, der am häufigsten im Bild vorkommt.
- Dieser Grauwert reicht dann immer bis an die obere Kante des Histogramm-
- Rechtecks. Bei der absoluten Häufigkeit wird die Oberkante dann erreicht,
- wenn ein Grauwert 10240 Mal vorkommt. Sollte ein (oder mehrere) Grauwert(e)
- noch häufiger vorkommen, so reicht der entsprechende Balken ebenfalls bis an
- die obere Kante. Zur Kennzeichnung eines "Überlaufs" wird aber zusätlich ein
- weißer Fleck oberhalb des Diagramms an der Überlauf-Stelle eingeblendet.
-
-
-
- Die Funktion "Bitebene anzeigen..."
- ===================================
-
- Wie Sie wissen, werden die Grauwerte ImageLab-intern durch Zahlenwerte
- repräsentiert. Wenn Sie sich so eine Grauwert-Zahl einmal im dualen
- Zahlensystem aufschreiben, werden Sie feststellen, daß alle Grauwerte durch
- eine acht Bits lange Binärzahl dargestellt werden können. Bei "schwarz"
- sind alle acht Bits "0" und bei "weiß" sind sie alle "1". Jedes dieser
- acht Bits nennt man in der Bildverarbeitung eine "Bitplane" oder
- "Bitebene" - warum und wieso, wollen wir hier nicht erörtern. Das Bit ganz
- rechts ist "Bitebene 0" und das Bit ganz links entsprechend "Bitebene 7".
-
- ImageLab bietet Ihnen nun die Möglichkeit, jede Bitebene isoliert von ande-
- ren auf dem Bildschirm anzuschauen, also beispielsweise nur Bitplane 0
- eines jeden Pixels oder nur Bitplane 1 usw. Zur Auswahl der gewünschten
- Bitebene dienen die Buttons 0 ... 7 in der Box, die nach Aufruf der
- "Bitebenen-Anzeige"-Funktion erscheint.
-
- Wozu ist das gut ? Zum einen entstehen zuweilen ästhetisch ungemein
- ansprechende Grafiken, aber das ist nicht das Hauptanliegen. Viel
- interessanter für die Weiterverarbeitung ist die Tatsache, daß Sie durch
- Anzeige einzelner Bitebenen abschätzen können, wie viel Information überhaupt
- in den einzelnen Planes steckt. Sehr oft werden Sie z.B. feststellen, daß
- in den Planes 0 und 1 nur "Rauschen" zu sehen ist, also ein zufällig
- verteilten Schwarzweißmuster. Oder eine Plane ist ganz weiß oder ganz
- schwarz. Dies deutet darauf hin, daß die Bildinformationen gar keine acht
- Bitplanes benötigen oder anders herum formuliert: man würde nichts (oder
- fast nichts) an visueller Bildinformation verlieren, wenn die eine und/oder
- andere Bitebene einfach wegliesse. Wenn wir z.B. zwei Planes gar nicht
- abspeichern würden, weil diese eh nur "rauschen", dann kämen wir mit sechs
- statt acht Bits pro Pixel aus. ImageLab selbst macht davon direkt allerdings
- keinen Gebrauch, wohl aber indirekt: Es gibt zu ImageLab das Utility IFFCONV,
- einen IFF-Konverter, der es ermöglicht, weniger als die üblichen 8 Bitplanes
- abzuspeichern.
-
-
-
-
- Abschließende Bemerkungen:
-
- o Die vorliegende Software ist public domain und kann frei benutzt und ko-
- piert werden. Im Falle einer Weitergabe bitte ich darum, daß alle zum Pro-
- gramm gehörenden Dateien (insbesondere Dokumentation) weitergegeben wird.
-
- o Falls Sie Fehler und/oder Probleme bei der Benutzung des Programms fest-
- stellen, so teilen Sie mir (Oliver Hansen) das bitte mit. Und rufen Sie
- bitte im 1. Menü ganz links mit "Über ImageLab..." die Programm-Identifi-
- kation auf. Wenn die Box erscheint, dann klicken Sie bitte das ImageLab-
- Icon an. Es erscheint eine neue Box mit ausführlicherem Text. Bitte
- teilen Sie mir diesen Text mit, wenn Sie mir Ihre Fehlerbeschreibung
- zukommen lassen. Vielen Dank!
-
-
-
- Autor:
-
- Rainer Frädrich
- Mörler Straße 36
- D-6360 Friedberg
- Btx 06 0319 2816
-
-
- Co-Autor ab Version 2.1:
-
- Mauselin Soft
- Oliver Hansen
- Maxstraße 18
- 5100 Aachen
- email: hansen@pool.informatik.rwth-aachen.de
-
-
- Update-Informationen:
-
- Änderungen bei ImageLab 2.0:
- Komplett neu programmiert.
-
- Änderungen bei ImageLab 2.1:
- * Autoscrolling bei "Ausschneiden"
- * Koordinatenanzeige bei "Ausschneiden" und "Einfügen"
- * auflösungsunabhängig programmiert
- * fliegende Dialoge
- * Neues Bild erzeugen
- * Kopierfunktion "Bild -> Puffer"
- * Kopierfunktion "Puffer -> Bild"
- * Kopierfunktion "Bild kopieren"
- * Verknüpfung Puffer mit Bild
- * Bild entzerren
- * Bilineare Interpolation bei Bildgröße ändern/Bild entzerren
- * Benutzerdefinierbare Filter
- * Kombination von "Transferfunktion-N" und "Transferfunktion-G", sowie
- "Helligkeit ändern" zu "Grauwertoperationen"
- * Speichern und Laden der Lookup table
- * Gamma-Korrektur Funktion
- * Statistik
- * Laden von AIM-Bildern
- * Dateipfad wird gemerkt
- * Densitometer
-