Kantoorautomatisering Didactisch materiaal bij de cursus Kantoorautomatisering http://telin.UGent.be/~philips/kantoorautomatisering/ Academiejaar 2010-2011 Prof. dr. ir. W. Philips philips@telin.UGent.be
Copyright notice This powerpoint presentation was developed as an educational aid to the renewed course “Office automation” (Kantoorautomatisering), taught at the University of Gent, Belgium as of the year 2000. This presentation may be used, modified and copied free of charge for non-commercial purposes by individuals and non-for-profit organisations and distributed free of charge by individuals and non-for-profit organisations to individuals and non-for-profit organisations, either in electronic form on a physical storage medium such as a CD-rom, provided that the following conditions are observed: 1. If you use this presentation as a whole or in part either in original or modified form, you should include the copyright notice “© W. Philips, Universiteit Gent, 2000-2002” in a font size of at least 10 point on each slide; 2. You should include this slide (with the copyright conditions) once in each document (by which is meant either a computer file or a reproduction derived from such a file); 3. If you modify the presentation, you should clearly state so in the presentation; 4. You may not charge a fee for presenting or distributing the presentation, except to cover your costs pertaining to distribution. In other words, you or your organisation should not intend to make or make a profit from the activity for which you use or distribute the presentation; 5. You may not distribute the presentations electronically through a network (e.g., an HTTP or FTP server) without express permission by the author. In case the presentation is modified these requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the presentation, and can be reasonably considered independent and separate works in themselves, then these requirements do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the presentation, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. In particular note that condition 4 also applies to the modified work (i.e., you may not charge for it). “Using and distributing the presentation” means using it for any purpose, including but not limited to viewing it, presenting it to an audience in a lecture, distributing it to students or employees for self-teaching purposes, ... Use, modification, copying and distribution for commercial purposes or by commercial organisations is not covered by this licence and is not permitted without the author’s consent. A fee may be charged for such use. Disclaimer: Note that no warrantee is offered, neither for the correctness of the contents of this presentation, nor to the safety of its use. Electronic documents such as this one are inherently unsafe because they may become infected by macro viruses. The programs used to view and modify this software are also inherently unsafe and may contain bugs that might corrupt the data or the operating system on your computer. If you use this presentation, I would appreciate being notified of this by email. I would also like to be informed of any errors or omissions that you discover. Finally, if you have developed similar presentations I would be grateful if you allow me to use these in my course lectures. Prof. dr. ir. W. Philips E-mail: philips@telin.UGent.be Department of Telecommunications and Information Processing Fax: 32-9-264.42.95 University of Gent Tel: 32-9-264.33.85 St.-Pietersnieuwstraat 41, B9000 Gent, Belgium
Overzicht Beeldrepresentatie pixel- vs. vectorformaten kleurvoorstelling: ware kleur en pseudo-kleur Kleuren in beelden kleurperceptie en -reproductie Contrast- en kleuraanpassing Formaatconversie van pixelbeelden (geometrische herschaling) Ruisverwijdering in en filteren van beelden Beeldcompressie verliesloos (=zonder kwaliteitsverlies) verlieshebbend (=met kwaliteitsverlies)
Beeldrepresentatie
Pixelformaat vs. vectorformaat newpath 270 360 moveto 0 72 rlineto 72 0 rlineto 0 -72 rlineto closepath fill showpage vectorformaat Grafische objecten kunnen in twee formaten worden voorgesteld als een pixelbeeld, d.w.z. als een matrix van gekleurde pixels (“picture elements”, puntjes) als een vectortekening, d.w.z., een lijst van tekencommando’s die de tekening opbouwen m.b.v. lijnen, opgevulde vierkanten, …
Parameters van pixelbeelden R=255 G=204 B=102 afmeting: 1/r, met r de weergaveresolutie Een pixelbeeld is een matrix van wh pixels (breedte x hoogte), die worden weergegeven als gekleurde vierkantjes De grootte van de vierkantjes wordt bepaald door de weergaveresolutie r dit is het aantal pixels per cm of per inch typische waarde voor schermweergave: 72-115 pixels/inch De kleur van elk vierkantje wordt opgegeven d.m.v. 1 of meerdere getallen 3 getallen: b.v. de RGB-waarde van de kleur 4 getallen: b.v. de CMYK-waarde van de kleur 1 getal: b.v. de grijswaarde van de kleur 1 getal: b.v. een index in een kleurentabel
Ware kleur vs. Pseudo-kleur Bij “directe” of “ware kleur” weergave zijn de pixelwaarden kleurcoördinaten typisch: één byte per kleurcomponent (R, G en B) Bij “pseudo-kleur” weergave zijn de pixelwaarden indices in een kleurentabel typisch: 4 tot 8 bit per pixel 16 tot 256 verschillende kleuren “Ware kleur” weergave i “Pseudo-kleur” weergave 1 2 3 i r g b Naar scherm r g b Naar scherm
Kleuren en kleurvoorstelling
Structuur van het menselijk oog Fotogevoelige elementen in de retina: twee soorten: kegeltjes en staafjes grootste dichtheid in de fovea 100.000.000 receptoren in het oog maar slechts 800.000 zenuwdraden er is duidelijk lokale processing in het oog lens Staafjes en kegeltjes Kegeltjes aantal: 6.000.000 voor zicht bij normaal omgevingslicht 3 types, gevoelig voor respectievelijk blauw, groen en geelgroen licht retina visuele as blinde vlek fovea Staafjes aantal: 100.000.000 veel gevoeliger dan kegeltjes optische zenuwbundel voor “donker”-zicht 1 type geen kleuronderscheiding
Spectrum van zonlicht
Spectrale gevoeligheden Spectrale gevoeligheden kegeltjes: Hoe sterk is het zenuwsignaal wanneer licht met een bepaalde golflengte en een vaste intensiteit op een kegeltje invalt? relatieve absorptiespectra 400 500 600 700 golflengte l (nm) b (groen) (golflengtespectra!) g (geelgroen tot rood) arbitraire eenheden (blauw)
Kleuraanpassingsexperiment eerste poging tweede poging Reproductie van een willekeurige lichtbron met spectrum X( f ) d.m.v. een gepaste superpositie van R, G en B lukt meestal maar niet altijd als men lukt, noemt men R,G,B de RGB-coördinaten van de bron X( f ) Als het niet lukt, dan kan men trachten een superpositie van X( f ) met b.v. R’IR( f ) visueel gelijk te maken aan een superpositie van GIG( f ) en BIB( f ) in dit geval noemt men -R’,G,B de RGB-coördinaten van de bron X( f ) en is dus minstens één van de coördinaten negatief! Let op: De RGB-coördinaten hangen af van de gekozen reproductiebronnen IR( f ), IG ( f ) en IB ( f ) die men dus naast R, G, en B moet vermelden
Gamutproblemen De verzameling van de nabootsbare kleuren, d.w.z., de kleuren met positieve coördinaten R,G,B, noemt men de gamut van het weergavesysteem: Lichtbronnen met één of meerdere negatieve RGB coordinaten zijn niet reproduceerbaar De corresponderende “kleuren” behoren niet tot de gamut De gamut hangt af van de gekozen primaire kleuren Verschillende weergavetechnieken hebben verschillende gamuts: een TV-scherm kan b.v. niet dezelfde kleuren weergeven als een laserjet dit is een belangrijk probleem in de drukwereld monitor limitatons output limitations
RGB Wat betekenen de RGB coördinaten in digitale beelden? deze zijn gekoppeld aan een welbepaald reproductieapparaat (bv. crt-display) of een welbepaald captatieapparaat (bv. scanner of fototoestel) dezelfde RGB waarde kan dus met verschillende kleuren corresponderen, naargelang het apparaat er bestaan gestandaardiseerde RGB-kleurenruimtes (bv. sRGB); als zo een standaardruimte werd gebruikt bij het maken van het beeld en als in het bestandsformaat wordt vermeld in welke ruimte wordt gewerkt, bestaat geen twijfel over de kleuren, maar dit is zelden het geval correcte weergave van een beeld vereist dat het weergaveapparaat dezelfde RGB-ruimte gebruikt, of dat er wordt omgerekend tussen de RGB-ruimtes van het beeld en het weergaveapparaat (“kleurenmanagement”)
De XYZ-kleurenruimte X, Y en Z zijn altijd positief De CIE heeft een stel kleurcoördinaten X, Y, Z gedefinieerd: deze zijn geassocieerd aan hypothethetische (niet-bestaande) primaire lichtbronnen belangrijkste voordeel: de XYZ-coördinaten kunnen voor alle lichtbronnen gemakkelijk worden gemeten met een eenvoudig meetinstrument Enkele eigenschappen Voor wit licht is X=Y=Z X, Y en Z zijn altijd positief Y is een maat voor de helderheid van een lichtbron zoals waargenomen door de mens, onafhankelijk van de kleur van de lichtbron Om de kleur van een bron te beschrijven, onafhankelijk van zijn intensiteit voert men de zogenaamde CIE-chromaticiteitscoördinaten in: Vermits x+y+z=1, volstaan x en y voor het beschrijven van een kleur
De xyz-kleurencoördinaten spectrale (monochromatische) kleuren 660 nm 700 nm 500 nm 400 nm Men definieert xyz-chromaticiteitscoördinaten, die onafhankelijk zijn van de intensiteit: 0 0.2 0.4 0.6 0.8 0.2 x y 0.4 0.6 0.8 HDTV rood HDTV groen HDTV blauw Gamut van HDTV X=Y=Z HDTV wit % groen colour models: CIE Yxy expert topics: temp of light % rood Opmerking: monochromatische lichtbronnen bevatten slechts één frequentie (b.v. bij benadering: lasers, neonlampen, …
Contrast- en kleuraanpassing
Kleurtint en saturatie (HSV) Bij constante helderheid Y wordt de kleurindruk volledig bepaald door de chromaticiteitscoördinaten x en y 0 0.2 0.4 0.6 0.8 0.2 x y 0.4 0.6 0.8 Men definieert voor een kleur de helderheid (Value) de kleurtint (Hue): is de kleur rood-, blauw-, … geelachtig? de saturatie (Saturation): is de kleur sterk of flets?; hoeveel wit bevat de kleur? Voorbeeld: “roze” heeft dezelfde tint als “rood” maar is minder gesatureerd X=Y=Z q V, S en H kunnen b.v. numeriek worden uitgedrukt als respectievelijk de CIE-luminantie Y, de afstand r en de hoek q in de figuur color models: 3Dmodel xv
Saturatie-aanpassing origineel X=Y=Z 0 0.2 0.4 0.6 0.8 0.2 x y 0.4 0.6 0.8 kleur Desaturatie gedesatureerd
Saturatie-aanpassing origineel X=Y=Z 0 0.2 0.4 0.6 0.8 0.2 x y 0.4 0.6 0.8 kleur Saturatie 100% gesatureerd
Kleurtintaanpassing X=Y=Z 0 0.2 0.4 0.6 0.8 0.2 x y 0.4 0.6 0.8 kleur 0 0.2 0.4 0.6 0.8 0.2 x y 0.4 0.6 0.8 kleur origineel Tintaanpassing rood cyaan Tintaanpassing correspondeert met een rotatie in de xy ruimte
Gamma-correctie camera monitor camerauitgang Camerasensoren produceren signalen die (met goede benadering) evenredig zijn met de RGB-coördinaten van het invallend licht Cathodestraalbuizen (computermonitors, TV-schermen) produceren kleuren waarvan de R, G en B-waarden evenredig zijn met een niet-lineaire functie van de aangelegde signalen Hands on colour management characterizing monitors characterizing input devices er is gammacompensatie nodig: de signalen moeten zodanig worden getransformeerd dat de RGB-waarde op het scherm gelijk is aan de RGB-waarde van de kleur die de camera ziet Bij conventie wordt de g-compensatie berekend in de camera typische computerbeelden bevatten g-gecompenseerde RGB-waarden
Contrast – het grijswaardenhistogram histogram h(g) grijswaarde g Het histogram h(g) telt hoeveel keer iedere grijswaarde voorkomt In het voorbeeld wordt slechts een klein deel van het grijswaardenbereik benut het contrast (verschil tussen donkerste en helderste kleuren) is laag
Contrastaanpassing g’=f (g) Contrastaanpassing verbetert het contrast van een beeld door bepaalde grijswaarden verder uit elkaar te leggen en indien nodig (als compensatie) andere dichter bij elkaar te brengen Hierbij wordt ervoor gezorgd dat alle pixels met dezelfde grijswaarde, na aanpassing ook eenzelfde grijswaarde hebben 255 128 Grijswaarde g’ g’=f (g) Grijswaarde g als grijswaarde a voor aanpassing donkerder is dan grijswaarde b, dat dan na aanpassing a’ niet lichter is dan b’ vooral het contrast tussen veel voorko- mende grijswaarden wordt verbeterd (eventueel ten koste van het contrast tussen zeldzamere grijswaarden) g’(x,y)=f (g(x,y)) met f(g) een monotoon stijgende functie De nieuwe grijswaarde g’(x,y) van de pixel op positie (x,y) wordt als volgt berekend uit de oude grijswaarde g(x,y):
Histogramegalisatie beide intervallen bevatten ongeveer evenveel pixels histogram h(g) f(g) grijswaarde histogram h(g) na egalisatie grijswaarde Bij histogramegalisatie streeft men ernaar dat na aanpassing het aantal pixels in een grijswaardeninterval [a,b] ruwweg evenredig is met b-a methode: kies afgeleide (=helling) van f(g) evenredig met h(g) resultaat: grijswaarden uniform verrspreid op macroscopisch vlak
Histogramegalisatie De volgende formule voor contrastaanpassing verdeelt de grijswaarden van het aangepaste beeld ruwweg gelijkmatig over het bereik [0,255] (voor k>0) Hierin is h(l) het aantal keer dat de grijswaarde l voorkomt in het origineel beeld (de functie h(l) is dus het histogram van het beeld) en N het aantal pixels in het origineel beeld Opmerking: in het algemeen is het onvermijdbaar dat voor sommige originele grijswaarden g geldt dat f(g+1)=f(g): twee pixels die in het origineel beeld een (licht) verschillende grijswaarde hebben, hebben in het geëgaliseerd beeld een niet meer te onderscheiden grijswaarde er gaat dus informatie verloren en het geëgaliseerd beeld bevat doorgaans minder dan 256 verschillende grijswaarden als het origineel beeld er wel 256 verschillende grijswaarden bevat
…Histogramegalisatie: voorbeeld Origineel na egalisatie Het beeld is veel contrastrijker geworden, eigenlijk een beetje teveel
Manuele contrastaanpassing... histogram na egalisatie f(g) f(g) histogram na manuele egalisatie grijswaarde Men kan ook zelf een functie f ( g) vooropstellen en daarbij de maximale helling van de curve beperken
... Manuele contrastaanpassing Manuele egalisatie Origineel na egalisatie Na manuele egalisatie beter contrast in de rivier
Contrastaanpassing bij kleurenbeelden origineel na histogramegalisatie in XYZ Bij kleurenbeelden wil men meestal enkel de helderheid beïnvloeden soms past men verkeerdelijk dezelfde transformatie toe op de R, G en B ofwel transformeert men Y in de XYZ-ruimte (en dat is goed)
Gammacorrectie... g =2 (op V in HSV) g =2 (op R, G en B) g =2 origineel g =2 (op V in HSV) g =2 (op R, G en B) g =2 Bij gammacorrectie is Bij kleurenbeelden wil men meestal weer enkel de helderheid beïnvloeden toepassen op Y in XYZ (redelijke benadering) Gamma-compensatie toepassen op R, G en B afzonderlijk is meestal geen goed idee
Gamut-hermapping Probleemstelling de gamuts van acquisitietoestellen (b.v. scanners, digitale camera’s, …), weergavetoestellen (b.v. TV-schermen, computer-monitors) en afdruktoestellen (b.v. verschillende drukprocédés) zijn niet gelijk bijgevolg kan een beeld niet-afdrukbare kleuren bevatten Gevolgen de niet-afdrukbare kleuren zien er anders uit in de afgedrukte versie kleurverschillen (b.v. tussen twee niet-afdrukbare kleuren of tussen een afdrukbare en een niet afdrukbare kleur) kunnen verkleinen Gamut-hermapping: men transformeert zelf voor het drukken alle kleuren naar afdrukbare kleuren; mogelijke werkwijzes: “perceptive remapping” tracht relatieve kleurverschillen te behouden “colorimetric remapping” tracht de kleuren zo dicht mogelijk te benaderen, maar bekommert zich niet om kleurverschillen
Gamut-hermapping originele kleuren gamut van weergave-systeem beeld hermapte kleuren “perceptive remapping”: alle kleuren vervangen door nieuwe kleuren met de zelfde tint en intensiteit maar monotoon gedesatureerd Voordeel relatieve saturatie van kleuren blijft bewaard
Gamut-hermapping “colorimetric remapping”: de reproduceerbare kleuren veranderen niet de niet-reproduceerbare kleuren worden vervangen door de meest gelijkende reproduceerbare kleuren kleuren die veranderen kleuren die niet veranderen “Colorimetric remapping” is het best voor beelden die weinig niet-reproduceerbare kleuren bevatten; zoniet is “perceptive remapping” het best
Formaatconversie
Schermweergave van beelden Kleurvectoren schermpixels met vaste grootte Vereenvoudigd model schermweergave: een grafische kaart stelt een matrix (b.v. 1024x768) van kleurvectoren (b.v. 3 bytes: RGB) voor als een reeks naast elkaar liggende gekleurde vierkantjes de kleur van de vierkantjes wordt bepaald door de corresponderende kleurvector In de tekening: de bolletjes symboliseren de kleurvectoren en de vierkantjes de weergegeven pixels
Formaatconversie De afmetingen van een pixelbeeld worden bepaald door het aantal pixels in het beeld, b.v. 256x256 de grootte waarmee een pixel wordt afgebeeld Op een computerscherm hebben de pixels een vaste grootte men kan een grotere pixel simuleren door b.v. 2x2, 3x3, … naburige pixels dezelfde kleur te geven een vergroting met een niet gehele factor (b.v. 1.5) is niet direct mogelijk Bij het drukken van beelden treden deze problemen in mindere mate op om een beeld groter te maken verhoogt men het aantal lijnen per inch het aantal lpi kan in veel kleinere stappen worden aangepast omdat het aantal lpi vele keren kleiner is dan het aantal spi; b.v. bij 1200 spi: originele resolutie: 120 lpi 10x10 spots per pixel volgende resolutie: 11x11 spots per pixel 1/(1/120+1/1200)=109 lpi volgende resolutie: 12x12 spots per pixel 1/(1/120+2/1200)=100 lpi dit is wel een vereenvoudigde redenering: er kunnen extra problemen optreden door interactie met rasterproces
Herbemonstering door interpolatie Principe: beschouw gegeven pixels als de monsterwaarden van een beeldfunctie van continue veranderlijken; bereken deze beeldfunctie door interpolatie herbemonster de beeldfunctie aan een hogere of lagere resolutie bij weergave op zelfde scherm: groter of kleiner beeld dichtste-buur interpolatie k=10 11 g(k) positie originele beeldpixels lineaire interpolatie k=10 11 g(k) i=8 9 g’(i) nieuwe beeldpixel i=8 9 g’(i)
Dichtste-buur interpolatie in 2D Principe: beschouw gegeven pixels als de monsterwaarden van een beeldfunctie van continue veranderlijken; bereken deze beeldfunctie door interpolatie herbemonster de beeldfunctie aan een hogere of lagere resolutie bij weergave op zelfde scherm: groter of kleiner beeld dichtste-buur interpolatie k=10 11 g(k) positie originele beeldpixels
Herschaling met dichtste-buur interpolatie ba(r) 1.5x vergroot, d.w.z. ba(2/3 r) weergave op scherm met vierkante pixels ba(r) Nadeel: bij vergroting met een niet-gehele schaalfactor kunnen vervormingen ontstaan (hier: de witte en gele vierkanten veranderen van grootte men noemt deze artefacten “aliasing” Voordeel: zeer snel Bilineaire interpolatie (=lineaire interpolatie in 2 dimensies) geeft doorgaans minder erge vervormingen
Voorbeelden: dichtste-buur dichtste-buur 1.5x vergroot bilineaire interpolatie 1.5x vergroot origineel 256x256 Lineaire interpolatie (vs. dichtste-buur interpolatie) geeft minder moiré-artefacten geeft een iets waziger beeld vraagt ook meer berekeningen
Filteren van beelden
Ruis in beelden witte, gaussiaanse ruis impuls-ruis veel kleine en weinig grote ruispieken geïsoleerde, sterke ruispieken 80% distributie van de ruiswaarden
Filteren Een filter berekent uit een gegeven beeld een nieuw beeld Soorten filters lineaire laagdoorlaatfilters: onderdrukken ruis maar maken het beeld wazig lineaire hoogdoorlaatfilters: maken het beeld scherper maar versterken ruis niet-lineaire filters trachten meestal ruis te verwijderen zonder het beeld wazig te maken dikwijls zijn ze specifiek afgestemd op bepaalde soorten ruis of op bepaalde soorten beelden Opmerking: we behandelen hier enkel technieken voor grijswaarden-beelden, maar mits enige aanpassingen kunnen de technieken ook worden toegepast op kleurenbeelden
Lineair filteren x y ingangsbeeld uitgangsbeeld 1 2 1 2 “Filter masker” x= -1 0 1 y= -1 7 3 2 9 1 3 5 2 1 47 42 39 1 3 2 Berekenen van een “gefilterde” pixelwaarde: leg het filtermasker op de gepaste plaats over het ingangsbeeld vermenigvuldig de grijswaarden van het ingangsbeeld met deze van het masker en tel op Opmerking: normaal herschaalt men het uitgangsbeeld zodat de grijswaarden ervan tussen de 0 en 255 liggen (8 bit)
Voorbeeld: gemiddeldewaardefilter Origineel gemiddelde over 5x5 omgeving Dit is een typisch voorbeeld van een laagdoorlaatfilter Het onderdrukt gedeeltelijk de ruis maar maakt het beeld ook waziger in xv: blur met verchillende maskerafmetingen in imagemagick: add noise, gevolgd door blur gimp: filters-noise; filters generic
Het mediaanfilter... x y ingangsbeeld uitgangsbeeld 1 2 4 3 2 9 1 3 5 9 1 3 5 2 1 2 sorteren 0 1 1 2 2 3 3 4 9 1 3 2 Berekenen van een “gefilterde” pixelwaarde: leg het filtermasker op de gepaste plaats over het ingangsbeeld; de filteruitgang is de mediaan van de grijswaarden binnen het masker
Verwijderen van impulsruis... mediaan over 3x3 impuls-ruis Het mediaanfilter verwijdert geïsoleerde ruispieken, zonder het beeld wazig te maken
... Verwijderen van impulsruis gemiddelde over 3x3 mediaan over 3x3 Lineaire filters houden geen rekening met het geïsoleerd karakter van de ruispieken en maken het beeld wazig De mediaan doet het bij impulsruis veel beter dan lineaire filters