Laboration 1. Grafisk teknik (TNM059) Introduktion till Matlab. R. Lenz och S. Gooran (VT2007)

Relevanta dokument
TAIU07 Matematiska beräkningar med Matlab

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB DATORLABORATION 1: TIDSSERIER.

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Laboration 1. Grafisk produktion och tryckkvalitet (TNM015) Rastrering och objektiva kvalitetsmått. S. Gooran (VT2007)

MMA132: Laboration 1 Introduktion till MATLAB

TANA17 Matematiska beräkningar med Matlab

7 Olika faltningkärnor. Omsampling. 2D Sampling.

M0043M Integralkalkyl och Linjär Algebra, H14, Matlab, Föreläsning 1

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Laboration 2. Grafisk teknik (TNM059) Digital Rastrering. S. Gooran (VT2007)

Datorövning 1 Fördelningar

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

Datorövning 1: Fördelningar

Laboration: Grunderna i MATLAB

Introduktion till MATLAB

TANA17 Matematiska beräkningar med Matlab

KPP053, HT2016 MATLAB, Föreläsning 2. Vektorer Matriser Plotta i 2D Teckensträngar

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 2 november 2015 Sida 1 / 23

Beräkningsvetenskap föreläsning 2

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Matematisk Modellering

Obligatoriska uppgifter i MATLAB

TSBB14 Laboration: Intro till Matlab 1D

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Parametriserade kurvor

% Föreläsning 4 22/2. clear hold off. % Vi repeterar en liten del av förra föreläsningen:

MMA132: Laboration 1 & 2 Introduktion till MATLAB

TAIU07 Matematiska beräkningar med Matlab

Flervariabelanalys, inriktning bildbehandling, datorövning 1

TSKS21 Signaler, Information och Bilder Lab 2: Digitalisering

Studio 6: Dubbelintegral.

Uppgift 1. (SUBPLOT) (Läs gärna help, subplot innan du börjar med uppgiften.) 1 A) Testa och förklara hur nedanstående kommandon fungerar.

Flerdimensionella signaler och system

MMA132: Laboration 2 Matriser i MATLAB

de uppgifter i) Under m-filerna iv) Efter samlade i en mapp. Uppgift clear clc Sida 1 av 6

MAM283 Introduktion till Matlab

Mer om funktioner och grafik i Matlab

Introduktion till Matlab

Linjär algebra med tillämpningar, lab 1

Introduktion till Matlab

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

Grafisk Teknik. Rastrering. Övningar med lösningar/svar. Sasan Gooran (HT 2013)

Matematisk Modellering

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

Mer om funktioner och grafik i Matlab

Vektorgeometri för gymnasister

6. Matriser Definition av matriser 62 6 MATRISER. En matris är ett rektangulärt schema av tal: a 11 a 12 a 13 a 1n a 21 a 22 a 23 a 2n A =

Demonstration av laboration 2, SF1901

Laboration 3. Funktioner, vektorer, integraler och felskattning

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

MR-laboration: design av pulssekvenser

Inledande matematik för I1. MVE011 läsperiod Matlab vecka 2 övningsuppgifter

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

Laboration: Grunderna i Matlab

TEKNISKA HÖGSKOLAN Matematik Fredrik Abrahamsson. Introduktion till MATLAB

Matematisk Modellering

Matriser och linjära ekvationssystem

Kravspecifikation Fredrik Berntsson Version 1.3

Numeriska metoder, grundkurs II. Dagens program. Hur skriver man en funktion? Administrativt. Hur var det man gjorde?

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

Grafisk Teknik. Färg. Övningar med lösningar/svar. Sasan Gooran (HT 2013)

Laboration 1: Elementära bildoperationer

En introduktion till MatLab

Introduktion & MATLABrepetition. (Kap. 1 2 i MATLAB Programming for Engineers, S. Chapman)

TAIU07 Matematiska beräkningar med Matlab

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

Matriser och linjära ekvationssystem

LABORATION cos (3x 2 ) dx I =

Laboration 3. Funktioner, vektorer, integraler och felskattning

Miniprojekt: Vattenledningsnäten i Lutorp och Vingby 1

Grafisk Teknik. Rastrering. Övningar med lösningar/svar. Sasan Gooran (HT 2004)

3 Man kan derivera i Matlab genom att approximera derivator med differenskvoter. Funktionen cosinus deriveras för x-värdena på följande sätt.

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

Newtons metod och arsenik på lekplatser

Laboration 1: Introduktion till R och Deskriptiv statistik

Laboration 4: Integration på olika sätt

Linjär algebra. 1 Inledning. 2 Matriser. Analys och Linjär Algebra, del B, K1/Kf1/Bt1. CTH/GU STUDIO 1 TMV036b /2013 Matematiska vetenskaper

Laboration 0: Del 2. Benjamin Kjellson Introduktion till matriser, vektorer, och ekvationssystem

Enklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Lägg märke till skillnaden, man ser det tydligare om man ritar kurvorna.

GNU Octave under Cygwin Spara grafik i postscriptfiler. Per Jönsson, NMS, Malmö högskola

TANA17 Matematiska beräkningar med Matlab

Datalogi, grundkurs 1

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

Department of Physics Umeå University 27 augusti Matlab för Nybörjare. Charlie Pelland

DATORLABORATION FÖR KURSEN ENVARIABELANALYS 2

Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson Plot och rekursion

Instruktion för laboration 1

Laboration 2, M0043M, HT14 Python

TANA17 Matematiska beräkningar med Matlab

SF1513 NumProg för Bio3 HT2013 LABORATION 4. Ekvationslösning, interpolation och numerisk integration. Enkel Tredimensionell Design

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

Flervariabelanalys och Matlab Kapitel 3

Simulering med ModelSim En kort introduktion

Medicinska Bilder, TSBB31. Lab: Mätvärden på Medicinska Bilder

Transkript:

Laboration 1 Grafisk teknik (TNM059) Introduktion till Matlab R. Lenz och S. Gooran (VT2007)

Introduktion: Denna laboration är en introduktion till Matlab. Efter denna laboration ska ni kunna följande: Olika variabeltyper Punktvis operation, skalärprodukt och numerisk integral Förstå hur bilder representeras i Matlab Olika bildvisningsfunktioner och colormap Skriva funktioner i Matlab Slippa onödiga for-loopar i Matlab Nedsampling och uppsampling av bilder och hur olika interpolationsfunktioner påverkar resultatet Alla bilder som ni kommer att behöva finns under S:/TN/M/TNM059/Lab1. 1. Variabeltyper: 1.1 Skapa variabeln a genom a=5. Kolla vad a har för variabeltyp med hjälp av kommandot whos. Vad är resultatet av a/4? Skriv b=uint8(a) och kolla vad b har för variabeltyp. Vad är nu resultatet av b/4? Beskriv skillnaderna! 1.2 Läs in bilden kvarn.tif med hjälp av imread och kalla den för myimage1. Visa bilden med imshow. Normalisera bilden genom att dela bilden med 255 och kalla resultatet för myimage2. Varför 255? Visa myimage2 med imshow(myimage2) och imshow(double(myimage2)) i två olika fönster! Vad händer? 1

Normalisera nu bilden genom följande, myimage3=double(myimage1)/255, och visa myimage3 i ett nytt fönster. Beskriv vad som hände genom att studera variabeltyperna för dessa bilder. 2. Bildvisning och colormap 2.1 Skriv följande, >> imshow(myimage3/3) där myimage3 är bilden från föregående uppgift. Vad händer? Varför? 2.2 Kör nu, >> figure; >> imagesc(myimage3/3) >> colormap gray Vad händer nu? Vad gör colormap gray? 2.3 Olika färger kan beskrivas med hjälp av deras RGB värden i en vektor. T.ex. [0 0 0] är svart, [1 1 1] är vit, [1 0 0] är ren röd, och [0.5 0.5 0.5] är grå. Kör följande: >> map=([1 0 0; 0 1 1; 0.5 0.2 0.3; 1 0 0.6]) >> image([1, 2 ; 3, 4]) >> colormap(map) 2

Kör nu enligt: >> map=([1 0 1; 0 1 0.2; 0.5 0.2 0.3; 1 0 0.6]) >> image([1, 2 ; 3, 4]) >> colormap(map) Och >> map=([1 0 1; 0 1 0.2; 0.5 0.2 0.3; 1 0 0.6]) >> image([1, 2, 3, 4]) >> colormap(map) Och >> map=([1 0 1; 0 1 0.2; 0.5 0.2 0.3; 1 0 0.6]) >> image([1, 2]) >> colormap(map) Försök nu med dessa exempel att förstå hur map, image och colormap fungerar. Visa nu följande fyra färger som ett 2 x 2 rutmönster i ett fönster. 1. Gult (Röd + Grön), upp till vänster 2. Cyan (Grön + Blå), upp till höger 3. Mörkgrå, ner till vänster 4. Ljusgrå, ner till höger 2.4 Visa nu bilder med hjälp av funktionen imtool. Försök att förstå hur funktionen fungerar. Zooma in och ut din bild! 3. Punktvis operation, skalär produkt och numerisk integral 3.1 Definiera två vektorer v1 och v2 enligt nedan. >> v1=[1 2 3 4 5]; Detta kommando kan även skrivas som >> v1=1:5; >> v2=[5 4 3 2 1]; Detta kommando kan även skrivas som >> v2=5:-1:1; Begrunda nu var och ett av följande kommandon och beskriv vad de gör. >> v= v1*v2; Varför får du ett felmeddelande? >> s1=v1*v2 ; 3

Beskriv varför kommandot är korrekt nu? Varför är s1 en skalär och försök övertyga dig om att s1 är skalärprodukten mellan v1 och v2. Prova gärna v1 *v2 också! Kommentarer? Kör nu: >> v=v1.*v2; Vad är v? >> s2=sum(v); Som ni säkert har noterat är s1 och s2 lika. D.v.s. vi har beräknat skalärprodukten på två olika sätt. 3.2 Följande integral kan beräknas analytiskt enligt följande. π / 2 1 sin( x )cos( x) dx = 2 0 π / 2 0 1 sin(2x) dx = 4 π / 2 [ cos(2x) ] = 0. 5 Kör nu enligt följande för att beräkna samma integral med en av de enklaste numeriska metoderna. >> x=0:0.01:pi/2; >>p=sin(x).*cos(x); >>I1=sum(p); Begrunda nu vad varje rad gör i ovanstående kommandon. Med vilken faktor måste I1 multipliceras för att resultatet ska representera integralen? Varför? 0 Kör nu enligt följande: >> x=0:0.001:pi/2; >>p=sin(x).*cos(x); >I2=sum(p); Med vilken faktor ska I2 multipliceras? Är det I1 eller I2 som approximerar integralen bättre? Varför? 4

Beräkna nu följande integral numeriskt. Använd ett steg av 0.001. 1 0 x sin( x) dx 2 x + 1 Svaret är 0.24197482721717. Försök att hitta felet om ert resultat inte stämmer överens med detta tills ni lyckas hitta det rätta svaret. Några kommentarer? 4. Vektorer, bilder och funktioner 4.1 Skapa vektorn v enligt, >> v= 1:10 och studera hur följande kommandon fungerar. >> v(1:4) >> v(1:2:4) >> v(1:2:end) >> v(1:3:end) >> v(3:3:end) >> v(:) Observera att i de flesta programmeringsspråk måste man skriva funktioner med t.ex. forloopar för att göra ovanstående kommandon. I Matlab slipper man oftast detta. 4.2 I denna uppgift ska du anta att ovanstående kommandon inte existerar i Matlab. Nu med hjälp av for- loop skriv en funktion myvector som tar in fyra parametrar v, a, b och n där v är en vektor och a, b och n är heltal. Funktionen ska returnera följande: v(a:b:n) T.ex. myvector([1 3 4 5 6 8],2,2,6) ska returnera [3 5 8]. När du har säkerställt att din funktion fungerar prova nu följande, >> myvector([1 3 4 5 6 8],2,2,8) Och >> myvector([1 3 4 5 6 8],0,2,6) Vad händer? 5

Modifiera ditt program så att de två ovanstående kommandon fungerar t.ex. genom följande: Om a är icke positivt heltal då ska den sättas till 1 och om n är större än vektorns längd ska den sättas till vektorns längd. Se t.ex. size eller length. 4.3 Kör följande, >> myimage=imread( kvarn.tif ); >> myimage=double(myimage)/255; >> myimage1=myimage(1:2:end, 1:2:end); >> imshow(myimage1) >>figure; >> imshow(myimage1(:)) >>myimage2=myimage; >>myimage2(:,100)=1; >>figure; >>imshow(myimage2) Hur stor (pixel x pixel) är myimage och myimage1? Kör nu, >> myimage2=myimage(1:3:end, 1:4:end); >> imshow(myimage2) I mån av tid: skriv en Matlab funktion (med hjälp av for- loopar) som utför ovanstående kommandon, se uppgift 3.2 ovan. 5. Nedsampling och uppsampling 5.1 Läs in färgbilden Butterfl.tif och visa dess tre RGB kanaler i tre olika fönster. Glöm inte att konvertera bilden till double och sedan normalisera. Konvertera sedan RGB bilden till gråskalebild, genom t.ex. (R+G+B)/3 och döp den till mygray. 5.2 Sampla ner mygray från föregående uppgift på två olika sätt: 1. Genom att ta varannan rad och kolumn. 2. Genom att ta medelvärdet av varje 2x2 område i bilden och spara värdet som pixelvärdet i den nedsamplade bilden. (Lämpligast är att skriva en funktion som gör det) 6

Sampla upp nu den nersamplade bilden till dess ursprungliga storlek med funktionen, imresize. När det gäller interpolationen använd alla tre möjliga alternativen och diskutera skillnaderna. De tre möjliga interpolationerna är 'nearest' (default), bilinear och bicubic. 5.3 Läs in färgbilden Butterfl.tif och döp den till mycolorimage. Sampla ner och upp bilden med följande kommando: >> imresize(imresize(mycolorimage,0.5),2); Visa bilden! Jämför denna bild med originalbilden. Vad gjorde ovanstående kommando och hur ser resultatbilden ut? 5.4 Separera nu färgbilden till följande tre bilder R+G+B, R-G och R+G-2B, där R, G och B är färgbildens tre kanaler. Sampla ner R-G och R+G-2B och sampla upp dem igen med nearest och döp dem till bild2 respektive bild3, men behåll R+G+B som den var och döp den till bild1. Återskapa nu den nya bildens RGB kanaler med hjälp av bild1, bild2 och bild3. Visa nu den nya färgbilden och jämför med originalbilden samt bilden från 5.3. Diskutera resultatet. Ledning: Observera att följande gäller, R + G + B = bild1 R G = bild 2 R + G 2B = bild3 Att återskapa R, G och B med hjälp av bild1, bild2 och bild3 innebär att uttrycka R, G och B med hjälp av bild1, bild2 och bild3 genom att lösa ovanstående ekvationssystem. 7