Aplikasi ketetanggaan Piksel
Aplikasi ketetanggaan Piksel
Ada tiga jenis filter yang menggunakan
operasi ketetanggaan piksel yang akan dibahas sebagai pengantar pada bab ini.
Ketiga filter tersebut adalah filter batas, filter pererataan, dan filter
median. Sebagai filter atau tapis, operasi ketetanggaan piksel berfungsi untuk
menyaring atau paling tidak mengurangi gangguan atau penyimpangan pada citra.
1.
Filter
Batas
Filter batas adalah filter yang
dikemukakan dalam Davies (1990). Idenya adalah mencegah piksel yang
intensitasnya di luar intensitas piksel-piksel tetangga.
Algoritma yang digunakan untuk
keperluan ini dapat dilihat berikut ini.
Metode Filter Batas
Berdasarkan keadaan tersebut,
minInt = minimum(5, 7, 7, 5, 4, 6, 7,
8) = 4;
maksInt = maksimum(5, 7, 7, 5, 4, 6, 7,
8) = 8;
mengingat f(y, x) bernilai 9 dan lebih
besar daripada 8 (maksInt) maka g(y, x) bernilai 8;
seandainya f(y, x) pada keadaan di atas
bernilai 2 (bukan 9), g(y,x) akan bernilai 4.
Algoritma
Menghitung piksel dengan filter batas
mm
Program
Filter Batas
f = imread('c:\image\mobil.tif');
[jum_baris, jum_kolom] = size(f);
g = f;
for baris=2 : jum_baris-1
for kolom=2 : jum_kolom-1
minpiksel =
min([f(baris-1, kolom-1) ...
f(baris-1, kolom) f(baris, kolom+1) ...
f(baris,
kolom-1)
...
f(baris, kolom+1) f(baris+1, kolom-1) ...
f(baris+1, kolom) f(baris+1, kolom+1)]);
makspiksel =
min([f(baris-1, kolom-1) ...
f(baris-1, kolom) f(baris, kolom+1) ...
f(baris, kolom-1)
...
f(baris, kolom+1) f(baris+1, kolom-1) ...
f(baris+1, kolom) f(baris+1, kolom+1)]);
if f(baris,
kolom) < minpiksel
g(baris, kolom) = minpiksel;
else
if f(baris, kolom) > makspiksel
g(baris, kolom) = makspiksel;
else
g(baris, kolom) = F(baris, kolom);
end
end
end
end
Output
program filter batas
2.Filter pererataan
. Pada contoh di atas, yang diarsir
(yaitu yang bernilai 68) merupakan nilai pada f(y, x). Nilai rerata pengganti
untuk g(y, x) dihitung dengan cara seperti berikut:
g(y, x) = 1/9 x (65+50+55+78+68+60+60+60+62) = 61,7778
≅62
Jadi, nilai 68
pada f(y, x) diubah menjadi 62 pada g(y, x).
Implementasi
dalam program dapat dilihat berikut ini
.
Program pererataan
f = imread('c:\image\mobil.tif');
[jum_baris, jum_kolom] = size(f);
f2=double(f);
for baris=2 : jum_baris - 1
for kolom=2 : jum_kolom -
1
jumlah= f2 (baris - 1, kolom - 1) + ...
f2(baris - 1 , kolom) + ...
f2(baris - 1, kolom - 1) + ...
f2(baris, kolom - 1) + ...
f2(baris, kolom) + ...
f2(baris, kolom + 1) + ...
f2(baris +1, kolom - 1) + ...
f2(baris+1, kolom) + ...
f2(baris+1, kolom + 1) ;
g(baris, kolom) = uint8 ( 1/9 * jumlah);
end
end
Filter Median
Filter
median sangat populer dalam pengolahan citra. Filter ini dapat dipakai untuk
menghilangkan derau bintik-bintik. Nilai yang lebih baik digunakan untuk suatu
piksel ditentukan oleh nilai median dari setiap piksel dan kedelapan piksel
tetangga pada 8-ketetanggaan. Secara matematis, filter dapat dinotasikan
seperti berikut:
g(y,x)=median(f(y-1,x-1),f(y-1,x),f(y-1,x+1),f(y,x-1),f(y,x),f(y,x+1),f(y+1,x-1),f(y+1,x),f(y+1,x+1))
Program filter median
f = imread('c:\image\mobil.tif');
[jum_baris, jum_kolom] = size(f);
for baris=2 : jum_baris - 1
for kolom=2 : jum_kolom -
1
data= [f(baris-1, kolom-1) ...
f(baris-1, kolom) ...
f(baris-1, kolom+1) ...
f(baris, kolom-1) ...
f(baris, kolom) ...
f(baris, kolom+1) ...
f(baris+1, kolom-1) ...
f(baris+1, kolom) ...
f(baris+1, kolom-1)];
%urutkan
for i=1 : 8
for j=i+1 : 9
if data(i) > data(j)
temp =data(i);
data(i)=data(j);
data(j)=temp;
end
end
end
%ambil nilai median
g(baris,kolom)=data(5);
end
end
Comments
Post a Comment