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

Infoseite zu dem Bildverarbeitungspraktikum "Funktionale Programmierung" (Mi 10-14) im SoSe 2009

Ablauf des Praktikums:

Es werden abwechselnd theoretische und praktische Blöcke angeboten, die es erlauben die theoretischen Grundlagen zu hören, um erfolgreich mit der Umsetzung dieser beginnen zu können. Die verwendete Programmiersprache ist PLT Scheme, die der Editor DrScheme komfortabel anbietet.

Wichtige Termine:

  • 6. Mai 2009
    Abgabe des Pflichtenhelftes. Darin sollten folgende Punkte enthalten sein:
    1. Das Team, also alle Mitglieder mit Namen und Matrikelnummern.
    2. Das Thema, bzw. das Spiel mit dem ihr Euch beschäftigen wollt.
    3. Der Leistungsumfang der Software, die Ihr entwickeln möchtet.
    4. Rahmenbedinungen, die erfüllt sein müssen, damit das Programm erfolgreich arbeiten kann (z.B. Zusicherungen für die einzulesenden Bilder).
  • 17. Juni 2009
    Abgabe des Feinentwurfes des Programms. Dieser sollte folgendes umfassen:
    • Die Schnittstellen,
    • die Paketstruktur und
    • die verschiedenen Module der Software.
  • 15. Juli 2009 (letze Sitzung)
    • Präsentation der Software
    • Abgabe der Dokumentation (bestehend aus Bediener- und Programmierhandbuch)

Materialien:

Neu: In dem Ordner

 /home/scratch/seppke/bv-prak09/

liegt das Skript (IVC-Handout) des theoretischen Teils. Dieser Ordner ist auf den iMacs bereits gemountet, und zwar unter

 rzt2000.informatik.uni-hamburg.de/unixscratch/seppke/bv-park09

Einführung in VigraPLT

Eine Präsentation, die ich vorbereitet hatte, erklärt noch einmal kurz die grundsätzliche Arbeitsweise der VigraPLT. Sie kann hier heruntergeladen werden.

Das Versionsverwaltungssystem SVN

Der Vortrag zu dem SVN-System kann hier heruntergeladen werden..
Außerdem habe ich das SVN-Handout ebenfalls noch einmal hier zum Download hineingestellt.

Bugfix der VIGRAPLT:

Leider hat sich einer kleiner Bug in die VIGRAPLT eingeschlichen, der mit der nächsten Version behoben werden wird. Bis dahin kann man den Bug selbst fixen, indem man in der Datei "vigraplt.helpers.ss" die Funktion list->image wie folgt ändert:

50:    ; list -> image conversion 
51:    (define (list->image lst)
52:      (list->carray lst _float))

Der gleiche Bug betrifft auch die Matrix zu Listen Konvertierungsfunktionen in derselben Datei:

156:    ; list -> matrix conversion 
157:    (define (list->matrix lst)
158:      (list->carray lst _double))

Außerdem führt die labelimage-Funktion eine Komponentennummerierung auf Grund der 8er-Zusammenhangskomponenten durch, und benutzt somit nicht wie im Handbuch beschrieben den 4er-Zusammenhang!

Wichtige Ressourcen:

Kleines Plotting-Beispiel mit der VigraPLT

Listen, zum Beispiel Zeilen- und Spalten-Projektionen kann man sich natürlich natürlich auch "per Hand" in dem Interpreten anschauen. Oder aber plotten - also als Bildhafte Information darstellen. Mit folgender Funktion geschieht genau dies:

 (define (plot xs scale)
   (let* ((max_val (apply max xs))
          (image   (make-image (length xs)  scale 0.0)))
     (image-for-each-index 
      (lambda (x y)
        (if (< y (* (/ (list-ref xs x) max_val) scale))
               (image-set! image x y 255.0)
               (image-set! image x y 0.0)))
      image)))

Aufgerufen werden kan diese Funktion z.B.mit Höhe des Plottes von 200 Pixeln:

 (show-image (plot (spaltensumme img) 200))

Download und Installation im Informatik RZ

Die VIGRAPLT Library kann direkt hier auf der Homepage heruntergeladen werden. Ab sofort stehen dort auch vorkompilierte Dateien für Windows (32bit) bereit!
Sie muss für jeden Benutzer einmal lokal installiert werden. Damit dies gelingt, müssen neben der beschriebenen Anleitung noch folgende Dinge beachtet werden.

Im Makefile (Unterordner vigra_c) mussen sämtliche Vorkommen von

 `vigra-config

ersetzt werden durch:

 `/opt/local/bin/vigra-config

da der Pfad leider nicht standardmäßig bei den Macs eingetragen ist.

Anschließend muss das fertige VIGRAPLT-Verzeichnis in den Ordner

/Users/BENUTZER/Library/PLT Scheme/4.1.1/collects/vigraplt

kopiert oder symbolisch gelinkt werden.

Die Präsentationen des theoretischen Teils werden demnächst ebenfalls hier zu finden sein.

Die aufgenommenen Bilder liegen unter:

 /home/scratch/seppke/bv-prak09/images/

Dieser kann unter Mac OS X wie folgt angebunden werden: Im Finder-Menü "Gehe zu"->"Mit Server verbinden" auswählen und dann

smb://rzt2000/unixscratch/seppke/bv-prak09/images/

eingeben. Sollte es noch Probleme mit den Zugriffsrechten auf die Verzeichnisse geben, bitte per E-Mail oder persönlich melden!