Számítógépes grafika és képfeldolgozás IV előadás: Képfeldolgozási esettanulmányok, képfájl formátumok Jegyzet: Székely Vladimír: Képfeldolgozás 7. fejezet
Képfeldolgozási esettanulmányok
I. Folyadékkristályos hőtérképezés V. Székely, M. Rencz: Image processing procedures for the thermal measurements IEEE Trans. on Components and Packaging Technology, V.22, No.2, 1999
B1 B2 B3 I. Folyadékkristályos hőtérképezés
“Added image”, összegkép: I. Folyadékkristályos hőtérképezés
“Hamis színes” megjelenítés Pixel érték Szín 0 blue 1green 2red 3cyan 4magenta 5yellow 6 fentiek ismétlése I. Folyadékkristályos hőtérképezés
A hamis színes kép “mögé tesszük” a layout rajzot 1. Az L layout képet 0…K-1 komprimáljuk 2. Az összegkép pixel értékeit K-val szorozzuk 3. A fenti két képet összeadjuk 4. Az alábbi szín-táblát használjuk: Pixel érték Szín 0…K-1darkblue…lightblue K…2K-1darkgreen…lightgreen stb. I. Folyadékkristályos hőtérképezés
Relief jellegű kép generálása 1. Az A összegképról készítünk egy 2-2 pixellel eltolt R másolatot 2. A megjelenítendő képet az alábbi módon számoljuk: 3. A LUT-ot egyenletes szürke skálára állítjuk. I. Folyadékkristályos hőtérképezés
Izotermikus vonalak rajzolása a layoutra 1. Az A összegképen Roberts operátoros élkeresés E 2. Az alábbi összeg képzése: I. Folyadékkristályos hőtérképezés
II. Ujjlenyomat azonosítás Eva Nikodemusz, V. Székely: Image recognition problems of fingerprint identification, Microprocessors and Microsystems, V.17, No.4, 1993 Delta Hurok Minutiae
II. Ujjlenyomat azonosítás Olyan, mint egy E elektromos tér erővonalképe!
II. Ujjlenyomat azonosítás Az E x “térerősség” számítása 1. A kép dy-nal eltolt replikáját képezzük 2. Ezt EXOR-oljuk az eredeti képpel 3. Számoljuk az eredmény területét az a,b téglalapon:
II. Ujjlenyomat azonosítás Definíciók Xbinim = bináris kép Xgrayim = szürkeskálás kép pl. FPbinim az ujjlenyomat Ybinim=SHIFT(Xbinim,dx,dy) Abinim=EXOR(Bbinim,Cbinim) Xgrayim=SUMM(Xbinim,a,b)
II. Ujjlenyomat azonosítás A teljes divergencia számítása EXbinim=EXOR(FPbinim,SHIFT(FPbinim, ,0)) EYbinim=EXOR(FPbinim,SHIFT(FPbinim,0, )) EXgrayim=SUMM(EXbinim,a,b) EYgrayim=SUMM(EYbinim,a,b) DIVgrayim=SHIFT(EXgrayim,h/2,0) - SHIFT(EXgrayim, - h/2,0) SHIFT(EYgrayim,0,h/2) - SHIFT(EYgrayim,0, - h/2)
II. Ujjlenyomat azonosítás További problémák: a elöjel eldöntése a bizonytalan területek kizárása
II. Ujjlenyomat azonosítás
Képfájl formátumok, tömörítés
Képfile formátumok Nagyon sok fajta használatos! Például: BMP GIF TIFF JPEG Targa PCX PNG PNM MacPaint GEM SUN rasterfiles IFF/ILBM és még sok más. Irodalom: D.C. Kay, J.R. Levine: Graphics File Formats, 2nd ed. Windcrest/McGraw Hill, 1995
A BMP - mint példa typedef struct { BYTE rgbBlue; BYTE rgbGreen; BYTE rgbRed; BYTE rgbReserved; } RGBQUAD; typedef struct { DWORD biSize; /* a str. byte-jainak szama */ DWORD biWidth; /* bitterkep szelessege, pel */ DWORD biHeight; /* bitterkep magassaga, pel */ WORD biPlanes; /* kotelezoen =1 */ WORD biBitCount; /* bit/pixel, 1,4,8,24 */ DWORD biCompression; /* 0/1/2=nem tomor/RLE8/RLE4 */ DWORD biSizeImage; /* kepmeret byte-okban */ DWORD biXPelsPerMeter; /* device pixel/meter vizsz */ DWORD biYPelsPerMeter; /* device pixel/meter fugg */ DWORD biClrUsed; /* hasznalt szinek szama */ DWORD biClrImportant; /* fontos szinek szama */ } BITMAPINFOHEADER ;
typedef struct { BITMAPINFOHEADER bmiHeader; RGBQUAD bmiColors[256]; } BITMAPINFO; typedef struct { WORD bfType; /* a BM karakterek */ DWORD bfSize; /* a file merete, byte */ WORD bfReserved1; /* foglalt, =0 */ WORD bfReserved2; /* foglalt, =0 */ DWORD bfOffBits; /* bitterkep kezdet offs*/ } BITMAPFILEHEADER; fwrite(&bmfh,sizeof(BITMAPFILEHEADER),1,fp); fwrite(&bminf,sizeof(BITMAPINFO),1,fp); Pixelek írása sorfolytonosan, balról jobbra, alulról felfelé. Vigyázat!!! Soronként kiegészítendő 4-gyel oszthatóra! A BMP - mint példa
Képtömörítési eljárások 1. Információ veszteség nélkül Run-length encoding (RLE) Statisztikai módszerek (pl. Huffman) Aritmetikai módszerek 2. Információ veszteséggel RLE, megtűrt eltéréssel Bitszám csökkentés + dithering JPEG Tipikus forrás-kódolási probléma!
Run-length encoding (RLE) (futamhossz kódolás) Soronként alkalmazzák Általában max. 128 hosszúságú blokkok (hosszabb bontandó) Rajz jellegű képeknél igen hatékony
Az RLE kódolás hatékonysága Kódolatlan BMP, 8 bit: byte RLE kódolt BMP, 8 bit: byte Kódolatlan BMP, 8 bit: byte RLE kódolt BMP, 8 bit: byte Vonalas ábrán, rajzfilm rajzon igen hatékony!
A Huffman kódolás Előzetesen szükség van a kép statisztikájára (hisztogram) A kódtábla is továbbítandó Csak akkor hatékony, ha a pixel értékek eloszlása nem egyenletes
A Huffman kódolás hatékonysága A kiegyenlített hisztogrammú képen gyakorlatilag hatástalan
Képezzük a szomszédos pixel értékek különbségét, pl. a vízszintes vonalak mentén! A Huffman kódolás hatékonysága
Képtömörítési eljárások 1. Információ veszteség nélkül Run-length encoding (RLE) Statisztikai módszerek (pl. Huffman) Aritmetikai módszerek 2. Információ veszteséggel RLE, megtűrt eltéréssel Bitszám csökkentés + dithering JPEG
A JPEG tömörítés JPEG = Joint Photographic Experts Group of the ISO (International Standard Organisation) RGB Luminancia + 2 Chrominancia, utóbbiakban 2 kisebb felbontás, 8 8 mezökön DCT, a nagyobb frekvenciák egyre kisebb bitszámon tárolva, Ez után aritmetikai vagy statisztikai tömörítés.
A JPEG tömörítés hatása Tömörítetlen BMP JPEG közepes tömörítés erős tömörítés igen erős 2 527
Közepes tömörítés (18,6%) A JPEG tömörítés hatása
Erős tömörítés (5,86 %) A JPEG tömörítés hatása
Igen erős tömörítés (3,55 %) A JPEG tömörítés hatása
Vonalas ábrához soha ne használjuk!!! Kódolás nélkül JPEG A JPEG tömörítés hatása