420 likes | 924 Views
Pengolahan dalam Domain Spasial dan Restorasi Citra. Pengolahan Citra Digital Materi 4. Eko Prasetyo Teknik Informatika UMG- UPN Veteran Jatim 2012. Konsep Domain Spasial. Domain Spasial Operasi pemfilteran secara linear.
E N D
Pengolahandalam Domain SpasialdanRestorasi Citra Pengolahan Citra Digital Materi 4 Eko Prasetyo TeknikInformatika UMG-UPN Veteran Jatim 2012
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 konsepdalam 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) Output: 4x4 image (smoothed) Input: 4x4 image 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}. min filter 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 bisaterjadisejakpengambilandanatautransmisicitra. • Kinerjadari sensor citradipengaruhiolehbanyakfaktorsepertikondisilingkunganselamapengambilancitradanolehkualitassensitivitaselemenitusendiri. • Contoh, dalampengambilancitradengankamera CCD, level pencahayaandansuhu sensor adalahfaktorutama yang memengaruhitingkat noise padacitra yang dihasilkan. • 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 : 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: Mean Filter (2) • Contraharmonic Mean Filter • Q disebutdengan order filter. • Sangatcocokuntukmengurangipengaruh noise salt-and-pepper. • Untuk Q positif, filter mengeleminasi pepper noise. • Untuk Q negatif, filter menghilangkan salt noise. • Keduahaltersebuttidakbisabekerjabersama-sama. • Contra-harmonic mean filter akanberubah • mirip arithmetic mean filter jika Q = 0, dan • mirip 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: 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: 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: Order-statistik (3) – Alpha Trimmed • 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 – Morfologi Citra ANY QUESTION ?