MIN-Faculty
Department of Informatics
Scene analysis and visualization (SAV)

Infoseite zu dem Bildverarbeitungsprojekt "Bildfolgenauswertung" (Mi 14-18) im SoSe 2008 Teil 1

Ablauf des Projektes:

Die ersten Wochen werden wir mit der Einführung in C++ und in die VIGRA verbringen. Dabei werden wir beides bereits während des Lernens miteinander verbinden.
Im Anschluss daran werden mit Hilfe wissenschaftlicher Texte und eigener Interessen Konzepte und Algorithmen entwickelt, um Folgen von Bildern auszuwerten.

Materialien:

  • Die Bilder, die zurzeit verfügbar sind, liegen im Informatik RZ unter
    /home/scratch/seppke/
    
  • Die Arbeit zu Speckle Noise Filtern kann hier heruntergeladen werden.
  • Ein Beispielvektorfeld (Korrelations-Methode, 59 kB)kann hier heruntergeladen werden.
  • Ein Beispielvektorfeld (Optical-Flow-Methode ACHTUNG: 11,1 MB!)kann hier heruntergeladen werden.

VIGRA/C++ unter Unix (Informatik RZ) benutzen

Um Projekte zu erstellen,die die VIGRA benutzen, müssen folgende Vorarbeiten getan werden:

  1. Dem System sollte bekannt gemacht werden, wo es die VIGRA-Bibliothek finden kann.
    Dazu sollte (falls die BASH-Shell verwendet wird) die Datei .bash_profile im eigenen Homeverzeichnis geändert werden, so dass der Pfad der Shell bekannt ist.
    PATH=$PATH:/opt/vigra/bin:/opt/pkg/vigra/bin
    export PATH
    
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/vigra/lib:/opt/pkg/vigra/lib
    export LD_LIBRARY_PATH
    
    Sollte in der Datei die PATH oder die LD_LIBRARY_PATH Variable schon verändert werden, dann einfach die entsprechenden Zeilen dahinter schreiben und das ohnehin schon vorkommende export weglassen.
  2. Angenommen wir haben eine C++ Quelltext-Datei converter.cxx, die eine main-Methode enthält und als ein auführbares Programm converter übersetzt werden soll.
    Ein Makefile (Eine Datei names Makefile)legt die Regeln der Übersetzung fest:
    01:    CXXFLAGS = `vigra-config --cppflags`
    02:    LDFLAGS  = `vigra-config --libs` 
    
    sind Variablen, die im weiteren benutzt werden können.
    03:    
    04:    converter: 	converter.o
    05:	   [TAB] g++ -o converter converter.o $(LDFLAGS) 
    
    legt fest, wovon das Ziel converter abhängig ist, und wie es erstellt werden muss.
    Die Zeile 5 stellt den "Link"-Schritt dar!
     
    06:    
    07:    converter.o: 	converter.cxx
    08:    [TAB] g++ -c $(CXXFLAGS) converter.cxx
    			
    beschreibt, wovon das Ziel converter.o abhängig ist, und wie es erstellt werden muss.
    Die Zeile 08 stellt den "Compile"-Schritt dar!
    09:
    10:    clean:
    11:    [TAB] rm converter *.o
    
    beschreibt, wie das Projekt aufgeräumt werden kann.

Das Programm kann nun erstellt werden mit:

> make converter

oder:

> make

da ein make ohne Argumente das erste Ziel im Makefile ausführt (in diesem Fall: converter)

Die temporären- und Binärdateien können entfernt werden mit:

> make clean

Das Programm kann natürlich auch ausgeführt werden:

> ./converter
Usage: ./converter infile outfile
(supported formats: BMP GIF HDR JPEG PNG PNM SUN TIFF VIFF)

Weitere wichtige Ressourcen zu C++:

Der von uns genutzte C++ Einführungskurs (nochmals Danke an Reinhrad Zierke) kann mit samt allen Beispielen, Folien, Aufgaben und Handouts auf dieser Seite im RZ Informatik abgerufen werden.

Hans Meine hat einige sehr gute Links zum Thema Programmierung mit C++ gesammelt. Außerdem finden sich hier auch Anleitungen für guten Programmierstil sowie einige Hinweise, für die Benutzung VIGRA-Bibliothek unter Unix bzw. Linux und die Eigenheiten des Modul-Konzeptes, das bei KOGS verwendet wird. Das alles ist auf jeden Fall mehr als nur einen Blick wert und auf seiner Homepage zu finden

Außerdem werde ich in regelmaßigen Abständen die "Musterlösungen" für die Aufgaben des VIGRA-Einsteigerkurses hier ablegen.

VIGRA unter Windows:

Ab sofort kann man hier nachlesen, was zu tun ist, wenn man die VIGRA zuhause auf einem Windows System mit der kostenlosen Dev-C++ Entwicklungsumgebung benutzen möchte. Das Tutorial erklärt Schritt für Schritt (und bei Bedarf auch bebildert) was zu tun ist, bis hin zum ersten Beispielprogramm (dem Konverter), das auch in vorigen Einstiegskursen verwendet wurde.
Sollte es dazu Fragen oder Anregungen geben, bitte ich diese per Mail an mich senden.