IPLab, Nada, KTH 1999-01-13 1 Tentamen i Text- och bildbehandling (2D1378) onsdagen den 13 januari 1999, kl. 14 19 med lösningsidéer Hjälpmedel: räknedosa Fråga om något verkar oklart. Ange tydligt på omslaget vilken linje du tillhör. Vi behöver bl.a. kunna särskilja KTH och SU. Av 56 möjliga poäng ger 26 säkert betyg 3 (G), 37 säkert betyg 4, 41 säkert betyg VG och 47 säkert betyg 5. 1 (6) Förklara följande begrepp och termer (komplettera gärna med exempel). Du ska dels beskriva begreppet, dels avgränsa det från närliggande begrepp. (Varje felaktig eller utelämnad förklaring ger 1 p avdrag. Uppgiften ger dock minst 0 p.) a. blinda fläcken b. cedilj c. histogramutjämning d. horunge e. linjärer f. moaré g. OCR h. punktoperation i. tvålinjesiffra 2 (Strängsökning) Sökning enligt Boyer-Moore kan beskrivas så här: function BM :integer; var i,j,k :integer; begin i:=m; j:=m; repeat if s(i)=p(j) then begin i:=i-1; j:=j-1; end else begin k:=max(delta1(s(i)),delta2(j)); i:=i+k; j:=m; end; until (i>n) or (j=0); if j=0 then BM:=i+1 else BM:=n+1; end (* BM *); 2a (3) Konstruera vektorerna delta1 och delta2 för mönstren ABAC, CDBABA och ABAAB. Glöm inte att behandla tecken i alfabetet som inte ingår i mönstret. 2b (2) 2c (2) Visa sökning efter mönstret ABAAB i texten AAACBBBAABAAB. I en variant av BM enligt Horspool använder man inte vektorn delta2. Diskutera med hjälp av exemplen ovan hur delta1 och algoritmen behöver modifieras för att fungera i detta fall. 3a (2) (Typografiska tumregler) Redogör för hur horisontella streck av olika längd (-, och ) används. 3b (2) Redogör för hur olika citatteckenliknade tecken används (,,,, ', ",» och «). 3c (2) Vad är och hur används avstavningsanvisning (mjukt bindestreck), hårt bindestreck och bindeblank (hårt blanktecken)? 4a (2) 4b (3) 5a (1) 5b (3) (Radplanering) Hur går radplanering (uppdelning av stycke i rader) till i vanliga ordbehandlare såsom MSWord? Du ska inte gå in på hur programmet hittar avstavningspunkter i ord. Beskriv motsvarande radplanering i TeX. (Märkspråk) Vad är attribut i SGML? Förklara följande fragment ur en DTD. <!ELEMENT HR O EMPTY> <!ATTLIST HR align (left right center) #IMPLIED noshade (noshade) #IMPLIED size NUMBER #IMPLIED width CDATA #IMPLIED >
IPLab, Nada, KTH 1999-01-13 2 5c (3) 6a (2) 6b (3) 7a (3) 7b (2) 7c (2) 7d (3) I CSS (Cascading Style Sheet) är H1 { font: 12pt/14pt helvetica } en regel och H1 i denna regel kallas selektordel. Ange för varje selektordel nedan vad som ska gälla för ett avsnitt HTML-kod för att en CSS-regel med denna selektordel ska gälla för avsnittet. A.A #A A, B A.A A#A A B DIV SPAN.A (Bildlagring) Flera bildformat, bl.a. gif, använder»indexerade färger». Vad innebär det? Flera bildformat, bl.a. gif, använder följdlängdskodning. Beskriv något sätt att följdlängdskoda bilder med mer än 2 färger. (Rastrering) Rita upp rasterpunkten för ett rationellt raster med rastervinkeln 45 grader och 73 grånivåer. Visa tydligt att planet täcks av sådana rasterpunkter. Vilken rastertäthet motsvarar detta raster vid 600 exponeringspunkter per tum? En tillverkare (Optronics) annonserar f.n. att de kan åstadkomma högklassig rastrering vid 1 000 exponeringspunkter per tum. På vilket sätt är detta anmärkningsvärt? I Postscript kan man styra rastreringen med operatorn setscreen: frekvens vinkel tröskelvärdesprocedur setscreen Förklara hur operatorn fungerar. Vilket blir resultatet vid rastrering på en utmatningsenhet med 300 exponeringspunkter per tum av en bild med bildvärdet 0,3 (där 1 är vitt) med ett raster som åstadkoms med 50 0 {2 copy lt {pop} {exch pop} ifelse} setscreen. Proceduren beräknar minimum av sina två operander. 8a (3) (Geometrisk operation) Vid en geometrisk operation ges ju bildvärdet för en bildpunkt i den nya bilden av värdet i motsvarande punkt i den gamla bilden. Detta värde räknas ut genom någon sorts interpolation mellan bildpunkter i den gamla bilden. Beskriv två interpolationsmetoder som används i sådana sammanhang. 8b (3) Demonstrera en av metoderna du anger i 8a genom att förminska bilden t.v. till 40 %. 10 20 40 70 110 20 50 80 60 40 30 80 70 60 50 40 80 80 70 60?? 20 90 70 50 30?? 9 (3) (Färghantering) Beräkning av färgkoordinater för ett färgprov med refektansen f (λ ) kan göras genom att man bildar R= f r d ( λ) ( λ) λ G = f( λ) g( λ) dλ B= f b d ( λ) ( λ) λ Hur har man fått fram de tre funktionerna r, g och b? Visa att två färgprov kan se lika ut i en belysning medan de ser olika ut i en annan belysning. 0,4 0,2 0,0 b r g r 400 500 600 700 [nm] Lycka till!
IPLab, Nada, KTH 1999-01-13 3 1 a. blinda fläcken Område i näthinnan där synnerven lämnar ögat och som saknar synceller. b. cedilj Diakritiskt tecken som bl.a. används i bokstaven ç. c. histogramutjämning Tonförändring av en bild som ger den nya bilden ett jämnare histogram. Vissa varianter av histogramutjämning bygger på att vissa bildpunkter som i den gamla bilden har samma värde får olika värden i den nya. d. horunge Första eller sista rad i stycke som står ensam nederst eller överst i spalt eller på sida. e. linjärer Teckensnittsfamilj utan seriffer. f. moaré Oönskade mönster (interferens) när mönster överlagras. g. OCR Teckenigenkänning (optical character recognition). Att från bilder av ett dokument avgöra viken text det innehåller. h. punktoperation Bildbehandlingsoperation där varje bildpunkt i den nya bilden beräknas bara ur motsvarande bildpunkt i den gamla bilden. i. tvålinjesiffra Vanliga siffror som står på baslinjen och är höga som versaler i motsats till fyrlinjesiffror som i vissa fall når ned som understaplar och i vissa fall bara går upp till x-höjd. 2a delta1 A B C * delta2 A B A C 1 2 0 4 7 6 5 1 delta1 A B C D * delta2 C D B A B A 0 1 5 4 6 11 10 9 4 7 1 2b 2c delta1 A B * delta2 A B A A B 1 0 5 7 6 5 6 1 AAACBBBAABAAB ABA AB ABAAB ABAAB function BMH :integer; var i,j,k :integer; begin i:=m; j:=m; k:=m; repeat if s(i)=p(j) then begin i:=i-1; j:=j-1; end else begin k:= k+delta(s(k)); i:=k; j:=m; end; until (i>n) or (j=0); if j=0 then BMH:=i+1 else BMH:=n+1; end (* BM *); Alla komponenter i delta initieras till m. Därefter görs for j:=1 to m-1 do delta(p(j)):=m-j;
IPLab, Nada, KTH 1999-01-13 4 3a Här nämns vanliga användningar av de olika strecken i svenska och engelska. - kort streck bindestreck vid avstavning bindestreck i vissa sammansatta ord t.ex. Tarras-Valberg mellan grupper i numrering t.ex. 1999-01-12 minustecken i programspråk o.d. halvlångt streck minustecken i text t.ex. (a+b) tillstreck t.ex. 9 11 pratminus tankstreck i svenska t.ex. Hon ville åtminstone inte då säga något mer. långt streck tankstreck i engelska 3b och citat i svenska med citat i engelska med och innercitat i svenska med innercitat i engelska med apostrof t.ex. Va sa han? isn t ' fot och minut (både tid och vinkel) i vissa programspråk kring strängar eller tecken " tum och sekund (både tid och vinkel) i vissa programspråk kring strängar eller tecken» och «citat i svenskan med»» (mindre vanligt och ej rekommendabelt med» «) 3c avstavningsanvisning (mjukt bindestreck) tecken som markerar möjlig avstavningspunkt, när avstavning görs visas avstavningsanvisningen som bindestreck och radbyte och annars visas den ej hårt bindestreck bindestreck som visas som vanligt bindestreck men raden får ej brytas vid detta bindeblank (hårt blanktecken) blanktecken vid vilket raden ej får brytas, i t.ex. MSWord har dessutom tecknet fix bredd (1/4 fyrkant)
IPLab, Nada, KTH 1999-01-13 5 4a 4b Radbrytningarna bestäms i ordning från styckets början utan hänsyn till resten av stycket. Så många ord som möjligt tas med utan att något ord går ut i högermarginalen. Om avstavningsfunktionen är aktiv och raden är en viss sträcka kortare än spalten erbjuds användaren att avstava det första ord som ej ryms. För varje rad kan man beräkna en»dålighet» baserat på radens sträck- och krympbarhet och dess längd i förhållande till spaltens. Av de 2^(antalet ord 1) att dela upp stycket i rader väljs de ut där ingen rads dålighet överstiger parametern pretolerance. Om minst en sådan uppdelning finns väljs den bästa av dem. Annars letar man reda på möjliga avstavningspunkter och bland de 2^(antal ord + antal avstavningsmöjligheter 1) möjligheterna att dela upp stycket väljs de ut där ingen rads dålighet överstiger parametern tolerance. Om minst en sådan uppdelning finns väljs den bästa av dem. Annars skrivs ett meddelande om att stycket inte kan radplaneras. Metoden tar på detta sätt hänsyn till hela stycket. I valet mellan olika radfall beaktas dels summan av dåligheterna, dels andra faktorer såsom antalet avstavningar, starkt olika sträckning av intilliggande rader m.m. 5a 5b Attribut är information som kopplas till ett element utan att vara del av innehållet. Elementet måste inledas explicit med <HR> men behöver inte avslutas explicit med </HR> och det är dessutom tomt (kan inte ha något innehåll) och får därmed inte avslutas. Elementtypen HR har fyra attribut, inget behöver anges. Attributet align får ges något av värdena left, right eller center och noshade får ges värdet noshade. Attributet size får ges ett talvärde och width får ges ett värde av typ CDATA, en följd av tecken som inte tolkas. 5c A <A> </A>.A <element CLASS=A> </element> #A <element ID=A> </element> A, B både i <A> </A> och i <B> </B> A.A A#A A B DIV SPAN.A <A CLASS=A> </A> <A ID=A> </A> <A><B> </B></A> <DIV> </DIV> <SPAN CLASS=A> </SPAN> 6a 6b Istället för att i varje bildpunkt lagra färgen med 16 bitar (tusentals färger) eller 24 bitar (miljontals färger) lagrar man varje bildpunkt som ett index till en färgtabell där färgen beskrivs. Oftast är index 8 bitar och färgtabellen rymmer då 256 färger. Har bilden fler färger än platser i färgtabellen kastar man viss färginformation och approximerar med närmaste färg i tabellen eller använder rastrering dvs. ser till att medelfärgen i varje område blir rätt. För en tvåfärgsbild är varannan följd av den ena färgen. Man måste bestämma första följdens färg. För flerfärgsbilder lagrar man för varje följd både färg och följdlängd. Ofta har man också kod för följd av blandade färger av viss längd. Exempel: Indexerade färger med tabellstorlek 127; låt n x där 0 n 127 betyda en följd om n+1 bildpunkter med färgindex x och n x1 x2 xm betyda de m bildpunkterna med färgindex x1 x2 xm där 128 n 255 och m=n 127.
IPLab, Nada, KTH 1999-01-13 6 7a För att komma från en punkt i en rasterpunkt till motsvarande punkt i intilliggande rasterpunkt förflyttar man sig m steg horisontellt och n steg vertikalt. Vinkeln är arctan n/m och antalet gråtoner är m^2+n^2+1. Här är alltså m=n=6. Med exponeringspunkttätheten p exponeringspunkter per längdenhet blir rastertätheten p/sqrt(m^2+n^2) rasterpunkter per längdenhet. Rastertätheten blir alltså 600/sqrt(6^2+6^2)=600/sqrt(72) 71 [per tum]. 7b 7c 7d Högklassigt raster anses innebära ungefär 133 rasterpunkter per tum och omkring 200 toner. Som framgår av tabellen går detta inte att åstadkomma med 1 000 exponeringspunkter per tum och periodiskt raster. n 5 6 10 11 12 antal toner 51 73 201 243 289 rastertäthet [per tum] 142 118 71 64 59 För 133 rasterpunkter per tum och 200 toner krävs normalt 1 900 exponeringspunkter per tum. Parametern frekvens är rastertätheten i per tum, vinkel är rastervinkeln i grader, tröskelvärdesprocedur styr rasterpunktens form. Proceduren tar två koordinater från stacken, x och y, i intervallet 1..+1 och ger ett tal i samma intervall. Proceduren anropas för varje exponeringspunkt och dessa svärtas i ordning efter det returnerade tröskelvärdet. Med 300 exponeringspunkter per tum, rastervinkeln 0 grader och 50 rasterpunkter per tum blir varje rasterpunkt 6*6 exponeringspunkter. Tröskelvärdena blir som nedan t.v. floor(0,3*37)= 11 exponeringspunkter ska vara vita. De högsta svärtas först. Området består alltså av rasterpunkter med utseendet nedan t.h. 0,83 0,5 0,17 0 0,17 0,83 0,83 0,5 0,17 0 0,17 0,17 0,83 0,5 0,17 0 0 0 0,83 0,5 0,17 0,17 0,17 0,17 0,83 0,5 0,5 0,5 0,5 0,5 0,83 0,83 0,83 0,83 0,83 0,83
IPLab, Nada, KTH 1999-01-13 7 8a 8b Några vanliga metoder är närmaste granne, bilinjär interpolation och bikubisk interpolation. En punkt i den nya bilden g(x;y) är värdet i motsvarande punkt i den gamla bilden f(p;q) som fås genom den interpolerande funktionen f*(p;q). Vid närmaste granne är f*(p;q)=f(floor(p);floor(q)). Vid bilinjär interpolation är f*(p;q)=a+bx+cy+dxy där koefficienterna bestäms genom interpolation i (p;q), (p;q+1), (p+1;q) och (p+1;q+1). Enklast blir det med närmaste granne enligt ovan. 10 20 40 70 110 20 50 80 60 40 30 80 70 60 50 40 80 80 70 60 30 70 20 90 70 50 30 20 70 9 Försökspersoner ser två belysta ytor. Den ena (provytan) belyses med monokromatiskt ljus av våglängden λ och den andra (referensytan) med en blandning av ljus från tre monokromatiska ljuskällor med standardiserade våglängder (i rött, grönt och blått våglängdsområde). Försökspersonen reglerar intensiteten på de tre ljuskällorna så att referensytan överensstämmer med provytan. Negativt värde innebär att ljuset leds över till provytan. Kurvorna är medelvärden för ett stort antal försökspersoner. Färgkoordinaterna för ljuset från en yta med reflektansen f(λ ) som belyses med ljuset h(λ ) fås av R = f (λ )h(λ )r(λ )dλ G = f (λ )h(λ )g(λ )dλ B = f (λ )h(λ )b(λ )dλ. Ett färgprov f 1 som enbart reflekterar våglängden λ 1 och ett färgprov f 2 som reflekterar både λ 1 och λ 2 är lika i en belysning h 1 som bara innehåller vågländen λ 1 men olika i belysningen h 2 som innehåller våglängderna λ 1 och λ 2.