400 likes | 707 Views
Pengolahan dalam Domain Spasial dan Restorasi Citra. Pengolahan Citra Digital Materi 4. Eko Prasetyo Teknik Informatika Universitas Muhamamdiyah Gresik 2011. Konsep Domain Spasial. Domain Spasial Operasi pemfilteran secara linear.
E N D
Pengolahandalam Domain SpasialdanRestorasi Citra Pengolahan Citra Digital Materi 4 Eko Prasetyo TeknikInformatika UniversitasMuhamamdiyah Gresik 2011
Konsep Domain Spasial • Domain Spasial Operasipemfilteransecara linear. • Mengalikansetiappikseldalamtetanggadengankoefisien yang terhubungkepadanyadanmenjumlahkanhasilnyauntukmendapatkanjawabanpadasetiaptitik (x,y). • Jikaukurantetanggaadalah m x n, koefisienmndibutuhkan. Koefisiendibentukmenjadimatriks yang disebutdenganfilter, mask, filter mask, kernel, template, atauwindow.
Konsep Domain Spasial • Ada 2 konsepketikamelakukan filter spasial linier, yaitucorrelation (korelasi)danconvolution (konvolusi). • Korelasiadalahprosespassingmaskterhadapcitra array f seperti yang digambarkanpadagambarsebelumnya. • Mekanismekonvolusisamadengankorelasi, hanyasaja w diputar 180oterlebihdahulubarukemudiandisampaikanpadacitra f
KorelasidanKonvolusi 2 dimensi korelasi filter w(x,y) sebuahcitra f(x,y) berukuran m x n dituliskandengan w(x,y) f(x,y) w(x,y) f(x,y) = konvolusi w(x,y) dan f(x,y) dituliskan w(x,y) f(x,y) w(x,y) f(x,y) = R = w1z1 + w2z2 + … + wmnzmn = wkzk = wTz
Mask 3 x 3 R = w1z1 + w2z2 + … + w9z9 = wkzk = wTz w dan z adalahvektor 9 elemen yang dibentukdarikoefisien mask danintensitascitra Toolbox untukmelakukan filter linear spasialadalahfungsiimfilterdengan formula: g = imfilter(f, w, filtering_mode, boundary_option, size_option);
Pemfilterandengankorelasi >> f=imread('bw.png'); >> f=rgb2gray(i); >> f=im2double(i); >> w=ones(31); >> g = imfilter(f,w); >> figure, imshow(g, [ ]); >> grep = imfilter(f,w,'replicate'); >> figure, imshow(grep, [ ]); >> gsym = imfilter(f,w,'symmetric'); >> figure, imshow(gsym, [ ]); >> gcir = imfilter(f,w,'circular'); >> figure, imshow(gcir, [ ]); >> f8 = im2uint8(f); >> gf8 = imfilter(f8, w, 'replicate'); >> figure, imshow(gf8, [ ]); citraasli denganopsi ‘default’ denganopsi ‘symmetric’ denganopsi ‘replicate’ denganopsi ‘circular’ denganopsi ‘replicate’ dantipe uint8
Filter Penghalusan (Smoothing) • Digunakanuntuk: mengaburkan (blurring) danuntukmengurangi noise padacitra. • Blurring inibiasanyamenjadipreprocessing taskdalampengolahancitra, sepertimembuang detail kecilcitrauntukmengekstraksiobyek yang besardanpenghubung gap kecildalamgarisataukurva. • Pengurangan noise dapatdilakukanoleh blurring dengan filter linear maupun filter non-linear. • Filter Linear • Output dari smoothing dengan filter linear adalah rata-rata nilaipikseldalamtetanggadarirentang mask filter. • Disebutdenganaveraging filter, disebutjugalowpass filter. rata-rata level intensitaspikseldalamtetangga 3 x 3 yang didefinisikanoleh mask dengan w=1/9
Filter Penghalusan (Smoothing) (2) Filter rata-rataberukuran 3x3 (bentuksepertidibawah) Opsi Boundary: default (0 disemua pad) Input: 4x4 image Output: 4x4 image (smoothed) Gray scale = [0,7] Gray scale = [0,7]
Filter Penghalusan (Smoothing) (3) >> w3=ones(3)/9; >> w5=ones(5)/25; >> w9=ones(9)/81; >> w21=ones(21)/441; >> w35=ones(35)/1225; • >> g3=imfilter(f,w3); • >> figure, imshow(g3, [ ]); • >> g5=imfilter(f,w5); • >> figure, imshow(g5, [ ]); • >> g9=imfilter(f,w9); • >> figure, imshow(g9, [ ]); • >> g21=imfilter(f,w21); • >> figure, imshow(g21, [ ]); • >> g35=imfilter(f,w35); • >> figure, imshow(g35, [ ]); Hasil filter rata-rata denganukuran mask 3, 5, 9, 21,35
Filter Penghalusan (Smoothing) (4) Filter rata-rataberukuran 3x3 (bentuksepertidibawah) Opsi Boundary: default (0 disemua pad) Input: 4x4 image Output: 4x4 image (smoothed) Gray scale = [0,7] Gray scale = [0,7]
Penghalusandengan Filter non-Linear (Order-Statistic) • Order-statistic adalah filter spasial non-linear yang hasilnyadidasarkanpadaurutan (rangking) piksel yang mengisi area citra yang diapit filter dankemudianmenggantinilaidaripusatpikseldengannilai yang ditentukanolehhasilperangkingan. • Filter yang paling dikenal: median filter. • Filter median menggantinilaipikseldengan median darinilaiintensitasdalamtetanggadaripikseltersebut (nilaiaslidaripikseltersebuttermasukdalamperhitungan median) • Baikuntukmenghilangkansalt-and-peppernoisekarenasifat median yang menjauhihitamdanputih. Toolbox fungsi ordfilt2 menghasilkanorder-statistic filters. g = ordfilt2(f, order, domain) order adalahnilaike-x hasilpengurutantetangga yang ditentukanolehbukannoldalam domain. Filter median 3x3 Citra asli median filter
Penghalusandengan Filter non-Linear (Order-Statistic) (2) • Filter lain yang diberikanolehstatistikdasar. Jikamenggunakannilaiterbesarurutanmakaakanmenjadimax filter: • Bergunauntukmencarititik-titik yang paling terangdalamcitra. • Hasildari filter max 3 x 3 diberikanoleh R = max{zk|k = 1, 2, …, 9}. • Filter order-statistic denganmengambilnilaiterkecildisebutmin filter : • Digunakanuntuktujuanmencarititik-titik yang paling gelap • Hasildari filter min 3 x 3 diberikanoleh R = min{zk|k = 1, 2, …, 9}. max filter Citra asli
Penghalusandengan Filter non-Linear (Order-Statistic) (3) • Toolbox filter spasial non-linear adalahfungsi ordfilt2 yang menghasilkanorder-statistic filters. • g = ordfilt2(f, order, domain) • order adalahnilaike-x hasilpengurutantetangga yang ditentukanolehbukannoldalam domain. • Untuk filter median: • g = ordfilt2(f, median(1:m*n), ones(m, n)) • g = medfilt2(f, [m n], padopt) • [m n] mendefinisikantetanggaukuran m x n dimana median dihitung, • padoptmenetapkansatudaritigapilihan border-padding: ‘zeros’ (default), ‘symmetric’ dimana f diperluassecarasimetrisdenganmirror-reflectingpadabordernya, dan ‘indexed’ dimana f dilapisidengansatujikamenggunakan class double dan 0 jika yang lain • Untuk filter max: • g = ordfilt2(f, m*n, ones(m, n)) • Untuk filter min: • g = ordfilt2(f, 1, ones(m, n))
Penghalusandengan Filter non-Linear (Order-Statistic) (4) >> f = imread('anak.tif'); >> fb = imnoise(f,'salt & pepper', 0.2); >> gm = medfilt2(fb); >> gm2 = medfilt2(fb,[5 5]); >> gm3 = medfilt2(fb,[7 7]); Citra asli Salt and Pepper noise Hasil median 3x3 Hasil median 5x5 Hasil median 7x7
Filter Penajaman (Sharpening) • Penajaman (sharpening) adalahuntukmemperterang (highlight) dalamintensitascitra. • Turunandarifungsi digital didefinisikandenganistilahdifferences. • Definisi yang digunakandalamturunanpertamaadalah: • Harusmenjadinolpadadaerahintensitas yang konstan. • Harusmenjaditidaknolpadatitikdatangnyaintensitasstep (naik) danramp (turun). • Harusmenjaditidaknolpadadaerahsepanjangramp. • Definisi yang digunakandalamturunankeduaadalah: • Harusmenjadinolpadadaerahintensitas yang konstan. • Harusmenjaditidaknolpadatitikdatangnyaintensitasstep (naik) danramp (turun). • Harusmenjadinolpadadaerahsepanjangramp. turunanpertamafungsi f(x,y) satudimensi turunankedua f(x) sebagaidiferensial
Filter Penajaman: Laplacian • Filter Laplaciansebuahcitra f(x,y) dinyatakanoleh2f(x,y) yang didefinisikandengan: • Umumnyamenggunakanperkiraan digital turunankedua: • dan : • Jikadigabungdalam2f(x,y) menjadi: • Pernyataaninidiimplementasikanpadasemuatitik (x,y) dalamcitradenganmengisikankonstantasukusebagainilai filter mask sesuaidenganletak yang ditunjukkanolehsukunya
Filter khususdalammatlab: fspecial() • w = fspecial(‘type’, parameter) • dimana ‘type’ adalahjenis filter yang digunakan, sedangkan parameter mendefinisikan filter tetapannya >> w=fspecial('laplacian',0) w = 0 1 0 1 -4 1 0 1 0 • >> w=[0 1 0; 1 -4 1; 0 1 0]; • >> g=imfilter(f,w);
Filter Penajaman: Laplacian (2) >> w1 = [0 1 0; 1 -4 1; 0 1 0]; >> w2 = [1 1 1; 1 -8 1; 1 1 1]; >> f = imread('srikaya.tif'); >> f2 = im2double(f); >> g4 = imfilter(f2,w1,'replicate'); >> g4 = f2 - g4; >> g8 = imfilter(f2,w2,'replicate'); >> g8 = f2 - g8; Citra asli Hasilpenajaman
Filter Gradien • Turunanpertamapengolahancitra digital diimplementasikanjarak (panjang) gradien. • Untukfungsi f(x,y), gradien f padakoordinat (x,y) didefiniskansebagaivektorkolom 2-dimensi: • Panjangvektorinidiberikanoleh: • Model lain: • M(x,y) |gx| + |fy|
Filter Gradien: Robert danSobel • Duadefinisi lain yang diusulkanoleh Robert[1965]: • gx = (z9 – z5) dangy = (z8 – z6) • Jikamenggunakan formula M(x,y), gxdangy, makauntukmenghitungcitragradiendengan: • M(x,y) = [(z9 – z5)2 + (z8 – z6)2]1/2 • Formula yang lain: • M(x,y) |z9 – z5| + |z8 – z6| • Perkiraannilaigxdangymenggunakantetangga 3 x 3 yang terpusatdi z5sbb: • Dan • Sehingga: • M(x,y) = |(z7 + 2z8 + z9) – (z1 + 2z2 + z3| + |(z3 + 2z6 + z9) – (z1 + 2z4 + z7)|
Filter Gradien: Sobel gx g = gx + gy gy
Filter Gradien: Sobel (2) Gradiengxdangy Citra asli >> f = imread('lensa_kontak.png'); >> wh = [-1 -2 -1; 0 0 0; 1 2 1]; >> wv = [-1 0 1; -2 0 2; -1 0 1]; >> gx = imfilter(f,wh); >> figure, imshow(gx, [ ]); >> gy = imfilter(f,wv); >> figure, imshow(gy, [ ]); >> g = gx + gy; >> figure, imshow(g, [ ]); Gradiengx Gradiengy
g(x,y) Fungsi degradasi H Filter restorasi (s) + f(x,y) f’(x,y) Noise (x,y) DEGRADASI RESTORASI DegradasidanRestorasi Citra • Prosesdegradasidimodelkansebagaisebuahfungsidegradasi yang digabungkandengansyarat additive noise • Mengoperasikancitra input f(x,y) untukmenghasilkancitraterdegradasi g(x,y). • Jikaada g(x,y), fungsidegradasi H dansyarat additive noise (x,y), obyektifdarirestorasiadalahuntukmendapatkanperkiraan f’(x,y) daricitra original. • Diinginkanmemperkirakankemungkinan yang semiripmungkinterhadapcitra input original. • Citra terdegradasidalam domain spasial: • g(x,y) = h(x,y) f(x,y) + (x,y) • dimana h(x,y) adalahrepresentasispasialdarifungsidegradasi, simbol “” adalahkonvolusi. • Dalam domain spasial, konvolusidianalogikandenganperkaliandalam domain frekuensi, sehingga formula diatasdapatdituliskandalam domain frekuensidenganbentuk: • G(u,v) = H(u,v)F(u,v) + N(u,v)
Model Noise • Sumber noise padacitra digital bisaterjadisejakpengambilandanatautransmisicitra. • Kinerjadari sensor citradipengaruhiolehbanyakfaktorsepertikondisilingkunganselamapengambilancitradanolehkualitassensitivitaselemenitusendiri. • Contoh, dalampengambilancitradengankamera CCD, level pencahayaandansuhu sensor adalahfaktorutama yang memengaruhitingkat noise padacitra yang dihasil-kan. • Citra yang terkorupsiselamatransmisisecaraprinsipdisebabkaninterferensi channel yang digunakanuntuktransmisi. • Misalnya, citra yang ditransmisikanmenggunakanjaringan wireless dapatterkorupsisebagaihasildaripencahayaanataupengaruhatmosfer yang lain • Gaussian Noise • PDF (probability density function) variabel random Gaussian z • dimana z merepresentasikanintensitas, ź adalahnilai rata-rata z danadalahstandardeviasi
Model Noise (2) • Rayleigh Noise • PDF noise Rayleigh diberikanoleh: • Rata-rata danvariandiberikanoleh formula: • Dan • Erlang (gamma) noise • PDF noise Erlangdiberikanoleh: • dimana parameter a > 0, b integer positifdan “!” mengindikasikanfaktorial. Rata-rata danvariandarikepadataninidiberikanoleh: • Dan
Model Noise (3) • Exponential Noise • PDF exponential noise diberikanoleh: • dimana a > 0. Rata-rata danvariandarikepadataniniadalah: • dan • Uniform Noise • PDF uniform noise diberikanoleh: • Rata-rata danvariandarikepadataniniadalah: • Dan • Impuls (Salt-and-Pepper Noise)
TeknikRestorasi Citra dalam Domain Spasial: Mean Filter • Arithmetic Mean Filter • Sxyadalah window mask • Menghitungnilai rata-rata citraterkorupsi g(x,y) padadaerah yang didefinisikanolehSxy • Geometric mean filter • Perkalianpikseldalam window sub-image, yang dipangkatkandengan 1/mn. • Menghasilkancitra yang lebihhalusdibanding arithmetic mean filter tetapitetapmenghilangkansedikit detail citradalamprosesnya • Harmonic Mean Filter • Bekerjadenganbaikpada salt noise, tetapitidakuntuk pepper noise. • Bekerjadenganbaikpadajenis noise seperti noise Gaussian
TeknikRestorasi Citra dalam Domain Spasial: Mean Filter (2) • Contraharmonic Mean Filter • Q disebutdengan order filter. • Sangatcocokuntukmengurangipengaruh noise salt-and-pepper. • Untuknilai Q positif, filter mengeleminasi pepper noise. • Untuk Q negatif, filter inimenghilangkan salt noise. • Keduahaltersebuttidakbisabekerjabersama-sama. • Contra-harmonic mean filter akanmirip arithmetic mean filter jika Q = 0, danmirip harmonic mean filter jika Q = -1
Restorasidenganaritmetikdangeometrik mean filter >> g = imnoise(f,'gaussian'); >> figure, imshow(g); • >> fave = spfilt(g,'amean', 3, 3); • >> figure, imshow(fave); • >> fgeo = spfilt(g,'gmean', 3, 3); • >> figure, imshow(fgeo); Citra asli Citra dikorupsioleh noise Gaussian difilterdengan arithmetic mean filter denganukuran 3x3 difilterdengan geometric mean filter denganukuran 3x3
Restorasidengan filter: contraharmonic, max dan min Pndegradasiancitradengan noise >> [M, N] = size(f); >> R = imnoise2('salt & pepper', M, N, 0.1, 0); >> c = find(R == 0); >> gpep = f; >> gpep(c) = 0; >> R = imnoise2('salt & pepper', M, N, 0, 0.1); >> c = find(R == 1); >> gsal = f; >> gsal(c) = 255; >> figure, imshow(gpep); >> figure, imshow(gsal); Citra terkorupsidengan pepper noise Citra terkorupsidengan salt noise
Contraharmonicdan max Hasil filter max ukuran 3x3 Citra terkorupsidengan pepper noise Hasil filter contraharmonicukuran 3x3 dengan order 1.5 >> fconp = spfilt(gpep,'chmean', 3, 3, 1.5); >> figure, imshow(fconp); >> fpep = spfilt(gpep,'max', 3, 3); >> figure, imshow(fpep);
Contraharmonicdan min Hasil filter min ukuran 3x3 Citra terkorupsidengan salt noise Hasil filter contraharmonicukuran 3x3 dengan order -1.5 >> fconn = spfilt(gsal,'chmean', 3, 3, -1.5); >> figure, imshow(fconn); >> fsal = spfilt(gsal,'min', 3, 3); >> figure, imshow(fsal);
TeknikRestorasi Citra dalam Domain Spasial: Order-statistik • Filter spasial yang hasilnyadidasarkandaripengurutan (perangkingan) nilaipiksel yang merupakanisidaerahcitra yang diterapkanoleh filter. • Hasilrangkingmenentukanhasil filter. • Filter median • Menggantinilaipikseldengan median dari level intensitasdalamtetanggapiksel yang telahdilakukanperangkingan (pikselpusatjugaikutdirangking) • Untukjenis random noise tertentumemberikankemampuanpengurangan noise yang sangatbaik, denganmemperhatikanpengurangan blurring filter smoothing linier padaukuran yang sama • Filter max
TeknikRestorasi Citra dalam Domain Spasial: Order-statistik (2) • Filter max • Sangatbergunauntukmencarititik-titik yang paling terangdalamcitra. • Pepper noise dapatdikurangioleh filter inisebagaihasilprosespemilihan max dalam sub-image Sxy. • Filter min • Sangatbergunauntukmencarititik-titik paling gelapdalamcitra, danmengurangi salt noise sebagaihasiloperasi min • Filter midpoint • Menghitungtitiktengahantaranilaimaksimumdan minimum dalamdaerah yang diliputioleh filter
TeknikRestorasi Citra dalam Domain Spasial: Order-statistik (3) • Andaikanbahwaakanmenghapus d/2 nilaiintensitasterendahdan d/2 nilaiintensitastertinggidari g(x,y) dalamtetanggaSxy. Jikagr(s,t) mereprsentasikansisamn – d piksel, Filter dibentukoleh rata-rata sisapikselini yang disebut alpha-trimmed mean filter. • Di mananilai d dalam range [0, mn – 1]. • Ketika d=0, alpha-trimmed mendekati arithmetic mean filter. Jika d =mn-1, filter inimenjadi filter median. • Untuknilai d yang lain, filter inisangatbergunadalamsituasi yang menyertakanbeberapajenis noise, sepertikombinasi noise salt-and-pepper denganGausian Citra terkorupsidengan pepper noise >> g = imnoise(f,'gaussian'); >> fgau = spfilt(g,'midpoint', 3, 3); >> figure, imshow(fgau); >> fatr = spfilt(g,'atrimmed', 3, 3, 2); >> figure, imshow(fatr); Hasil filter midpoint ukuran 3x3 padacitradengan pepper noise Hasil filter alpha-trimmed ukuran 3x3, d=2 padacitradengan pepper noise
To Be Continued … Materi 5 – Pengolahan Citra dalam Domain FrekuensidanRestorasi Citra ANY QUESTION ?