Pengolahan dalam Domain Spasial dan Restorasi Citra

  • Upload
    lilia

  • View
    69

  • Download
    5

Embed Size (px)

DESCRIPTION

Pengolahan dalam Domain Spasial dan Restorasi Citra. Computer Vision Materi 4. Eko Prasetyo Teknik Informatika UBHARA 2012. Konsep Domain Spasial. Domain Spasial  Operasi pemfilteran secara linear. - PowerPoint PPT Presentation

Citation preview

Slide 1

Pengolahan dalam Domain Spasial dan Restorasi CitraComputer VisionMateri 4

Eko PrasetyoTeknik InformatikaUBHARA2012Konsep Domain SpasialDomain Spasial Operasi pemfilteran secara linear.Mengalikan setiap piksel dalam tetangga dengan koefisien yang terhubung kepadanya dan menjumlahkan hasilnya untuk mendapatkan jawaban pada setiap titik (x,y). Jika ukuran tetangga adalah m x n, koefisien mn dibutuhkan. Koefisien dibentuk menjadi matriks yang disebut dengan filter, mask, filter mask, kernel, template, atau window.

2

Konsep Domain SpasialAda 2 konsep dalam filter spasial linier, yaitu correlation (korelasi) dan convolution (konvolusi). Korelasi adalah proses passing mask terhadap citra array f seperti yang digambarkan pada gambar sebelumnya. Mekanisme konvolusi sama dengan korelasi, hanya saja w diputar 180o terlebih dahulu baru kemudian disampaikan pada citra f3Korelasi dan Konvolusi 1 dimensi4

Korelasi dan Konvolusi 2 dimensi5

korelasi filter w(x,y) sebuah citra f(x,y) berukuran m x n dituliskan dengan 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 36R = w1z1 + w2z2 + + w9z9 = wkzk = wTz

w1w2w3w4w5w6w7w8w9w dan z adalah vektor 9 elemen yang dibentuk dari koefisien mask dan intensitas citraToolbox untuk melakukan filter linear spasial adalah fungsi imfilter dengan formula: g = imfilter(f, w, filtering_mode, boundary_option, size_option);Pilihan PenjelasanMode Filter corrFilter dilakukan menggunakan korelasi. Nilai defaultconvFilter dilakukan menggunakan konvolusiPilihan Boundary PBoundary cira input diperluas dengan lapisan sebuah nilai, P (ditulis tanpa tanda petik). Ini merupakan nilai default dengan nilai 0.replicateUkuran citra diperluas dengan replikasi nilai dalam border luarnya.symmetricUkuran citra diperluas dengan refleksinya terhadap border.circularUkuran citra diperluas dengan menganggap citra sebagai satu periode fungsi periodik 2-D.Pilihan UkuranfullOutputnya adalah ukuran yang sama dengan citra yang diperluas.sameOutputnya adalah ukuran yang sama dengan input. Ini adalah nilai default.Pemfilteran dengan korelasi7

citra asli

dengan opsi default

dengan opsi replicate

dengan opsi symmetric

dengan opsi circular

dengan opsi replicate dan tipe uint8>> 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, [ ]);Filter Penghalusan (Smoothing)Digunakan untuk: mengaburkan (blurring) dan untuk mengurangi noise pada citra. Blurring ini biasanya menjadi preprocessing task dalam pengolahan citra, seperti membuang detail kecil citra untuk mengekstraksi obyek yang besar dan penghubung gap kecil dalam garis atau kurva. Pengurangan noise dapat dilakukan oleh blurring dengan filter linear maupun filter non-linear.Filter LinearOutput dari smoothing dengan filter linear adalah rata-rata nilai piksel dalam tetangga dari rentang mask filter. Disebut dengan averaging filter, disebut juga lowpass filter.

8

rata-rata level intensitas piksel dalam tetangga 3 x 3 yang didefinisikan oleh mask dengan w=1/9Filter Penghalusan (Smoothing) (2)90332424637352724Input: 4x4 image Gray scale = [0,7]

1232234234432332Output: 4x4 image (smoothed) Gray scale = [0,7]Filter rata-rata berukuran 3x3 (bentuk seperti dibawah)Opsi Boundary: default (0 disemua pad)

Filter Penghalusan (Smoothing) (3)10

Hasil filter rata-rata dengan ukuran mask 3, 5, 9, 21,35>> 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, [ ]); Filter Penghalusan (Smoothing) (4)110332424637352724Input: 4x4 image Gray scale = [0,7]Output: 4x4 image (smoothed) Gray scale = [0,7]Filter rata-rata berukuran 3x3 (bentuk seperti dibawah)Opsi Boundary: default (0 disemua pad)

1222234334432432Penghalusan dengan Filter non-Linear (Order-Statistic)Order-statistic adalah filter spasial non-linear yang hasilnya didasarkan pada urutan (rangking) piksel yang mengisi area citra yang diapit filter dan kemudian mengganti nilai dari pusat piksel dengan nilai yang ditentukan oleh hasil perangkingan. Filter yang paling dikenal: median filter. Filter median mengganti nilai piksel dengan median dari nilai intensitas dalam tetangga dari piksel tersebut (nilai asli dari piksel tersebut termasuk dalam perhitungan median)Baik untuk menghilangkan salt-and-pepper noise karena sifat median yang menjauhi hitam dan putih.

120332424637352724Citra asli0220233323430230median filterFilter median 3x3111111111Toolbox fungsi ordfilt2 menghasilkan order-statistic filters. g = ordfilt2(f, order, domain)order adalah nilai ke-x hasil pengurutan tetangga yang ditentukan oleh bukan nol dalam domain. Penghalusan dengan Filter non-Linear (Order-Statistic) (2)Filter lain yang diberikan oleh statistik dasar. Jika menggunakan nilai terbesar urutan maka akan menjadi max filter:Berguna untuk mencari titik-titik yang paling terang dalam citra. Hasil dari filter max 3 x 3 diberikan oleh R = max{zk|k = 1, 2, , 9}. Filter order-statistic dengan mengambil nilai terkecil disebut min filter :Digunakan untuk tujuan mencari titik-titik yang paling gelapHasil dari filter min 3 x 3 diberikan oleh R = min{zk|k = 1, 2, , 9}.

1303324246373527244466777677767775max filterCitra asli0000002002200000min filterPenghalusan dengan Filter non-Linear (Order-Statistic) (3)Toolbox filter spasial non-linear adalah fungsi ordfilt2 yang menghasilkan order-statistic filters. g = ordfilt2(f, order, domain)order adalah nilai ke-x hasil pengurutan tetangga yang ditentukan oleh bukan nol dalam domain.Untuk filter median:g = ordfilt2(f, median(1:m*n), ones(m, n))g = medfilt2(f, [m n], padopt)[m n] mendefinisikan tetangga ukuran m x n di mana median dihitung, padopt menetapkan satu dari tiga pilihan border-padding: zeros (default), symmetric di mana f diperluas secara simetris dengan mirror-reflecting pada bordernya, dan indexed di mana f dilapisi dengan satu jika menggunakan class double dan 0 jika yang lainUntuk filter max:g = ordfilt2(f, m*n, ones(m, n))Untuk filter min:g = ordfilt2(f, 1, ones(m, n))14Penghalusan dengan Filter non-Linear (Order-Statistic) (4)15>> 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 asliSalt and Pepper noise

Hasil median 3x3Hasil median 5x5Hasil median 7x7Filter Penajaman (Sharpening)Penajaman (sharpening) adalah untuk memperterang (highlight) dalam intensitas citra.Turunan dari fungsi digital didefinisikan dengan istilah differences. Definisi yang digunakan dalam turunan pertama adalah:Harus menjadi nol pada daerah intensitas yang konstan.Harus menjadi tidak nol pada titik datangnya intensitas step (naik) dan ramp (turun).Harus menjadi tidak nol pada daerah sepanjang ramp.Definisi yang digunakan dalam turunan kedua adalah:Harus menjadi nol pada daerah intensitas yang konstan.Harus menjadi tidak nol pada titik datangnya intensitas step (naik) dan ramp (turun).Harus menjadi nol pada daerah sepanjang ramp.

16

turunan pertama fungsi f(x,y) satu dimensi

turunan kedua f(x) sebagai diferensial

Filter Penajaman: LaplacianFilter Laplacian sebuah citra f(x,y) dinyatakan oleh 2f(x,y) yang didefinisikan dengan:

Umumnya menggunakan perkiraan digital turunan kedua:

dan :

Jika digabung dalam 2f(x,y) menjadi:

Pernyataan ini diimplementasikan pada semua titik (x,y) dalam citra dengan mengisikan konstanta suku sebagai nilai filter mask sesuai dengan letak yang ditunjukkan oleh sukunya17

Filter khusus dalam matlab: fspecial()w = fspecial(type, parameter)di mana type adalah jenis filter yang digunakan, sedangkan parameter mendefinisikan filter tetapannya18>> 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);1111111111661665-2-1-1-2-1054-110-10-123-16-7-8

19TypeSyntax dan Parameteraveragefspecial(average, [r c]). Filter rata-rata persegi panjang dari ukuran r x c, default-nya 3x 3, satu angka menunjukkan [r c] menetapkan filter bujur sangkardiskfspecial (disk, r). Filter rata-rata circual (dengan bujur sangkar ukuran 2r+1) dengan radius r, default radius adalah 5.gaussianfspecial (gaussian, [r c], sig). Filter lowpass Gaussian dengan ukuran r x c dan standard deviasi sig positif. Defaultnya 3 x 3 dan 0.5, satu angka dari [r c] menunjukkan filter bujur sangkar.laplacianfspecial (laplacian, alpha). Filter Laplacian 3 x 3 yang bentuknya ditentukan alpha, angka pada range [0, 1], nilai default alpha adalah 0.5logfspecial (log, [r c]). Laplacian dari filter Gaussian (LoG) berukuran r x c dan standard deviasi sig positif. Nilai default 5 x 5 dan 0.5, satu angka menunjukkan [r c] menetapkan filter bujur sangkar.motionfspecial (motion, len, theta). Output sebuah filter, ketika digunakan dengan sebuah citra, memperkirakan motion linear len piksel. Arah motion adalah theta, diukur dengan sudut horizontal. Defaultnya 9 dan 0 yang merepresentasikan motion 9 piksel dengan arah horizontal.prewittfspecial (prewitt). Output mask Prewitt 3 x 3, wv, yang memperkirakan sebuah gradien vertikal. Mask untuk gradien horizontal didapatkan dengan mentranspose hasil wh = wvsobelfspecial (sobel). Output mask Sobel 3 x 3, sv, yang memperkirakan sebuah gradien vertikal. Mask untuk gradien horizontal didapatkan dengan mentranspose hasil sh = svunsharpfspecial (unsharp, alpha). Output filter unsharp 3 x 3. Parameter alpha mengontrol bentuk; nilainya harus lebih besar dari 0 dan lebih kecil atau sama dengan 1.0, defaultnya 0.2Filter spasial yang didukung oleh fspecialFilter Penajaman: Laplacian (2)20>> 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 asliHasil penajamanFilter GradienTurunan pertama pengolahan citra digital diimplementasikan jarak (panjang) gradien. Untuk fungsi f(x,y), gradien f pada koordinat (x,y) didefiniskan sebagai vektor kolom 2-dimensi:

Panjang vektor ini diberikan oleh:

Model lain:M(x,y) |gx| + |fy|

21

Filter Gradien: Robert dan SobelDua definisi lain yang diusulkan oleh Robert[1965]:gx = (z9 z5) dan gy = (z8 z6)Jika menggunakan formula M(x,y), gx dan gy, maka untuk menghitung citra gradien dengan:M(x,y) = [(z9 z5)2 + (z8 z6)2]1/2Formula yang lain:M(x,y) |z9 z5| + |z8 z6|Perkiraan nilai gx dan gy menggunakan tetangga 3 x 3 yang terpusat di z5 sbb:

Dan

Sehingga:M(x,y) = |(z7 + 2z8 + z9) (z1 + 2z2 + z3| + |(z3 + 2z6 + z9) (z1 + 2z4 + z7)|

22

Filter Gradien: Sobel2303324246373527241012161610117616-1-6-13-20-18-13

0332424637352724862-101435-14230-3-12210-8-7

gxgy1818186241412-8246-4-188-20-26-20g = gx + gyFilter Gradien: Sobel (2)24

Citra asliGradien gxGradien gyGradien gx dan gy>> 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, [ ]);Degradasi dan Restorasi CitraProses degradasi dimodelkan sebagai sebuah fungsi degradasi yang digabungkan dengan syarat additive noiseMengoperasikan citra input f(x,y) untuk menghasilkan citra terdegradasi g(x,y). Jika ada g(x,y), fungsi degradasi H dan syarat additive noise (x,y), obyektif dari restorasi adalah untuk mendapatkan perkiraan f(x,y) dari citra original. Diinginkan memperkirakan kemungkinan yang semirip mungkin terhadap citra input original.Citra terdegradasi dalam domain spasial:g(x,y) = h(x,y) f(x,y) + (x,y)di mana h(x,y) adalah representasi spasial dari fungsi degradasi, simbol adalah konvolusi. Dalam domain spasial, konvolusi dianalogikan dengan perkalian dalam domain frekuensi, sehingga formula di atas dapat dituliskan dalam domain frekuensi dengan bentuk:G(u,v) = H(u,v)F(u,v) + N(u,v)

25Fungsi degradasiH+f(x,y)g(x,y)f(x,y)Noise(x,y)DEGRADASIRESTORASIFilter restorasi (s)Model NoiseSumber noise bisa terjadi sejak pengambilan dan atau transmisi citra. Kinerja dari sensor citra dipengaruhi oleh banyak faktor seperti kondisi lingkungan selama pengambilan citra dan oleh kualitas sensitivitas elemen itu sendiri. Contoh, dalam pengambilan citra dengan kamera CCD, level pencahayaan dan suhu sensor adalah faktor utama yang memengaruhi tingkat noise pada citra yang dihasilkan. Citra yang terkorupsi selama transmisi secara prinsip disebabkan interferensi channel yang digunakan untuk transmisi. Misalnya, citra yang ditransmisikan menggunakan jaringan wireless dapat terkorupsi sebagai hasil dari pencahayaan atau pengaruh atmosfer yang lainGaussian NoisePDF (probability density function) variabel random Gaussian z

di mana z merepresentasikan intensitas, adalah nilai rata-rata z dan adalah standar deviasi26

Model Noise (2)Rayleigh NoisePDF noise Rayleigh diberikan oleh:

Rata-rata dan varian diberikan oleh formula:

Dan

Erlang (gamma) noisePDF noise Erlang diberikan oleh:

di mana parameter a > 0, b integer positif dan ! mengindikasikan faktorial. Rata-rata dan varian dari kepadatan ini diberikan oleh:

Dan

27

Model Noise (3)Exponential NoisePDF exponential noise diberikan oleh:

di mana a > 0. Rata-rata dan varian dari kepadatan ini adalah:

danUniform NoisePDF uniform noise diberikan oleh:

Rata-rata dan varian dari kepadatan ini adalah:

Dan

Impuls (Salt-and-Pepper Noise)28

Model Noise (4)29

Ilustrasi noise30

Teknik Restorasi : Mean FilterArithmetic Mean FilterSxy adalah window maskMenghitung nilai rata-rata citra terkorupsi g(x,y) pada daerah yang didefinisikan oleh Sxy

Geometric mean filterPerkalian piksel dalam window sub-image, yang dipangkatkan dengan 1/mn. Menghasilkan citra yang lebih halus dibanding arithmetic mean filter tetapi tetap menghilangkan sedikit detail citra dalam prosesnya

Harmonic Mean FilterBekerja dengan baik pada salt noise, tetapi tidak untuk pepper noise. Bekerja dengan baik pada jenis noise seperti noise Gaussian

31

Teknik Restorasi: Mean Filter (2)Contraharmonic Mean Filter

Q disebut dengan order filter. Sangat cocok untuk mengurangi pengaruh noise salt-and-pepper. Untuk Q positif, filter mengeleminasi pepper noise. Untuk Q negatif, filter menghilangkan salt noise. Kedua hal tersebut tidak bisa bekerja bersama-sama. Contra-harmonic mean filter akan berubahmirip arithmetic mean filter jika Q = 0, dan mirip harmonic mean filter jika Q = -132

Restorasi dengan aritmetik dan geometrik mean filter33>> 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 dikorupsi oleh noise GaussianCitra asli

difilter dengan arithmetic mean filter dengan ukuran 3x3

difilter dengan geometric mean filter dengan ukuran 3x3Restorasi dengan filter: contraharmonic, max dan min34Pndegradasian citra dengan 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 terkorupsi dengan pepper noiseCitra terkorupsi dengan salt noiseContraharmonic dan max35

Hasil filter contraharmonic ukuran 3x3 dengan order 1.5Hasil filter max ukuran 3x3

Citra terkorupsi dengan pepper noise>> fconp = spfilt(gpep,'chmean', 3, 3, 1.5);>> figure, imshow(fconp);>> fpep = spfilt(gpep,'max', 3, 3);>> figure, imshow(fpep);Contraharmonic dan min36Hasil filter contraharmonic ukuran 3x3 dengan order -1.5Hasil filter min ukuran 3x3Citra terkorupsi dengan salt noise>> fconn = spfilt(gsal,'chmean', 3, 3, -1.5);>> figure, imshow(fconn);>> fsal = spfilt(gsal,'min', 3, 3);>> figure, imshow(fsal);

Teknik Restorasi: Order-statistikFilter spasial yang hasilnya didasarkan dari pengurutan (perangkingan) nilai piksel yang merupakan isi daerah citra yang diterapkan oleh filter. Hasil rangking menentukan hasil filter.Filter median

Mengganti nilai piksel dengan median dari level intensitas dalam tetangga piksel yang telah dilakukan perangkingan (piksel pusat juga ikut dirangking)Untuk jenis random noise tertentu memberikan kemampuan pengurangan noise yang sangat baik, dengan memperhatikan pengurangan blurring filter smoothing linier pada ukuran yang samaFilter max37

Teknik Restorasi: Order-statistik (2)Filter maxSangat berguna untuk mencari titik-titik yang paling terang dalam citra. Pepper noise dapat dikurangi oleh filter ini sebagai hasil proses pemilihan max dalam sub-image Sxy.

Filter minSangat berguna untuk mencari titik-titik paling gelap dalam citra, dan mengurangi salt noise sebagai hasil operasi min

Filter midpointMenghitung titik tengah antara nilai maksimum dan minimum dalam daerah yang diliputi oleh filter38

Teknik Restorasi: Order-statistik (3) Alpha TrimmedAndaikan bahwa akan menghapus d/2 nilai intensitas terendah dan d/2 nilai intensitas tertinggi dari g(x,y) dalam tetangga Sxy. Jika gr(s,t) mereprsentasikan sisa mn d piksel, Filter dibentuk oleh rata-rata sisa piksel ini yang disebut alpha-trimmed mean filter.

Di mana nilai d dalam range [0, mn 1]. Ketika d=0, alpha-trimmed mendekati arithmetic mean filter. Jika d =mn-1, filter ini menjadi filter median. Untuk nilai d yang lain, filter ini sangat berguna dalam situasi yang menyertakan beberapa jenis noise, seperti kombinasi noise salt-and-pepper dengan Gausian39

>> 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 pada citra dengan pepper noiseHasil filter alpha-trimmed ukuran 3x3, d=2 pada citra dengan pepper noise

Citra terkorupsi dengan pepper noiseANY QUESTION ?To Be Continued Materi 5 Morfologi Citra40