You are on page 1of 3

[image processing]

March 13, 2012

CURVE SMOOTHING USING GAUSSIAN FUNCTION


Dalam artikel ini kita akan membahas bagaimana fungsi gaussian dapat digunakan untuk menghaluskan sebuah kurva 1 dimensi. Teori tentang gaussian sendiri sudah diberikan pada artikel yang lain. Gaussian memiliki rumus sebagai berikut: = 1 2

Dengan

merupakan koefisien normalisasinya.

Gaussian memiliki bentuk grafik beserta profile seperti di bawah ini:

Sources: Nave Image Smoothing: Gaussian Blur (Sylvain Paris Adobe)

Tampak bahwa dengan menggunakan Gaussian maka nilai bobot akan diberikan ditengah sebagai nilai terbesar sementara nilai tetangga menjadi lebih kecil. Hal ini membuat derau pada isyarat (signal) setelah dilewatkan gaussian akan memiliki derau yang amplitudonya menjadi lebih kecil. Istilahnya gaussian ini centered weighted dengan catatan nilai mean (rerata) adalah nol.

Ketika kita mengaplikasikan fungsi gaussian terhadap sebuah isyarat, maka kita menggunakan konvolusi, bila datanya berupa 1 dimensi maka konvolusi 1 dimensi dapat digunakan sebaliknya jika data berupa matriks maka gunakan konvolusi 2 dimensi. Gaussian pada dasarnya merupakan low-pass filter.

Gaussian memiliki unjuk kerja yang ditentukan oleh nilai varians ( ( ).

) atau standar deviasinya

[janshendry@gmail.com{ee&it ugm, indonesia}]

Page 1

[image processing]

March 13, 2012

Programnya adalah
clear all; close all; clc; %% buat data sebuah isyarat dengan derau % sinusiodal % t=-2*pi:1/1000:2*pi; % y=cos(t); % kotak y=[zeros(1,100),ones(1,100)]; plot(y,'g'); hold on; rnd=rand(1,length(y(101:200))); y(101:200)=y(101:200)+rnd; plot(y,'r-','LineWidth',2); hold on; %% gaussian 1 dimensi s=3; % standar deviasi x=9; % ukuran jendela jendela=(x-1)/2; m=0; % nilai rerata berada di origin X=-jendela:jendela; % gaussian dengan koefisien normalisasi koef=(1/sqrt(2*s*s*pi)); G=koef*exp(-((X-m).^2/(2*(s^2)))); sumG=sum(G(:)); if sumG~=0 G=G/sumG; end ress=conv(y,G,'same'); % ress=imfilter(y,G,'symmetric'); plot(ress,'b'); hold on; title('Curve Smoothing with Gaussian'); xlabel('x'); ylabel('Amplitude'); %% %% matlab toolbox h=fspecial('gaussian',[1 9],3); hasil=conv(y,h,'same'); % hasil=imfilter(y,h,'symmetric'); % plot(hasil,'k'); hold off; %% %% beda antara gaussian sendiri dengan toolbox disp('Bedanya : '); beda=ress-hasil; disp(sum(beda)); %%

[janshendry@gmail.com{ee&it ugm, indonesia}]

Page 2

[image processing]

March 13, 2012

Hasil eksekusi dari program di atas adalah

Kurva Gaussiannya adalah

Dalam program di atas, anda bisa melakukan pengubahan terhadap nilai standar deviasi (s) dan juga panjang datanya. Anda akan melihat bahwa hasil filter akan berbeda-beda. Dengan demikian gaussian benar terbukti bisa melakukan smoothing terhadap kurva 1 dimensi.

[janshendry@gmail.com{ee&it ugm, indonesia}]

Page 3

You might also like