Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

115.01.2015Übung 6 - MdMT Methoden der Medizintechnik Übung zur Vorlesung Folge 6 – Bilder in Matlab Einlesen, Erzeugen.

Ähnliche Präsentationen


Präsentation zum Thema: "115.01.2015Übung 6 - MdMT Methoden der Medizintechnik Übung zur Vorlesung Folge 6 – Bilder in Matlab Einlesen, Erzeugen."—  Präsentation transkript:

1 115.01.2015Übung 6 - MdMT Methoden der Medizintechnik Übung zur Vorlesung glasser@ovgu.de knueppel@ovgu.de Folge 6 – Bilder in Matlab Einlesen, Erzeugen und Bearbeiten

2 215.01.2015Übung 6 - MdMT 1.Einführung: Digitale Bilder (in Matlab) 2.Wiederholung: Fehlersuche in Programmen ( = Aufgabe 1) 3.Weitere Übungsaufgaben Lernziele: Prinzipieller Zusammenhang Bild Matrix, Zusammenhang 2D-Bild 1D-Signal Funktionen imread und imshow Adressierung und Manipulation einzelner Pixel im Bild Inhalte und Ziele der Übung

3 315.01.2015Übung 6 - MdMT („Raster-“)Bilder bestehen aus einzelnen Pixeln („Picture Elements“) Fun-Fact: Die Person auf dem Bild kennt ihr. Wer sie ist, wird auf der Siemens-Exkursion aufgelöst. Wetten an knueppel@ovgu.de Bilder in Matlab

4 415.01.2015Übung 6 - MdMT Bilder sind zweidimensionale Daten (bisher Audiosignale - eindimensional) Bilder in Matlab x y

5 515.01.2015Übung 6 - MdMT Helligkeit eines Pixels ist eine Zahl: größer = heller Meist Ganzzahlen von 0 (schwarz)... 255 (weiß) (z.B. in jpg-Dateien) In der Wissenschaft: Oft auch Fließkommazahlen 0... 1 Bilder in Matlab x y 0 00 0.2 0.1 0.7 0.3 0.4 0.5 0.6 0.4

6 615.01.2015Übung 6 - MdMT In Matlab wird das Bild in einer zweidimensionalen Matrix gespeichert – die Zahlen in der Matrix sind die Helligkeitswerte: Bitte abtippen! (Command Window) Bilder in Matlab 0, 0.2, 0.1, 0.7, 0.3, 0.4, 0.5,0.6, 0.4, bild = [ [ [ [ ]; ]]

7 715.01.2015Übung 6 - MdMT Auf die einzelnen Elemente (Pixel) können wir wie gewohnt zugreifen per meinBild(zeile,spalte) : Bilder in Matlab 0, 0.2, 0.1, 0.7, 0.3, 0.4, 0.5,0.6, 0.4, bild = [ [ [ [ ]; ]] bild(1,1) bild(3,2)

8 815.01.2015Übung 6 - MdMT Anzeigen können wir das ganze per eingebauter Matlab-Funktion: Oder natürlich auch so (bitte nachmachen!): Bilddarstellung zu klein? Muss so. Das waren schließlich nur 0,000012 Megapixel. Bilder in Matlab imshow( [[0.2,0.5,0.7,0.6]; [0,0.3,0.4,0.1]; [0,0,0.2,0.4]] ) bild = [[0.2,0.5,0.7,0.6]; [0,0.3,0.4,0.1]; [0,0,0.2,0.4]]; imshow(bild)

9 915.01.2015Übung 6 - MdMT Große Bilder = Viele Pixel. Also lieber fertige Bilder laden (Achtung, Bilddatei muss im aktuellen Verzeichnis liegen- wie bei wavread() !): Bilder in Matlab bild = imread(‘meinbild.jpg‘); obererlinkerpixel = bild(1,1); %lesen eines %Pixels bild(10,10) = 0; % setzen eines Pixels auf schwarz % (im Schwarz/Weiß-Bild, Achtung, % manchmal ist weiß = 255!) bild(10,10,1) = 0 % setzen im Farbbild ;-)

10 1015.01.2015Übung 6 - MdMT Finde und korrigiere alle Fehler, so dass die Funktion ausführbar wird und korrekt einmal zurückgibt, ob ihr Parameter zahl eine Primzahl ist. Tipp: Es ist nur ein semantischer (inhaltlicher) Fehler enthalten. Der Rest sind syntaktische Fehler! D.h. erst das Programm durch Korrektur von Schreibfehlern zum Laufen bringen und dann erst schauen, ob es das richtige tut. Aufgabe 1 – Programmiertraining: Bugs finden funktion (ergebnis) = prim[zahl] Ergebnis = ‘keine Primzahl‘ #Am Anfang ist das Programm #Pessimistisch for [i = 2;zahl-1] if (mod(zahl,i) == 0)) ‘Primzahl‘ = Ergebnis else i = i end

11 1115.01.2015Übung 6 - MdMT Erstelle eine Funktion Sie soll ein mit der Funktion imread eingelesenes Bild als bildMatrix entgegennehmen und es mit veränderter Helligkeit zurückgeben. Beispielaufruf im CommandWindow, der funktionieren sollte: Teste die Funktion an einem beliebigen.jpg-Bild. Empfehlung: Suchen nach „Röntgenbild Homer Simpson“ Tipp: Schau noch einmal in Übung 4, wie man die Lautstärke von Audiodateien verändert. Die Helligkeit von Bildern verändert man exakt genauso! (d.h. Multiplikation der bildMatrix mit der Helligkeit) Freiwillige Zusatzfrage: Warum funktioniert das eigentlich auch mit Farbbildern? Aufgabe 2 – Bildintensität (=Helligkeit) ändern function [bild] = meineHelligkeit(bildMatrix, prozent) meinBild = imread(‘bilddatei.jpg‘); meinHelleresBild = meineHelligkeit(meinBild, 200); imshow(meinHelleresBild);

12 1215.01.2015Übung 6 - MdMT Erstelle eine Funktion die ein Bild mit einem Verlauf von dunkel (links) nach hell (rechts) erzeugt (siehe Titelfolie). Die Größe des resultierenden Bildes (Breite und Höhe in Pixeln) soll als Parameter wie oben übergeben werden können. Teste die Funktion mit dem folgenden Aufruf im Command Window, der den Verlauf dann als Bild anzeigen sollte: Aufgabe 3 – Bilder generieren function [bild] = meinVerlauf (breite, hoehe) meinEigenesBild = meinVerlauf(640, 480); imshow(meinEigenesBild);

13 1315.01.2015Übung 6 - MdMT Erstelle eine Funktion, die folgendes Muster (oder ähnlich) erzeugt: Die Größe des resultierenden Bildes sollte wie bei Aufgabe 3 frei wählbar sein. Tipp: Die Sinus-Funktion erzeugt z.B. ein periodisches Muster... Zusatzaufgabe: Bilder generieren++


Herunterladen ppt "115.01.2015Übung 6 - MdMT Methoden der Medizintechnik Übung zur Vorlesung Folge 6 – Bilder in Matlab Einlesen, Erzeugen."

Ähnliche Präsentationen


Google-Anzeigen