Anda di halaman 1dari 39

PENGANTAR

PENGOLAHAN
CITRA
DIGITAL

Operasi Ketetanggaan
Piksel
PRODI S1 TEKNIK INFORMATIKA :: SEKOLAH TINGGI TEKNOLOGI NURUL JADID
Outline

 Pengertian operasi ketetanggaan piksel


 Pengertian ketetanggaan piksel
 Aplikasi ketetanggaan piksel
 Konvolusi
 Frekuensi
 Filter lolos-rendah
 Filter lolos-tinggi
 Filter high-boost
 Efek emboss
Ilustrasi
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.
Jenis Ketetanggaan Piksel

𝑇1 = 𝑏, 𝑘 + 1 , 𝑇2 = 𝑏 − 1, 𝑘 ,
𝑇3 = 𝑏, 𝑘 − 1 , 𝑇4 = 𝑏 + 1, 𝑘

𝑇1 = 𝑏, 𝑘 + 1 , 𝑇2 = 𝑏 − 1, 𝑘 − 1 ,
𝑇3 = 𝑏, 𝑘 − 1 , 𝑇4 = 𝑏 − 1, 𝑘 − 1
𝑇5 = 𝑏, 𝑘 − 1 , 𝑇6 = 𝑏 + 1, 𝑘 − 1 ,
𝑇7 = 𝑏 + 1, 𝑘 − 1 , 𝑇8 = 𝑏 + 1, 𝑘 + 1
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
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
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.
Filter Batas (3) : Implementasi Gambar

Citra mobil dengan derau (kiri) dan setelah difilter (kanan) Citra boneka dengan derau (kiri) dan setelah difilter (kanan)
Filter Pererataan (1) : Overview

 Nilai didapatkan dengan rumus


1 1
1
𝑔 𝑦, 𝑥 = ෍ ෍ 𝑓(𝑦 + 𝑝, 𝑥 + 𝑞)
9
𝑝=−1 𝑞=−1

 Secara prinsip, hasil nilai pererataan diperoleh dari nilai


rerata piksel dan tetangganya
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).
Filter Pererataan (3) : Implementasi Gambar
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.
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).
Filter Median (3) : Implementasi Gambar
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.
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.
Ilustrasi Konvolusi
Contoh Konvolusi
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
Hasil = -62 + 0 + 60 – 120 + 0 + 152 – 55 + 0 + 65
kernel Konvolusi = 40

Nilai 68 pada citra akan diganti dengan 40


Fungsi Konvolusi & Implementasi

function [G] = konvolusi(F, H)


% KONVOLUSI Melakukan konvolusi kernel H dengan citra F >> KERNEL = [-1 0 -1; 0 4 0; -1 0 -1];
% H harus mempunyai tinggi dan lebar ganjil >> GAMBAR = imread('gedung.tif');
% Hasil: citra G
[tinggi_f, lebar_f] = size(F); >> K1=konvolusi(GAMBAR,KERNEL);
[tinggi_h, lebar_h] = size(H); >> K2=uint8(K1);
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
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
Mempercepat Komputasi Konvolusi

 Komputasi pada konvolusi dapat


menjadi lama jika ukuran kernel
Memecah matrik kernel
membesar.
menjadi dua buah vektor
 Untuk kernel dengan ukuran n x n,
proses konvolusi akan dilakukan n x n
kali.
𝒉 = 𝒉𝒌 𝑥 𝒉𝒃
h = kernel
 Jika dinyatakan dengan ukuran Big O,
hk = vektor kolom
prosesnya memerlukan O(n2).
hb = vektor baris
Memecah matriks kernel dalam vektor

 Cek matriks kernel dengan rank. Jika CONTOH


hasilnya 1 kalau matriks dapat  >> H = [-1 0 1; -2 0 2; -1 0 1];
didekomposisi menjadi dua buah
vektor.  >> rank(H);  ans = 1
{bisa jadi matriks}
 Dekomposisi matriks kernel dengan
fungsi svd  >> [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;
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);
>> GAMBAR=imread(‘gedung.tif’)
end >> Hkol = [-1 -2 -1];
T(y, x) = jum;
end
>> Hbrs = [1 0 -1];
end >> K=konvolusi3(GAMBAR, Hkol, Hbrs);
for y=1 : tinggi_f
for x=m2+1 : lebar_f-m2
>> K2=uint8(K);
jum = 0; >> imshow(K2);
for p=-m2 : m2
jum = jum + Hbrs(p+m2+1) * T(y, x-p);
end

G(y, x) = jum;
end
end
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
Filter Lolos-Rendah

 Filter lolos-bawah (low-pass filter)


adalah filter yang mempunyai sifat
dapat meloloskan yang berfrekuensi
rendah dan menghilangkan yang  Tidak menggunakan konvolusi
berfrekuensi tinggi. (menggunakan filter median)
 Efek filter ini membuat perubahan  Menggunakan Konvolusi dengan
aras keabuan menjadi lebih lembut. kernel tertentu
 Filter ini berguna untuk menghaluskan
derau atau untuk kepentingan
interpolasi tepi objek dalam citra.
Perbandingan hasil penapisan
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);
Contoh Hasil Penapisan Kernel
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.
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.
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)
Contoh hasil penapisan kernel
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.
Contoh hasil penapisan kernel
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
Beberapa contoh kernel & hasil penapisan
Tugas

 Lakukan praktikum untuk menguji semua teori dalam


materi pertemuan ini
 Rekam proses praktikum menggunakan desktop
capturing!
 Upload ke youtube menggunakan email masing-
masing!
Operasi
Geometrik
>> Selanjutnya...

Anda mungkin juga menyukai