Képek, képfeldolgozás Szirmay-Kalos László
Képek a képszintézisben Transzformáció vágás Geometriai model raszterizáció (x,y,szín) scanner Kép (textúra) (akár float) Pixel műveletek Digitális fényképezőgép Rasztertár (8 bit) fájl
Képek, képformátumok Fej: típus, méret (szélesség, magasság) bit-per-pixel, indexelt-valós szín, lookup tábla Törzs: szélesség x magasság db pixel (R,G,B) vagy idx Tömörítés (run length, LZW, Huffmann, FFT, wavelet) Standard formátumok: TARGA, GIF, JPEG, TIFF, BMP, PCX GIF, MPG, AVI, ...
TARGA Fej: Törzs: … Törzs b1 g1 2 r1 9 db 0 b2 g2 r2 b1 g1 2 r1 9 db 0 b2 g2 r2 Szélesség alsó bájt … Szélesség felső bájt Magasság alsó bájt Magasság felső bájt Bit-per-pixel: 24 32 Törzs
Grafika - képfeldolgozás Textúrák Grafika Kép Geometriai leírás Alakfelismerés I(x,y) diszkrét
Képfeldolgozás Kép Kép Diszkrét f(u,v) Képfeldolgozás Diszkrét g(u,v) 2D tömb Kép Diszkrét g(u,v) 2D tömb Képfeldolgozás Kép ábrázolhatósága Kép javítás Alakfelismerés előkészítése Információ rejtés, stb.
Kvantálás 8 bit: 256 szín 4 bit: 16 szín 3 bit: 8 szín
Dither S + = eredeti jel zaj hozzákeverés kvantálás aluláteresztô szűrés n+d bit n bit rasztertár S x0 d bit szem dither RAM x1 monitor y0 d bit y1
Fekete-fehér dither Kis periódusú mátrix dither 0 8 2 10 Véletlen 0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5 Véletlen zaj 1 16 Nagyperiódusú egyenletes sorozat halftone
Színes dither Véletlen zaj Mátrix dither
Tone mapping I I’ HRDI(R,G,B)LDRI(r,g,b) konverzió Ir +Glow 1+ Ir Luminancia: I = 0.21R + 0.72G + 0.07B Adaptációs lum: I’ Relatív lum: Ir = Megjelenített lum: Megjelenített szín: I I’ Ir +Glow 1+ Ir D = D I (r,g,b) = (R,G,B,)
Fényesség transzformációk: g(u,v) = H(f(u,v))
Hisztogram Alacsony kontraszt Alacsony fényerő
Hisztogram kiegyenlítés
Hisztogram kiegyenlítés p f p(x)dx = g( f ) f p g g dg df = p(f) f
Szűrés g(x) = w(t) · f(x-t) dt g(i,j) = w(di,dj) f(i-di, j-dj)
Aluláteresztő szűrőtípusok W(f) Ideális aluláteresztő w(x) = sinc(x) doboz kúp B-spline Gauss
Postprocessing Postprocessing HDRI 8 bit R,G,B kép Mélység értékek Frame buffer Tone mapping Glow Depth of field Textúrák
Postprocessing HDRI 8 bit R,G,B kép Mélység értékek Frame buffer Render a full screen quad: glBegin(GL_QUADS); glTexCoord2f(1,1); glVertex4f(-1,-1,0,1); glTexCoord2f(1,0); glVertex4f(-1, 1,0,1); glTexCoord2f(0,0); glVertex4f( 1, 1,0,1); glTexCoord2f(0,1); glVertex4f( 1,-1,0,1); glEnd( ); Vertex shader: void main ( in float4 Pos : POSITION, in float2 Tex : TEXCOORD0, out float4 hPos : POSITION, out float2 oTex : TEXCOORD0 ) { hPos = Pos; oTex = Tex; } Fragment shader: float4 main ( in float2 Tex : TEXCOORD0) : COLOR { color = Filtered colors in the neighborhood of Tex; Postprocessing HDRI 8 bit R,G,B kép Mélység értékek Frame buffer textúrák
Glow
Mélységélesség (Depth of field) k z d P Éles kép r r circle of confusion D lencse tárgy Fokális sík képsík
Mélységélesség