280 likes | 486 Views
XỬ LÝ ẢNH SỐ. Là một môn khoa học còn mới mẻ , bao gồm các vấn đề cơ bản : Hệ Thống xử lý ảnh Các vấn đề cơ bản trong xử lý ảnh. Hệ Thống X ử L ý Ảnh. Thu Nhận Ảnh Phân Tích Ảnh Xử Lý Ảnh Lưu Trữ Ảnh. Thu Nhận Ảnh. Thu Nhận qua Camera dưới dạng các tín hiệu tương tự hoặc số hóa .
E N D
XỬ LÝ ẢNH SỐ • Làmộtmônkhoahọccònmớimẻ, baogồmcácvấnđềcơbản: • HệThốngxửlýảnh • Cácvấnđềcơbảntrongxửlýảnh
HệThốngXửLýẢnh • Thu NhậnẢnh • PhânTíchẢnh • XửLýẢnh • LưuTrữẢnh
Thu NhậnẢnh • Thu Nhận qua Camera dướidạngcáctínhiệutươngtựhoặcsốhóa. • Thu nhậntừvệtính qua các sensor, ảnh, trangđược scan • Gồmcácbước: • Sốhóa (digitalizer) • Lấymẫu • Sốhóabằnglượnghóa
Thu NhậnẢnh • Biểudiễnmàu, gồm 3 thuộctínhchủyếutrongcảmnhậnmàu: • Độchói (Brightness) • Sắctháimàu (Hue) • Độbãohòa (Saturation)
Thu NhậnẢnh • Tổnghợpmàuvàsánhmàu: theolýthuyết 3 màucủa Thomas cácmàuđượctổnghợptừ 3 màucơbản: đỏ, lục, lơ. • Cóthểtổnghợpmàubằng : • Màu X = x1đỏ + x2xanh + x3lơ x1 , x2 , x3làcáchệsốtổnghợp
Thu NhậnẢnh • Cácphươngphápbiểudiễnảnh: • Mãloạtdài • Mãxích • Mãtứphân
Thu NhậnẢnh • Cácđịnhdạngảnhcơbảntrongxửlíảnh • Ảnh IMG • Ảnh PCX • Ảnh TIFF • Ảnh GIF
Ảnh IMG • Làảnhđentrắng. • Header gồm 16 bytes: • 6 bytes đầuđánhdấuđịnhdạng IMG: 0x0001 0x0008 0x0001 • 2 bytes tiếptheochứađộdàimẫu tin • 4 bytes môtảkíchcỡ pixel • 2 bytes số pixel trênmộtdòngảnh • 2 bytes sốdòngảnhtrongảnh
Ảnh IMG • Ảnhđượcnénthànhtừngdòng, mỗidònggồmcácgói, cácdònggiốngnhaucũngđượcnénthànhmộtgói, gồm 4 loạigói: • Góicácdònggiốngnhau • Góicácdãygiốngnhau • Dãycác pixel khônggiốngnhau, khônglặplạivàkhôngnénđược • Dãycác pixel giốngnhau
Ảnh PCX • Sửdụngphươngphápmãloạtdài RLE (Run Length Encoded). • File PCX gồm 3 phần: header, image data, bảngmàumởrộng
Ảnh PCX • Header: gồm 128 bytes • 1 byte: kiểuđịnhdạng • 1 byte: Version sửdụngnénảnh • 1 byte: phươngphápmãhóa • 1 byte: số bit chomộtđiểmảnh plane • 1 word: tọađộgóctráitrên • 1 word: tọađộgócphảidưới • 1 word: kíchthướcbềrộngvàbềcaoảnh • 1 word: sốđiểmảnh • 1 word: độphângiảimànhình • 48 bytes: chia 16 nhómmỗinhómchưathông tin thanhghimàu • 1 byte: giátrịluônlà 0 • 1 byte: số bit plane ảnhsửdụng • 1 byte: số bytes chomộtdòngquétảnh • 1 word: kiểubảngmàu • 58 byte: khôngdùng
Ảnh TIFF • Gồm 3 phầnchính: Header (IFH), IFD, DE (bảngmàumởrộng) • IFH (Image File Header): • 1 word: kiểutạotệptrênmáytính PC hay Macintosh. ( 4D4DH – Macintosh, 4949H – PC) • 1 word: version (giátrịlà 42) • 2 word: giátrị Offset theo byte từđầu file đến IFD
Ảnh TIFF • IFD (Image File Directory): cóthểcó 1 hay nhiều IFD cùngtồntạitrong file • 2 bytes: chứacác DE (Directory Entry). • 12 bytes: các DE xếpliêntiếp • 4 bytes: Offset tới IFD tiếptheo
Ảnh TIFF • DE – Directory Entry (bảngmàumởrộng) : gồm 12 byte, chialàm 4 phần: • 2 byte: dấuhiệumà file đượcxâydựng • 2 byte: kiểudữliệuthamsốảnh • BYTE (1 byte) • ASCII (1 byte) • SHORT (2 byte) • LONG (4 byte) • RATIONAL (8 byte) • 4 byte: sốlượng index củakiểudữliệu • 4 byte: ogffsettớiđiểmbắtđầudữliệuliênquantới DE
Ảnh GIF • Sửdụngthuậttoánnén LZW (Lempel-Ziv-Welch) dựavàosựlặplạicủanhómđiểm, tăngưuthếkhisốmàutănglên so vớicáckiểuảnhkhác. • Địnhdạng: • GIF Note • GIF Header • Global Palette • Header Image • Palette of Image 1 • Data of Image 1 • ‘,’ kýtựliênkết • ……………………. • ‘;’ GIF terminator
Ảnh GIF • GIF note: cógiátrị GIF87a, 3 kítựđầu: kiểuđịnhdạng, 3 kítựsau: version • GIF Header: môtảthôngsốtoànbộảnh • Độrộnghìnhrasiertheo pixel 2 byte • Độcaohìnhrasiertheo pixel 2 byte • Cácthông tin vềbảnđồmàu, hìnhhiểnthị,… • Thông tin màunèn 1 byte • Phầnchưadùng 1 byte
Ảnh GIF • Global Palette:
Ảnh GIF • Header of Image:
Ảnh GIF • Palette of Image 1 • Data of Image 1: chuỗicácgiátrịcóthứtựcủacác pixel màutạonênảnh • GIF terminator: cungcấptínhđồngbộchođầucuốicủaảnh GIF
Tíchchập • Kháiniệmbấtbiếntrượt: mộthệthốnggọilàbấtbiếntrượtnếudịchchuyểnđầuvàothìcũngtạonênmộtdịchchuyểntươngứngcủađầura. • Tíchchậpcótínhchấtliênquanđếnbiếnđổi Fourier: biếnđổi Fourier củamộttíchchậpbằngtíchđơngiảncácbiếnđổi Fourier củacáctínhiệuđó. • F[H(x,y) X I(x,y)] = F[H(x,y)] . F[I(x,y)] • Trongkỹthuậtngườitagọi H lànhânchập, nhâncuộn hay mặtnạ
Tíchchập • Hàmtínhnhânchậpvớithuậttoándùngtrongmoitrườnghợpcầntínhtíchchập, viếtbằng C: void Nhanchap(){ int sum=0; intLc=(w+1)/2; intcol; int row; for(inti=1;i<=N;i++) for(int j=1;j<=N;j++){ sum=0; for(int k=1;k<=w;k++) for(int l=1;l<=w;l++){ col=i-k+Lc; row=j-l+Lc; if(col!=0 && col<=N) if(row!=0 && row<=N) sum+=imageIn[col][row]*H[k][l]; } imageOut[i][j]=sum; } }
XửLývàNâng Cao ChấtLượngẢnh • Cáckỹthuậttăngcườngảnh • Khôiphụcảnh
Cáckỹthuậttăngcườngảnh • Điềukhiểnmứcxám • Giãnđộtươngphả • Giảmnhiễu • Làmtrơnảnh • Nộisuy • Phóngđâij • Nổibiên • ……………………
Lọc • Làmtrơnnhiễubằnglọctuyếntính, lọctrungbìnhvàlọcdảithôngthấp. • Tùyloạinhiễumàtaápdụngbộlọcthíchhợp • Lọctrungbìnhcótrọngsốchínhlàthựchiệnchậpảnhđầuvàovớinhânchập H: 1 1 1 H = ⅟9 1 1 1 1 1 1
Lọc • Lọcthôngthấp: 1 b 1 H = 1/(b + 2)2 b b2 b 1 b 1 Lọcđồnghình (Homomorphic filter): …………………………………………..
Ứngdụngcơbảnmộtsốhàm Javatrongviệcxửlíảnh • Sửdụng class BufferedImagetrong java, class cungcấpviệcquảnlíảnhtrongbộnhớ, cácphươngthứclưutrữ, xửlí, vànhận pixel. • MộtbufferedImagecómộtColorModelvàmột Raster dữliệuảnh. • ColorModelbiểuthịmàubiểudiễncủacác pixel • Raster thựcthicácchứcnăng: • Thểhiệnảnh • Bảotrìảnhtrongbộnhớ • Hỗtrợtạonhiềuảnh con từmộtbộđệmdữliệuảnhđơn • Cungcấpcácphươngthứctruycậpcác pixel ảnh
Đọcảnh • Để load mộtảnhtừ file ảnhtasửdụng code: BufferedImageimg = null; try { img = ImageIO.read(new File(“imageSource")); } catch (IOException e) { } imageSourcelàđườngdẫnđến file ảnhcầnđọc Khiđó class BufferedImagesẽnhậnđịnhdạngảnhnhờphầnmởrộnghoặccácthôngsốđặctrưngcủaảnhvàtiếnhànhgiảinéntheođịnhdạngảnh.
Xửlíảnhcơbản • Sửdụngcác option củaBufferedImage class: • LookupOp: • ConvolveOp: sửdụng convolution kernel làmkhônggiantínhtoán output pixel bằngcáchnhân input pixel với kernel, kernel làcác ma trận. • RescalesOp: thựchiệnthayđổitỉlệtrêntừng pixel ảnhnguồnbằngcáchnhân pixel vớigiátrịmẫubởimộtnhântốtỉlệrồicộngvới offset. • …………………………….