4. Definisi
Sdalah operasi pengolahan citra untuk mendapatkan nilai
suatu piksel yang melibatkan nilai piksel-piksel tetangganya.
Setiap piksel pada umumnya tidak berdiri sendiri, melainkan
terkait dengan piksel tetangga, karena merupakan bagian
suatu objek tertentu di dalam citra.
Sifat inilah yang kemudian mendasari timbulnya algoritma
untuk mengolah setiap piksel citra melalui piksel-piksel
tetangga.
6. Aplikasi Ketetanggaan Piksel pada Filter
Sebagai filter atau tapis, operasi ketetanggaan piksel
berfungsi untuk menyaring atau paling tidak mengurangi
gangguan atau penyimpangan pada citra
Jenis ketetanggaan:
filter batas
filter pererataan
filter median
7. Filter Batas (1) : Algoritma
ALGORITMA 4.1 – Menghitung piksel dengan filter batas
Masukan:
f(y, x) : Piksel pada posisi (y, x)
Keluaran:
g(y, x) : Nilai intensitas untuk piksel pada citra g pada posisi (y, x)
1. Carilah nilai intensitas terkecil pada tetangga f(y, x)
dengan menggunakan 8-ketetanggan dan simpan pada minInt.
2. Carilah nilai intensitas terbesar pada tetangga f(y, x)
dengan menggunakan 8-ketetanggan dan simpan pada maksInt.
3. IF f(y, x) < minInt
g(y, x) minInt
ELSE
IF f(y. x) > maksInt
g(y, x) maksInt
ELSE
g(y, x) f(y, x)
END-IF
END-IF
8. Filter Batas (2) : Ilustrasi
ANALISIS :
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.
9. Filter Batas (3) : Implementasi Gambar
Citra mobil dengan derau (kiri) dan setelah difilter (kanan) Citra boneka dengan derau (kiri) dan setelah difilter (kanan)
10. Filter Pererataan (1) : Overview
Nilai didapatkan dengan rumus
𝑔 𝑦, 𝑥 =
1
9
𝑝=−1
1
𝑞=−1
1
𝑓(𝑦 + 𝑝, 𝑥 + 𝑞)
Secara prinsip, hasil nilai pererataan diperoleh dari nilai rerata
piksel dan tetangganya
11. Filter Pererataan (2) : Ilustrasi
Nilai pada f(y, x) adalah 68
Nilai rerata pengganti untuk g(y, x) dihitung dengan
cara seperti berikut:
g(y, x) = 1/9 x (65+50+55+76+68+60+60+60+62)
= 61,77 ≅ 𝟔𝟐
Jadi, nilai 68 pada f(y, x) diubah menjadi 62 pada g(y,
x).
13. Filter Median (1) : Overview
Nilai yang lebih baik digunakan untuk suatu piksel ditentukan
oleh nilai median dari setiap piksel dan kedelapan piksel
tetangga pada 8-ketetanggaan.
Filter ini dapat dipakai untuk menghilangkan derau bintik-
bintik.
14. Filter Median (2) : Ilustrasi
Nilai pada f(y, x) adalah 10
Nilai median didapatkan dengan mengurutkan
seluruh nilai, kemudian diambil nilai tengah
10 10 10 10 12 12 12 12 13
Jadi, nilai 10 pada f(y, x) diubah menjadi 12 pada g(y,
x).
16. Konvolusi (cadar/ cadar konvolusi, /cadar spasial)
Proses untuk memperoleh suatu piksel
didasarkan pada nilai piksel itu sendiri dan
tetangganya, dengan melibatkan suatu
matriks yang disebut kernel yang
merepresentasikan pembobotan.
Wujud kernel umumnya bujur sangkar,
tetapi dapat pula berbentuk persegi
panjang.
17. Proses Konvolusi
Menumpangkan suatu jendela (kernel) yang berisi angka-
angka pengali pada setiap piksel yang ditimpali.
Kemudian, nilai rerata diambil dari hasil-hasil kali tersebut.
Khusus bila angka-angka pengali tersebut semua adalah 1,
hasil yang didapat sama saja dengan filter pererataan.
Pada pelaksanaan konvolusi, kernel digeser sepanjang baris
dan kolom dalam citra sehingga diperoleh nilai yang baru
pada citra keluaran.
19. Contoh Konvolusi
kernel
citra
g(x, y) = -1 x 62 + 0 x 60 + 1 x 60 +
-2 x 60 + 0 x 68 + 2 x 78 +
-1 x 55 + 0 x 50 + 1 x 65
= -62 + 0 + 60 – 120 + 0 + 152 – 55 + 0 + 65
= 40
Hasil
Konvolusi
Nilai 68 pada citra akan diganti dengan 40
20. Fungsi Konvolusi & Implementasi
function [G] = konvolusi(F, H)
% KONVOLUSI Melakukan konvolusi kernel H dengan citra F
% H harus mempunyai tinggi dan lebar ganjil
% Hasil: citra G
[tinggi_f, lebar_f] = size(F);
[tinggi_h, lebar_h] = size(H);
m2 = floor(tinggi_h/2);
n2 = floor(lebar_h/2);
F2=double(F);
for y=m2+1 : tinggi_f-m2
for x=n2+1 : lebar_f-n2
% Pelaksanaan konvolusi F(baris, kolom)
jum = 0;
for p=-m2 : m2
for q=-n2 : n2
jum = jum + H(p+m2+1,q+n2+1) * ...
F2(y-p, x-q);
end
end
G(y-m2, x-n2) = jum;
end
end
>> KERNEL = [-1 0 -1; 0 4 0; -1 0 -1];
>> GAMBAR = imread('gedung.tif');
>> K1=konvolusi(GAMBAR,KERNEL);
>> K2=uint8(K1);
21. Problem Konvolusi
Abaikan piksel pada bagian tepi
Buat baris tambahan pada bagian tepi
(baris dan kolom baru diisi dengan nilai 0)
Ambil bagian yang tidak punya pasangan
dengan bagian lain dari citra
22. Mempercepat Komputasi Konvolusi
Komputasi pada konvolusi dapat menjadi
lama jika ukuran kernel membesar.
Untuk kernel dengan ukuran n x n, proses
konvolusi akan dilakukan n x n kali.
Jika dinyatakan dengan ukuran Big O,
prosesnya memerlukan O(n2).
Memecah matrik kernel menjadi
dua buah vektor
𝒉 = 𝒉𝒌 𝑥 𝒉𝒃
h = kernel
hk = vektor kolom
hb = vektor baris
23. Memecah matriks kernel dalam vektor
Cek matriks kernel dengan rank. Jika
hasilnya 1 kalau matriks dapat
didekomposisi menjadi dua buah vektor.
Dekomposisi matriks kernel dengan fungsi
svd
CONTOH
>> H = [-1 0 1; -2 0 2; -1 0 1];
>> rank(H); ans = 1
{bisa jadi matriks}
>> [U,S,V]=svd(H);
>> hkol = U(:,1) * sqrt(S(1));
{menghasilkan vektor kolom};
>> hbrs = conj(V(:,1)) * sqrt(S(1));
{menghasilkan vektor baris}
>> H1=hkol*hbrs;
24. Implementasi Konvolusi Vektor
function [G] = konvolusi3(F, Hkol, Hbrs)
[tinggi_f, lebar_f] = size(F);
[tinggi_h, lebar_h] = size(Hbrs);
m2 = floor(lebar_h/2);
F2=double(F);
T = F2;
for y=m2+1 : tinggi_f-m2
for x=1 : lebar_f
jum = 0;
for p=-m2 : m2
jum = jum + Hkol(p+m2+1) * F2(y-p, x);
end
T(y, x) = jum;
end
end
for y=1 : tinggi_f
for x=m2+1 : lebar_f-m2
jum = 0;
for p=-m2 : m2
jum = jum + Hbrs(p+m2+1) * T(y, x-p);
end
G(y, x) = jum;
end
end
>> GAMBAR=imread(‘gedung.tif’)
>> Hkol = [-1 -2 -1];
>> Hbrs = [1 0 -1];
>> K=konvolusi3(GAMBAR, Hkol, Hbrs);
>> K2=uint8(K);
>> imshow(K2);
25. Frekuensi Spasial
Frekuensi spasial pada citra menunjukkan
seberapa sering suatu perubahan aras
keabuan terjadi dari suatu posisi ke posisi
berikutnya
Ilustrasi di samping
(a) perubahan aras keabuan terjadi sekali
saja
(b) terlihat bahwa perubahan aras keabuan
sering terjadi
26. Filter Lolos-Rendah
Filter lolos-bawah (low-pass filter) adalah
filter yang mempunyai sifat dapat
meloloskan yang berfrekuensi rendah dan
menghilangkan yang berfrekuensi tinggi.
Efek filter ini membuat perubahan aras
keabuan menjadi lebih lembut.
Filter ini berguna untuk menghaluskan
derau atau untuk kepentingan interpolasi
tepi objek dalam citra.
Tidak menggunakan konvolusi
(menggunakan filter median)
Menggunakan Konvolusi dengan kernel
tertentu
28. Kernel konvolusi Filter Lolos-Rendah
function [G] = tapis(berkas, H)
% TAPIS Menerapkan filter H dengan citra F
% H harus mempunyai tinggi dan lebar ganjil
% Hasil: citra G
F = imread(berkas);
K = konvolusi(F, H);
G = uint8(K);
figure(1); imshow(F);
figure(2); imshow(G);
Filter lolos rendah dengan Kernel #2
>> H = [1 1 1; 1 1 1; 1 1 1] / 9;
>> tapis('mobil.tif', H);
30. Filter Lolos Tinggi
Filter lolos-tinggi adalah filter yang ditujukan
untuk melewatkan frekuensi tinggi dan
menghalangi yang berfrekuensi rendah.
Hal ini biasa dipakai untuk mendapatkan tepi
objek dalam citra atau menajamkan citra.
31. Kernel Filter Lolos Tinggi
Filter lolos-tinggi mempunyai sifat yaitu
jumlah seluruh koefisien adalah nol.
Apabila dikenakan pada area dengan
perubahan aras keabuan yang lambat
(frekuensi rendah), hasil berupa nol atau
nilai yang sangat kecil.
Apabila dikenakan pada area yang
perubahan aras keabuannya cepat
(frekuensi tinggi), hasil konvolusi bernilai
sangat besar.
32. Perbandingan hasil penapisan
Hasil gambar (a) hanya pada perbatasan
antara perubahan aras keabuan yang
ditonjolkan (baris berisi 88) dan nilai yang
lain bernilai rendah (nol). Dengan demikian,
akan muncul garis putih.
Hasil Gambar (b) menunjukkan bahwa citra
yang berfrekuensi tinggi hampir tidak
mengalami perubahan, kecuali nilainya saja
yang berefek pada penajaman perbedaan
aras keabuan (nilai 150 menjadi 176 dan nilai
40 menjadi 0)
34. Filter High-Boost
Dapat digunakan untuk menajamkan citra
melalui konvolusi.
Kernel yang dapat dipakai adalah kernel
filter lolos-tinggi dengan nilai di pusat diisi
dengan nilai yang lebih besar daripada
nilai pada posisi tersebut untuk filter lolos-
tinggi.
36. Efek Emboss
Efek ini akan penebalan garis ke arah
tertentu
Nilai dan arah penebalan tergantung pada
nilai kernel yang digunakan dalam
penapisan gambar
Nilai negatif dan positif yang berpasangan
menentukan perubahan kecerahan yang
berefek pada penggambaran garis gelap
atau terang
38. Tugas
Lakukan praktikum untuk menguji semua teori dalam materi
pertemuan ini
Rekam proses praktikum menggunakan desktop capturing!
Upload ke youtube menggunakan email masing-masing!