Abschlussaufgabe WS 07/08
Auf der Grundlage Ihrer Lösung der Abschlussaufgabe werden wir Ihre Noten festlegen.
Wer keine Abschlussaufgabe abgibt, kann von mir einen unbenoteten Teilnahmenachweis bekommen, der aber nicht als Studienleistung angerechnet werden kann.
Die Spielregeln sind:
- Die Abschlussaufgabe wird in Einzelarbeit gelöst.
- Hilfsmittel (z.B. Matlab-Hilfe, Wikipedia...) sind erlaubt (solange es sich nicht um andere Kursteilnehmer oder den grossen Bruder handelt).
- Bei Fragen stehen die Tutorinnen Imke Reimer imke.reimer@uol.de und Nicole Cichon nicolecichon@hotmail.com (Raum W4-0-059, Tel 798 3931), sowie Andreas Thiel andreas.thiel@uol.de und ich jutta.kretzberg@uol.de (Raum W4-0-058, Tel 798 3314) zur Verfügung.
- Ich akzeptiere auch Teillösungen und nicht in Programmcode umgesetzte Lösungsideen. Allerdings hätte ich bei nicht lauffähigen Programmen gerne eine ausführliche Dokumentation, was nicht läuft.
- Lösungen müssen bis zum 16.11.2007 per email bei mir eingehen: jutta.kretzberg@uol.de
- Ich melde mich per email, wenn ich die Aufgaben nachgesehen habe und vergebe dann Termine, an denen wir uns noch einmal kurz darüber unterhalten.
Kriterien für die Benotung sind:
- Wie vollständig ist die Aufgabe gelöst?
- Wie „elegant“ ist die Lösung?
- Wie allgemein gehalten ist sie?
- Ist das Programm gut kommentiert und dokumentiert?
- Wie benutzerfreundlich ist das Programm?
- Wieviel ist an Zusatzideen und Detailarbeit in die Programme eingeflossen? (Hier sind beliebige Erweiterungen möglich, aber man kann auch mit einer schlichten Lösung ein „sehr gut“ bekommen)
... und jetzt die Aufgabe:
Bildverarbeitung: Automatisches Zählen von Bakterien in einer Petrischale
Stellen Sie sich vor, sie haben die Aufgabe, sehr viele Bakterienkulturen anzulegen und in jeder Petrischale zu zählen, wieviele Bakterien nach einer bestimmten Zeit vorhanden sind. Dafür machen Sie jeweils ein jpg-Bild, das sie im Nachhinein auswerten wollen.
Ein solches Bild könnte z.B. so aussehen:
Natürlich können Sie sich hinsetzen und für jedes Bild einzeln per Hand zählen, wieviele Bakterien vorhanden sind. Allerdings haben Sie als frische Absolventinnen und Absolventen des Matlabkurses vielleicht auch bessere Ideen, wie Sie sich die Arbeit erleichtern können.
Zunächst fangen wir aber mit etwas einfacheren "Bakterienkulturen" an. Diese habe ich mit den Funktionen bakteriensimulator.m und erzeuge_bakterie.m als Matrizen von Grauwerten generiert. (Diese Funktionen können Sie sich ansehen, wenn Sie wollen, Sie können aber auch einfach mit den zur Verfügung gestellten Matrizen arbeiten).
Schreiben Sie ein Programm, das für ein beliebiges mit diesen Programmen erzeugtes Grauwertbild die Anzahl der Bakterien auf dem Bild bestimmt.
- Standardversion: die "Bakterien" sind dunkle Bereiche in einer Grauwertmatrix vor einem hellen Hintergrund. (Grauwertbilder kann man sich mit dem Befehl imshow(matrix) darstellen lassen.) Die Bakterien in diesen Kulturen sind extrem brav: sie sind alle gleich gross, liegen klar von einander getrennt in der Petrischale und sind entweder horizontal oder vertikal ausgerichtet. Die Petrischale sieht dann z.B. so aus:
[download: standard_wenige.mat und standard_viele.mat ]:
- Erweiterung A: Es gibt nicht nur horizontale und vertikale, sondern auch in verschiedenen Winkeln diagonal ausgerichtete Bakterien, z.B.:
- [download: mehr_Richtungen_wenige.mat und mehr_Richtungen_viele.mat ]:
Erweiterung B: Die Bakterien sind nicht alle gleich groß, sondern ihre Laenge und Breite streut um die Werte der Bakterien in den vorherigen Kulturen. Z.B.:
[download: variable_Groesse_wenige.mat und variable_Groesse_viele.mat ]:
Erweiterung C: Die Bakterien können sich berühren und auch übereinander in der Petrischale liegen. Z.B.:
[download: mit_ueberlapp_wenige.mat und mit_ueberlapp_viele.mat ]:
Erweiterung D: Das Bild besteht nicht mehr nur aus zwei Grauwerten, sondern es ist verrauscht, z.B.:
[download: Bildrauschen_wenige.mat und Bildrauschen_viele.mat ]:
Setzen Sie so viele der Erweiterungen in Ihrem Programm um wie möglich. Testen Sie auch Kombinationen der verschiedenen Eigenschaften, indem Sie sich neue Grauwert-Matrizen mit bakterien_simulator erzeugen. Hier zwei Beispiele für Grauwertbilder mit allen Erweiterungen:
[download: alles_wenige.mat und alles_viele.mat ]:
Versuchen Sie im letzten Schritt, Ihr Programm so zu erweitern, dass es auch auf einem echten jpg-Bild wie dem oben gezeigten arbeiten kann.