30.08.2013 Views

Digitala bilder och digital bildmanipulering

Digitala bilder och digital bildmanipulering

Digitala bilder och digital bildmanipulering

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

'LJLWDOD ELOGHU RK GLJLWDO ELOGPDQLSXOHULQJ<br />

Nyckelord: Sampling, kvantisering, upplösning, geometriska operationer, fotometriska operationer, målning, filtrering<br />

'LJLWDO UHSUHVHQWDWLRQ RK ODJULQJ DY ELOGHU<br />

En fotografisk bild kan med viss rätt sägas ha mer eller mindre oändlig upplösning, i alla fall jämfört med <strong>digital</strong>a <strong>bilder</strong>. Det<br />

finns ingen tydlig begränsning för detaljskärpan i en fotografisk bild, <strong>och</strong> inte heller någon tydlig gräns för hur små<br />

skillnader i intensitet som kan återges. En <strong>digital</strong> bild däremot har begränsad upplösning både i rumsled <strong>och</strong> signalled. För<br />

att överföra en analog bild till <strong>digital</strong> form utför man en så kallad sampling, där den kontinuerliga variationen i intensitet<br />

över originalbildens yta läses av på diskreta punkter, <strong>och</strong> en kvantisering, så att intensiteten i varje uppmätt punkt representeras<br />

med ett binärt tal med ändlig precision, ofta med 8 binära bitar som kan representera 28 =256 olika intensitetsnivåer.<br />

Den rumsliga upplösningen kan kallas för geometrisk upplösning. Ofta säger man dock bara kort <strong>och</strong> gott ”upplösning” när<br />

man i vardagslag talar om geometrisk upplösning. En ofta använd enhet för geometrisk upplösning är pixels per inch eller<br />

dots per inch, förkortat ppi eller dpi. SI-enheten centimeter förekommer tyvärr ganska sällan i detta sammanhang. För bildskärmar<br />

används ofta termen dot pitch, som direkt anger storleken för en pixel, ofta i enheten millimeter.<br />

Det antal nivåer man kan representera med den valda kvantiseringen kan kallas för fotometrisk upplösning. En vanlig enhet<br />

för att beskriva fotometrisk upplösning är bits per pixel, förkortat bpp. Begreppet ”pixel” är en hopdragning av engelskans<br />

”picture element” <strong>och</strong> är en vanlig benämning för den minsta enheten i en <strong>digital</strong> bild, en enda sampelpunkt. En svensk<br />

benämning är bildpunkt, men den används tyvärr sällan. Kvantiseringen utförs lämpligen så att det tillgängliga talområdet<br />

utnyttjas väl, till exempel så att det mörkaste tänkbara svarta i bildmaterialet representeras med det minsta representerbara<br />

talet, <strong>och</strong> det ljusaste vita representeras med det största talet. Man skall alltså göra en väl avvägd kalibrering av signalområdet,<br />

så att inte de tillgängliga binära bitarna blir delvis outnyttjade, <strong>och</strong> så att bildsignalen inte heller blir överstyrd, det vill<br />

säga att de mörkaste eller ljusaste delarna i bilden inte kan representeras korrekt.<br />

Sampelpunkterna läggs vanligen i en kvadratiskt rutmönster i rader <strong>och</strong> kolumner parallella med bildens kanter, beroende på<br />

att det är enklast så. Det finns inget som formellt hindrar att man väljer olika geometrisk upplösning i horisontell <strong>och</strong> vertikal<br />

led i en bild, eller lägger sampelpunkterna i andra mönster än rektangulära rutnät, men detta är inte särskilt vanligt.<br />

Originalbild 13x13 sampelpunkter 13x13 samplade pixels Kvantiserade pixelvärden<br />

Ur bildkvalitetssynpunkt är det viktigt att ha hög upplösning både geometriskt <strong>och</strong> fotometriskt. Den geometriska upplösningen<br />

i ovanstående exempel är till exempel grovt otillräcklig för att återge motivet väl. Brister i geometrisk upplösning kan<br />

inte kompenseras med en hög fotometrisk upplösning. En bristande fotometrisk upplösning kan däremot åtminstone delvis<br />

kompenseras med en mycket hög geometrisk upplösning genom så kallad rastrering (engelska halftoning, dithering), men<br />

det är något man tar till endast om utenheten inte kan återge tillräckligt många intensitetsnivåer. Detta är fallet för till exempel<br />

de flesta skrivare <strong>och</strong> alla vanliga tryckmetoder. Teorin <strong>och</strong> praktiken kring rastrering tillhör området grafisk teknik. Vi<br />

går inte in på detaljerna här, men i figuren nedan ser du ett enkelt exempel på en rastrerad bild i stark förstoring.<br />

Gråskalebild, 8 bpp Rastrerad bild, 1 bpp<br />

61 54 69 81 70 62 108 88 89 73 68 78 70<br />

68 66 65 67 117 110 137 150 157 141 90 76 71<br />

71 70 83 ...


I <strong>bilder</strong>na nedan ses effekten av varierande geometrisk <strong>och</strong> fotometrisk upplösning. Den exakta geometriska upplösningen<br />

som anges gäller om du skriver ut detta dokument. Om du tittar på en skärm beror den aktuella upplösningen på vilken storlek<br />

du har på bildpunkterna på skärmen du läser detta från, <strong>och</strong> på vilken förstoringsgrad du har valt i läsprogrammet. En<br />

typisk bildskärm har en geometrisk upplösning någonstans mellan 70 <strong>och</strong> 100 dpi, <strong>och</strong> du kommer därför inte att se någon<br />

större skillnad mellan 135 <strong>och</strong> 67 dpi på skärmen om du inte zoomar in på <strong>bilder</strong>na.<br />

135 dpi, 8 bpp (256 nivåer) 67 dpi, 8 bpp 34 dpi, 8 bpp 17 dpi, 8 bpp<br />

135 dpi, 4 bpp (16 nivåer) 135 dpi, 3 bpp (8 nivåer) 135 dpi, 2 bpp (4 nivåer) 135 dpi, 1 bpp (2 nivåer)<br />

2SHUDWLRQHU Sn GLJLWDOD ELOGHU<br />

Det finns många operationer som kan utföras på <strong>digital</strong>a <strong>bilder</strong>. Detta är i själva verket anledningen till att <strong>digital</strong>a <strong>bilder</strong><br />

blivit så populära. I stort sett all hantering av <strong>bilder</strong> sker i dag med <strong>digital</strong>a metoder, just på grund av att det är så flexibelt<br />

<strong>och</strong> erbjuder så många möjligheter som inte fanns eller var mycket besvärliga att genomföra på traditionellt sätt med<br />

fotografiska metoder. Det finns dock fallgropar. <strong>Digitala</strong> <strong>bilder</strong> har stora möjligheter, men också begränsningar som inte<br />

alltid är så lätta att hålla reda på. En grundläggande teoretisk kunskap om mekanismerna bakom lagring <strong>och</strong> manipulation av<br />

<strong>digital</strong>a <strong>bilder</strong> är till mycket god hjälp för att undvika att göra fel, <strong>och</strong> även för att analysera fel som uppstått i behandlingen<br />

av <strong>bilder</strong>. Det är fortfarande en låg nivå på dessa kunskaper bland folk i allmänhet, även bland många som dagligen arbetar<br />

med <strong>bilder</strong>. Tumregler <strong>och</strong> inkörda rutiner får tyvärr ofta ersätta en djupare förståelse.<br />

Det antal operationer som kan utföras på en <strong>digital</strong> bild är oräkneliga, <strong>och</strong> nya sätt att behandla, förbättra, förändra, förvanska<br />

<strong>och</strong> förstöra <strong>bilder</strong> uppfinns hela tiden. Operationerna kan dock för överskådlighets skull delas in i några olika grundläggande<br />

typer.<br />

*HRPHWULVND RSHUDWLRQHU<br />

Alla operationer som förändrar en bilds storlek eller form kan kallas för geometriska operationer. Till dessa hör dels en rad<br />

enkla operationer som bara plockar existerande bilddata pixel för pixel <strong>och</strong> överför dessa data till en ny bild:<br />

Kopiering (en ny bild skapas med samma innehåll som en förlaga)<br />

Beskärning (en del av bilden används till att skapa en ny bild)<br />

Collage (flera <strong>bilder</strong> eller delar av <strong>bilder</strong> kombineras till en ny bild)<br />

Sedan finns det geometriska operationer som kräver att man räknar om data på olika sätt. Två av dessa är storleksförändring<br />

<strong>och</strong> rotation.<br />

6WRUOHNVI|UlQGULQJ<br />

För att förändra storleken på en bild kan man strängt taget ägna sig åt bokföringstekniska manipulationer <strong>och</strong> behålla exakt<br />

samma bilddata, men anse att bilden har en annan geometrisk upplösning. Genom att öka den geometriska upplösningen<br />

förminskar man bilden, <strong>och</strong> genom att minska den geometriska upplösningen kan man förstora bilden. Detta är dock inte särskilt<br />

vanligt. Ofta har man en utenhet med en bestämd geometrisk upplösning som bilden skall visas på, <strong>och</strong> då måste man<br />

förändra bildens dimensioner i antalet pixels på bredden <strong>och</strong> höjden för att få den att verkligen fysiskt ändra storlek.


När man förstorar en bild måste man skapa nya pixels mellan de gamla. Detta kallas för interpolering eller uppsampling.<br />

Det finns olika metoder för att göra detta. De vanligaste är närmaste granne (nearest neighbor), bilinjär interpolation<br />

(bilinear interpolation) <strong>och</strong> bikubisk interpolation (bicubic interpolation). Bikubisk interpolation är den mest komplicerade<br />

<strong>och</strong> tar längst tid att beräkna, men ger i allmänhet också det bästa resultatet. Närmaste granne är ingen egentlig interpolation,<br />

utan man tar bara det närmaste sampelvärdet <strong>och</strong> duplicerar det. Detta ger en ”kantighet” i de förstorade <strong>bilder</strong>na som oftast<br />

är oönskad. Bättre interpolationsmetoder ger inte samma tydliga bieffekter. Bilder som förstoras mer än marginellt blir dock<br />

alltid suddiga på ett eller annat sätt. Det finns helt enkelt inte nog med information i en liten bild för att skapa en större, skarp<br />

bild.<br />

När en bild skall förminskas måste man kasta bort data <strong>och</strong> bestämma sig för vilka sampelvärden man skall behålla. Detta<br />

kallas för nedsampling, <strong>och</strong> innebär också ett slags interpolering. Även här kan man använda sig av närmaste granne, linjär<br />

eller bikubisk interpolering, med i stort sett samma skillnader i kvalitet som för uppsampling. Närmaste granne-metoden kan<br />

göra även en förminskad bild kantig, <strong>och</strong> vissa små detaljer kan försvinna helt eller delvis. Bilder som förminskats innehåller<br />

mindre information än originalet, eftersom man kastar bort data när man minskar antalet bildpunkter. Det går därför inte att<br />

återskapa originalet exakt genom att förstora den förminskade bilden igen.<br />

5RWDWLRQ<br />

En annan bildoperation som kan kräva beräkningar är rotation. Rotation i steg om 90 grader innebär dock inga beräkningar.<br />

Då är det bara att flytta om de befintliga bildpunkterna <strong>och</strong> stuva om rader till kolumner. Beräkningar krävs bara när man vill<br />

rotera i en godtycklig vinkel. På samma sätt som med förminskning <strong>och</strong> förstoring kan man ta en enkel utväg <strong>och</strong> säga att<br />

själva rutnätet för samplingen vrids med bilden, så att man bara lägger själva bildpunkterna på snedden. På samma sätt som<br />

för storleksförändring är detta dock sällan någon bra lösning. Det är oftast en utenhet inblandad som har horisontella <strong>och</strong><br />

vertikala rader <strong>och</strong> kolumner för de bildpunkter som kan visas, <strong>och</strong> för att få en bild att visas roterad måste man i sådana fall<br />

räkna om sampelvärdena. Det rör sig även här om en interpolering, där man skapar nya sampelpunkter utifrån existerande<br />

sampelpunkter, <strong>och</strong> även härkan man använda sig av olika noggranna interpoleringsmetoder. Närmaste granne-metoden kan<br />

ge ett acceptabelt resultat för rotation, men liksom annars är mer komplicerade metoder som bikubisk interpolering att föredra<br />

om man har datorkraft nog <strong>och</strong> programvara som klarar av att göra en noggrannare interpolering.<br />

En annan populär metod för att förändra <strong>bilder</strong> är så kallad ”warping”, där bilden samplas om till ett oregelbundet rutnät för<br />

att uppnå speciella effekter. I detta fall är det ännu viktigare att man interpolerar noggrant, eftersom bilden kommer att samplas<br />

om olika tätt i olika punkter. Om interpolationseffekter som kantighet eller suddighet syns mer på vissa ställen än andra<br />

är det både avslöjande <strong>och</strong> störande.<br />

Förminskning, förstoring, rotation <strong>och</strong> ”warping” faller allihop under det kollektiva begreppet omsampling, vilket bokstavligen<br />

innebär att man räknar fram en ny samplad <strong>digital</strong> bild med en tidigare samplad <strong>digital</strong> bild som utgångspunkt. Teorin<br />

kring omsampling är omfattande <strong>och</strong> komplicerad, men om man bara känner till i stora drag vad det innebär har man vunnit<br />

mycket för förståelsen av hur <strong>digital</strong>a <strong>bilder</strong> uppför sig.<br />

Originalbild (105x105 pixels)<br />

Förminskad bild<br />

(50x50 pixels)<br />

Förstorad bild (210x210 pixels)<br />

bikubisk interpolering


Bild roterad 90 grader<br />

)RWRPHWULVND RSHUDWLRQHU<br />

Förutom att förändra en bilds geometriska dimensioner kan man behöva ändra i själva pixelvärdena. Detta är mycket vanliga<br />

operationer som i många fall har en direkt motsvarighet i traditionella fotografiska metoder. Att förändra en bild så att den<br />

blir ljusare, mörkare, mer eller mindre kontrastrik eller får en bättre färgåtergivning faller under begreppet fotometriska<br />

operationer. Gemensamt för dessa operationer är att de kan beskrivas som en enkel avbildning av inbildens värden till<br />

utbildens värden, pixel för pixel. Avbildningen kan på ett enkelt <strong>och</strong> konkret sätt beskrivas med en överföringsfunktion eller<br />

tonkurva (transfer function, tone curve), där man i ett diagram anger utbildens värde för varje tänkbart värde i inbilden.<br />

Axlarna i diagrammet kan antingen graderas i intervallet [0,1] eller direkt i den valda kvantiseringens representation med<br />

heltalsvärden, vilket för 8 bitars kvantisering innebär tal mellan 0 <strong>och</strong> 255.<br />

Utbildens värde (0-1)<br />

0nOQLQJ<br />

Inbildens värde (0-1)<br />

Förutom att förändra en hel bild på samma sätt kan man naturligtvis vilja gå in <strong>och</strong> ändra vissa detaljer eller mindre områden<br />

i <strong>bilder</strong>. Detta görs med interaktiva metoder, där en operatör med hjälp av en mus eller ett <strong>digital</strong>iseringsbord för en pekare<br />

med ett ”verktyg” över bilden. Verktyget kan efterlikna en målarpensel eller liknande, så att bilden får nya värden där verktyget<br />

används, men det kan också vara ett markeringsverktyg, så att man markerar eller maskar ut vissa delar av bilden, för<br />

att sedan utföra någon fotometrisk operation eller filtrering (se nedan) på de markerade delarna av bilden.<br />

7UDQVSDUHQV<br />

Bild roterad 10 grader<br />

Oregelbunden omsampling (”warping”)<br />

Ingen tonförändring Ljusare bild Mörkare bild Mer kontrast Mindre kontrast<br />

Ett mycket vanligt <strong>och</strong> nyttigt begrepp på området <strong>digital</strong>a <strong>bilder</strong> är transparens (eng. ”transparency”, genomskinlighet),<br />

eller motsatsen opacitet (eng. ”opacity”, ogenomskinlighet). Transparens beskrivs antingen som en egenskap hos en hel<br />

bild, eller mer generellt som en egenskap hos varje pixel. Transparensen blir då en egen kanal i bilden, där man för varje<br />

pixel förutom dess ljushetsvärde även anger hur genomskinlig den är. Transparenta bildpunkter i en bild som i ett collage<br />

läggs ovanpå andra <strong>bilder</strong> med andra bildpunkter skall ge ett pixelvärde i utbilden som beror av både den nya <strong>och</strong> den gamla<br />

underliggande bilden. Oftast beskrivs transparensen som en procentsats, där 100% transparens innebär att bilden är helt genomskinlig<br />

<strong>och</strong> inte syns, <strong>och</strong> 0% transparens innebär att bilden är helt ogenomskinlig <strong>och</strong> helt täcker underliggande bildpunkter.<br />

Opacitet är samma sak fast tvärt om: 100% opacitet innebär en helt ogenomskinlig, täckande bild, medan 0%<br />

opacitet innebär en helt genomskinlig, osynlig bild.


)LOWUHULQJ<br />

Den sista klassen av operationer på <strong>digital</strong>a <strong>bilder</strong> kan faktiskt också sägas vara en fotometrisk operation, men i stället för att<br />

beräkna varje ny bildpunkts värde som en funktion av värdet hos en enda punkt i originalbilden så tar man i en filtrering<br />

hänsyn till flera pixels i originalbilden för att beräkna varje ny pixel. Begreppet syftar inte på någon tydlig likhet med traditionella<br />

optiska filter för fotografi, utan snarare till filter inom signalbehandling <strong>och</strong> elektronik, där man kan förändra en signal<br />

på ofta mycket komplicerade sätt genom att skicka den genom ett filter. <strong>Digitala</strong> <strong>bilder</strong> är också signaler, med skillnaden<br />

att de är en funktion av två variabler (x,y) i stället för i en dimension som till exempel ljudsignaler eller elektriska signaler,<br />

som kan beskrivas som en funktion av tiden. Samma verktyg som används för att analysera filter i en dimension fungerar<br />

även för att analysera filter i två dimensioner, <strong>och</strong> även om vi inte går in på sådana detaljer här kan det vara värt att nämna att<br />

just <strong>digital</strong>a filter för bildoperationer är ett mycket stort tillämpningsområde för <strong>digital</strong> signalbehandling. Detta tillhör<br />

ämnesområdena bildanalys <strong>och</strong> bildbehandling, <strong>och</strong> vi går inte in på detaljer här. I stället visar vi några belysande exempel.<br />

Filtrering av en bild kan enkelt beskrivas som en operation som inte bara tar hänsyn till en enda bildpunkts värde för att<br />

skapa en punkt i utbilden, utan dessutom tittar på en större eller mindre omgivning av punkten <strong>och</strong> utför vissa beräkningar<br />

för att komma fram till utbildens värde. Även en interpolering, som beskrevs ovan, är faktiskt ett slags filtrering.<br />

Filter för förändring av <strong>digital</strong>a <strong>bilder</strong> finns av många olika slag för många olika tillämpningar, <strong>och</strong> många av dem innebär<br />

mycket komplicerade beräkningar med många mellanled. En viktig klass av filter är emellertid ganska enkla att beskriva,<br />

nämligen så kallade linjära filter. Dessa beskrivs med en uppsättning viktskoefficienter, <strong>och</strong> utbildens värde i varje punkt<br />

beskrivs som ett viktat medelvärde av inbildens värden i motsvarande punkt samt i en liten omgivning runt denna punkt. Om<br />

man definierar filtret i en omgivning av 3x3 pixels får man nio viktskoefficienter i filtret, <strong>och</strong> utbildens värde i varje punkt<br />

beräknas som en summa av nio termer. Det är rätt så mycket arbete med att beräkna en filtrering, speciellt om man har<br />

många filterkoefficienter, men de effekter som kan uppnås är väldigt avancerade. Man reducera brus i <strong>bilder</strong>, få dem att bli<br />

suddiga eller faktiskt även se skarpare ut, eller man kan lägga på olika sorters specialeffekter. Variationsmöjligheterna är<br />

oräkneliga. De flesta mer avancerade bildbehandlingsprogam innehåller stora möjligheter till filtrering av <strong>bilder</strong>.<br />

Som ett konkret exempel kan vi ta en operation som gör en bild litet suddig, ett enkelt så kallat gaussiskt filter (Gaussian<br />

blur). Viktskoefficienterna visas till vänster om <strong>bilder</strong>na. Varje pixel i utbilden beräknas som en summa av okringliggande<br />

pixels multiplicerade med motsvarande viktskoefficienter.<br />

1 2 1<br />

2 4 2<br />

1 2 1<br />

inbild utbild<br />

Operationen får i princip samma effekt som om man hade gjort bilden suddig med optiska metoder (t ex dra en kamera ur<br />

fokus). För att göra bilden ännu mer suddig kan man använda ett större filter med fler koefficienter, eller helt enkelt<br />

applicera filtret flera gånger på bilden, vilket faktiskt är både enklare <strong>och</strong> snabbare.<br />

Det finns inget som hindrar att man har negativa viktskoefficienter i ett filter. Nedanstående filter ger till exempel en reliefeffekt,<br />

där vertikala kanter förstärks.<br />

1 0 -1<br />

2 1 -2<br />

1 0 -1<br />

inbild utbild<br />

Filter med en eller flera negativa vikter är i allmänhet kantförstärkande, deriverande operationer, även kallade högpassfilter,<br />

som gör att kanter <strong>och</strong> små detaljer förstärks, medan filter med enbart positiva vikter har utsuddande, integrerande karaktär,<br />

även kallade lågpassfilter, som gör detaljer <strong>och</strong> kanter oskarpa. Exakt hur man bär sig åt för att designa filter som utför en<br />

önskad operation behandlas inom ämnena signal- <strong>och</strong> bildbehandling, <strong>och</strong> det ligger långt utanför ramen för denna korta<br />

introduktion.<br />

Stefan Gustavson, ITN-LiTH, 2002-08-26

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!