Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== Pixel-Bilder einlesen ====== Wir verwenden die Pillow Library, um Bilder einzulesen und die Pixelwerte zu bestimmen. Laden Sie folgende Bild-Datei in der Labyrinth-Ordner: {{lehrkraefte:blc:informatik:glf25:labyrinthe:67.png}} Laden Sie folgendes Python-Programm in den Labyrinth-Ordner herunter: <code python bildeinlesen.py> # pip install Pillow from PIL import Image image = Image.open("67.png") for y in range(image.height): for x in range(image.width): p = image.getpixel((x,y)) if sum(p)>=3*128: print("##", end='') else: print(" ", end='') print() </code> Falls das Programm in der Zeile 2 ''from PIL import Image'' abbricht, muss einmalig die Library noch auf der Kommandozeile installiert werden: <code bash> pip install Pillow </code> ===== Eigenes Bild erstellen ===== <WRAP todo> * Studieren Sie obiges Programm * Verändern Sie das Programm so, dass das Bild invertiert erscheint. * ''<nowiki>image.getpixel((x,y))</nowiki>'' liefert eine Liste mit 3 Einträgen: Farbintensitäten rot, grün, blau von 0 bis und mit 255. Erklären Sie damit den Sinn der Bedingung in der Zeile mit dem ''if''. * Erstellen Sie selbst ein Schwarz-Weiss-Bild mit einer Auflösung von 24x24 Pixeln mit einem Motiv, das aus einer einzigen, zusammenhängenden schwarzen Fläche besteht, die zwei gegenüberliegende Ränder berührt. Die Fläche muss überall mindestens 2 Pixel breit sein (oder besser 3). Die Fläche darf aber weisse Löcher haben. </WRAP> ===== Bild auf Labyrinth übertragen ===== Schreiben Sie ein Python-Programm das folgendes tut: * Bild einlesen * Neues, Labyrinth mit gleicher Grösse wie das Bild erzeugen (erst mal alle Mauern geschlossen). * Die Grösse soll direkt aus der Grösse vom Bild bestimmt werden, d.h. das Programm soll unverändert für unterschiedlich grosse Bilder funktionieren. * Das Bild ins Labyrinth übertragen, d.h. alle Zellen, die schwarzen Pixeln entsprechen, sollen mit '#' markiert werden. * Geben Sie dieses Labyrinth aus. ===== Startpunkte finden ===== * In einem Labyrinth, wo wie oben einige Zellen mit ''#'' markiert wurden, ergänzen Sie das Programm so, dass * auf gegenüberliegenden Rändern vom Labyrinth möglichst weit voneinander entfernte Zellen gesucht werden, die mit ''#'' markiert sind (d.h. Teil der schwarzen Fläche). * Das sind dann die Startpunkte für das Labyrinth. Markieren Sie diese mit 'S' und 'Z' * Testen Sie Ihr Programm mit unterschiedlichen Bildern. ===== Weg finden ===== * Ergänzen Sie das Programm so, dass ein Labyrinth mit Startzelle 'S' generiert wird, mit der Zusatzbedingung, dass nur Zellen betreten werden, die mit ''#'' markiert sind. * Bestimmen Sie die Abfolge der Zellen, die dem Weg vom Start 'S' zum Ziel 'Z' entspricht. * Wie könnte dazu die Todo-Liste verwendet werden? lehrkraefte/blc/informatik/glf25/labyrinthe/bilder-einlesen.txt Last modified: 2026/03/19 18:14by Ivo Blöchliger