330 likes | 436 Views
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.
E N D
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
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
I. Folyadékkristályos hőtérképezés 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 1 green 2 red 3 cyan 4 magenta 5 yellow 6 fentiek ismétlése
Pixel érték Szín 0…K-1 darkblue…lightblue K…2K-1 darkgreen…lightgreen stb. 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:
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:
Minutiae II. Ujjlenyomat azonosítás Delta Hurok Eva Nikodemusz, V. Székely: Image recognition problems of fingerprint identification, Microprocessors and Microsystems, V.17, No.4, 1993
II. Ujjlenyomat azonosítás Olyan, mint egy E elektromos tér erővonalképe!
II. Ujjlenyomat azonosítás Az Ex “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.FPbinimaz 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
Képfile formátumok Nagyon sok fajta használatos! Például: PNM MacPaint GEM SUN rasterfiles IFF/ILBM és még sok más. BMP GIF TIFF JPEG Targa PCX PNG 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;
A BMP - mint példa 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!
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: 101 826 byte RLE kódolt BMP, 8 bit: 15 002 byte Kódolatlan BMP, 8 bit: 66 858 byte RLE kódolt BMP, 8 bit: 6 078 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
A Huffman kódolás hatékonysága Képezzük a szomszédos pixel értékek különbségét, pl. a vízszintes vonalak mentén!
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 BMP71 278 JPEG közepes tömörítés 13 260 erős tömörítés 4 175 igen erős 2 527
A JPEG tömörítés hatása 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