30.08.2013 Views

Digitala bilder och digital bildmanipulering

Digitala bilder och digital bildmanipulering

Digitala bilder och digital bildmanipulering

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

'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!