Presentatie titel Rotterdam, 00 januari 2007 Computer Graphics Technische Informatica
Les 1 De module vision bestaat uit een theoriedeel en een prakticum deel. Deze sheets gaan over het theoretische deel De module computer graphics gebruikt het volgende boek Boek: Computer Graphics (Second edition), Auteur : Zhigang Xiang, Roy Plastock. Uitgever: Schaum’s Outlines ISBN: 0=
Inhoud Computer graphics is een tak van de computerwetenschap, die handelt over het in de computer invoeren van beelden Een computer gegenereerd beeld kan een scene afbeelden met op de achtergrond een driehoek of een dinosaurus Wat is het verschil tussen een tekening maken op een computer of op een blad papier? In dit hoofdstuk worden concepten behandeld
Inhoud De hoofdstukken 1 t/m 12 van het boek worden behandeld Inleiding Beeldvoorstelling Scan conversie 2-dimensionale transformaties 2 dimensionale beeldsystemen en clipping
Inhoud 3-dimensionale transformaties Wiskundige projectie Geometrische voorstelling Verborgen oppervlakten Kleuren en schaduw modellen Ray-tracing
Inhoud Les 1 gaat over de hoofdstukken: 1.1 Inleiding 2. Beeldvoorstelling 2.1 RGB kleuren model 2.2 Directe codering 2.3 Lookup table 2.4 Weergave monitor 2.5 Printer 2.6 Beeld bestanden 2.7 kleuren attributen van pixels
Inleiding Hoe tekenen we een driehoek? (zie fig 1-1) De driehoek is de object definitie Die wordt in de ruimte getekend en heet object space (objectruimte)
Inleiding De afbeelding op papier heet image space ( beeldruimte ) De afbeelding kan worden beinvloed door plaats en richting Hetzelfde vindt plaats bij een computer De driehoek noemt men een meetkundige voorstelling We kunnen een 2-dimensionaal coordinaten systeem in de object ruimte plaatsen De computer verbindt de lijnen Tevens vindt transformatie plaats
Inleiding Verschil computer en papier is dat de computer discrete punten tekent en niet continue Het gedeelte dat verantwoordelijk is voor de het converteren naar het beeld op het scherm heet scan conversie De afwijking noemt men het aliasing effect (trapjeseffect) In fig 1-2 is de architectuur van een grafisch systeem gegeven
Inleiding De afbeelding op papier heet image space ( beeldruimte ) De afbeelding kan worden beinvloed door plaats en richting Hetzelfde vindt plaats bij een computer De driehoek noemt men een meetkundige voorstelling We kunnen een 2-dimensionaal coordinaten systeem in de object ruimte plaatsen De computer verbind de lijnen Tevens vindt transformatie plaats
Beeld voorstelling Een digitaal beeld bestaat uit discrete pixels Georganiseerd als rij-kolom Resolutie= aantal pixels per lengte-eenheid 3*2 inch beeld met resolutie 300 pixels/per inch heeft totaal 900*600 pixels= pixels Aspect ratio= verhouding van de breedte tot de hoogte, gemeten in lengte-eenheid of pixels 6*4½ inch of 1024* 768 pixels hebben een aspect ratio van 4/3
RGB kleurenmodel Fig 2-1 geeft het kleurencoordinaatsysteem voor rood R,groen G en blauw (B) Waarden 0-1 (zwart is 0)
RGB kleurenmodel RGB is optellen van kleuren (beeldscherm) CMY is aftrekken van kleuren (printer) C = cyaan (hemelsblauw) M= magenta (roze) Y=yellow (geel) Rood aftrekken van wit levert combinatie groen en blauw Fig 2-2 geeft het kleurencoordinaatsysteem voor CMY
RGB kleurenmodel
Directe codering Fig 2-3 geeft de codering van 3 kleurenbits 3 bytes = 24 bit per pixel ( 8 bit per primaire kleur (true color)
Directe codering Een pixel heeft een kleur van 256*256*256 mogelijkheden = 16, kleurwaarden Een grijs beeld = 8 bit per pixel Het geheugen voor een 1024*1024 beeld: Er zijn = 10 6 pixels per beeld 1 beeld bevat dan 16, bits ≈ bytes = 2GByte Er zijn nooit 16,7 miljoen verschillende kleuren in 1 beeld Daarom een lookup-table om geheugen te besparen
Lookup-table Fig 2-4 geeft een lookup-table met 256 ingangen Iedere ingang wijst naar 24 bit RGB kleur Een pixel –waarde is nu 1 byte ( 8 bit)
Lookup-table De kleur van die pixel-waarde i met 0 ≤ i ≤ 255 wordt bepaald door de kleurwaarde in de tabel op adres i Er zijn nu maar 2 8 =256 gelijktijdige kleuren mogelijk per beeld Het geheugen voor een 1024*1024 beeld (met lookup-table): Er zijn = 10 6 pixels per beeld 1 beeld bevat dan 8 pixels per beeld i.p.v 24 pixels per beeld 1 byte per pixel geeft byte geheugen = 1MB
Lookup-table Nu nog grootte van lookup-table bepalen 24 bit * 256 bit = bit= bytes = 768 bytes=0,768 kB Totale grootte 1MB + 0,768 kB = 1, MB Een beeld wordt niet alleen bepaald door de pixel waarde maar ook door de kleurwaarde in de overeenkomstige lookup-table Deze kleurenwaarden vormen de kleuren-map (color map) voor het beeld
Weergave monitor Meest gebruikt werd de CRT (Cathode Ray Tube) ( zie fig 2-5)
Weergave monitor De kleuren monitor bevat 3 electronenkanonnen en een schaduw masker(zie fig 2-6)
Printer Een printer plaatst een laagje kleuren pigment op een printmedia. Het licht dat van de oppervlakte wordt gereflecteerd wordt door de mens gezien Er worden 3 pigmenten gebruikt cyaan,magenta,geel) Tevens nog een zwart pigment omdat het lastig is met CMY echt zwart te produceren Men noemt dit CMYK model ( K=key voor zwart)
Half tone printer Traditionele techniek van de print industrie bij met bilevel (zwart-wit) devices (printer, plotter) Deze gebruikt pigment stippen met variable grootte. Hiermee wordt witte achtergrond gemengd Dit geeft verschillende intensiteitniveau’s op afstand bekeken De stippen worden zo gevormd dat ze een hoek van 45 0 vormen met de horizon ( zie fig 2-7)
Half tone printer De grootte van de stippen is omgekeerd evenredig met de beoogde intensiteit De techniek om zulke beelden te maken heet half-tone techniek Kranten gebruiken een half-tone van dots ( stippen) per inch Boeken gebruiken een half-tone van dots ( stippen) per inch
Halftone benadering In plaats van de grootte van de dots te wijzigen kunnen we de haftone techniek benaderen met patronen van pixel-rasters Voor een 2*2 pixel raster construeren we 5 raster patronen om 5 verschillende intensiteiten te krijgen ( zie fig 2-8)
Halftone benadering Het aantal intensiteiten kan verhoogd worden door een ander grootte van het raster Ook kan nog meer intensiteiten verkregen worden als pixels ook nog zelf intensiteits - verschillen bevatten ( zie fig 2-9) Deze halftone rasterpatronen heten ook wel dither patronen
Halftone benadering Dither wordt gebruikt om het beeld een natuurlijker aanzien te geven Een aantal ontwerp overwegingen: 1. Groeien van uit het pixel centrum 2. Een pixel moet altijd hetzelfde niveau houden 3. Symmetrie moet vermeden worden 4. Geisoleerde “aan” pixels moeten vermeden worden We kunnen een dither matrix gebruiken om een serie dither patronen te geven
Halftone benadering Bijvoorbeeld een 3*3 matrix Deze geeft de volgorde aan van de intensiteit van de pixels in een 3*3 raster. Op die manier zijn er 10 niveau’s Niveau I wordt verkregen door alle pixels aan te zetten die corresponderen met de waardes in de dither matrix die kleiner zijn dan I Zie onderstaande figuur
Halftone benadering
Beeldbestanden Een digitaal beeld is gecodeerd in een binaire file Formaat bmp,jpeg,tiff Structuur is voor alle gelijk Fig 2-10 geeft de organisatie van een beeld structuur 2 delen: header en beelddata
Beeldbestanden
Kleuren attributen Kleuren attributen wijzigen van individuele pixels is een primitieve operatie waarbij systeembibliotheken gebruikt worden Afhankelijk van het beeldtype (direct of lookup) zijn er 2 mogelijkheden: 1. setPixel(x,y,rgb) (direct) met rgb = 3-element- array rgb[0]=r, rgb[1]=g, rgb[2]=b setPixel(x,y,i) (lookup) met i = adres ingang die (r,g,b) bevat 2. setColor(rgb) (direct) zonder plaatsinformatie setColor(i) (lookup) zonder plaatsinformatie
Kleuren attributen Plaatsinformatie schrijven: setPixel(x,y) Plaatsinformatie lezen (direct): getPixel(x,y,rgb) Plaatsinformatie lezen (Lookup): getPixel(x,y,i) Lookup-table schrijven : setEntry(i,rgb) Lookup-table lezen: getEntry(i,rgb) Achtergrond beeld schrijven: clear()