Adapun sub bab yang akan dipelajari pada bab ini yaitu:
- Pengertian operasi ketetanggaan piksel
- Pengertian ketetanggaan piksel
- Aplikasi ketetanggaan piksel pada filter batas, filter pererata, dan filter median
- Pengertian konvolusi
- Problem pada konvolusi
- Mempercepat komputasi pada konvolusi
- Pengertian frekuensi
- Filter lolos-rendah
- Filter lolos-tinggi
- Filter high-boost
- Efek emboss
4.1 Pengertian Operasi Ketetanggaan Piksel
Operasi ketetanggaan piksel (pixel neighborhood operations) adalah operasi pengolahan citra digital yang dilakukan pada sekumpulan piksel yang berdekatan dalam suatu citra. Operasi ini melibatkan pengambilan nilai piksel pada suatu lokasi tertentu, kemudian nilai piksel tersebut diolah dengan nilai piksel yang berdekatan dengannya, seperti pada piksel sebelah kanan, kiri, atas, dan bawah.
Terdapat definisi lain dari Operasi ketetanggaan piksel adalah operasi pengolahan citra untuk
mendapatkan nilai suatu piksel yang melibatkan nilai piksel-piksel tetangganya. Hal ini didasarkan kenyataan bahwa 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.
Sebagai contoh, suatu citra yang berderau dapat dihaluskan melalui pererataan atas piksel-piksel tetangga.
Tujuan dari operasi ketetanggaan piksel adalah untuk memperoleh informasi lebih dari citra digital dengan cara membandingkan nilai piksel yang berdekatan. Dengan demikian, operasi ini dapat digunakan untuk memperbaiki kualitas citra, melakukan segmentasi citra, atau mengekstrak fitur dari citra.
Contoh operasi ketetanggaan piksel antara lain operasi filter atau smoothing, seperti mean filter, median filter, dan Gaussian filter, yang digunakan untuk menghilangkan noise pada citra. Operasi ini juga dapat digunakan untuk deteksi tepi (edge detection), seperti Sobel operator dan Prewitt operator, yang mencari perbedaan intensitas piksel di sekitar suatu piksel dalam citra. Gambar 4.1 memberikan ilustrasi operasi
ketetanggaan piksel. Delapan piksel tetangga terdekat dengan piksel f(y,x) digunakan untuk memperbaikinya menjadi g(y,x) di tempat yang sama.

4.2 Pengertian Ketetanggaan Piksel
Ketetanggaan piksel atau pixel neighborhood adalah konsep dalam pengolahan citra atau pengenalan pola yang merujuk pada sekelompok piksel yang terletak di sekitar piksel tertentu pada citra digital. Piksel-piksel yang terkait dalam tetanggaan ini sering digunakan untuk melakukan operasi pengolahan citra seperti deteksi tepi, segmentasi citra, atau pengenalan pola.
Pada pengolahan citra, ketetanggaan piksel banyak dipakai terutama pada analisis bentuk objek. Ketetanggaan piksel yang umum dipakai adalah 4-ketetanggaan dan 8-ketetanggan. Penggunaan jenis ketetanggaan piksel yang tepat akan sangat mempengaruhi hasil pengolahan citra atau pengenalan pola yang dilakukan. Oleh karena itu, pemilihan jenis ketetanggaan piksel harus disesuaikan dengan kebutuhan aplikasi dan karakteristik citra atau pola yang akan diolah. Untuk memahami dua jenis ketetanggaan piksel, lihat Gambar 4.2.

Pada 4-ketetanggan, T1, T2, T3, dan T4 merupakan tetangga terdekat piksel P. Pada 8-ketetanggan, tetangga piksel P yaitu piksel-piksel yang berada di sekitar P. Totalnya sebanyak 8 buah. Bila P mempunyai koordinat (b, k) dengan b baris dan k kolom, hubungan piksel tetangga terhadap P sebagai berikut.

4.3 Aplikasi Ketetanggaan Piksel pada Filter
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.
4.3.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.

Sebagai contoh, terdapat piksel seperti terlihat pada Gambar 4.3.

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.
Untuk melihat efek filter batas, cobalah program berikut.

.
% FILBATAS Melakukan operasi ketetanggan piksel
% menggunakan filter batas
F = imread('C:\Image\boneka2.tif');
[tinggi, lebar] = size(F);
G = F;
for baris=2 : tinggi-1
for kolom=2 : lebar-1
minPiksel = min([F(baris-1, kolom-1) ...
F(baris-1, kolom) F(baris-1, 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-1, 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
figure(1);
imshow(G);
clear;
Perlu diketahui, pemrosesan hanya dilakukan selain baris pertama, baris terakhir, kolom pertama, dan kolom terakhir. Keempat area tersebut tidak diproses karena tidak mempunyai tetangga yang lengkap (sebanyak 8).
Untuk melihat efek filter batas, jalankan program di atas. Kemudian, bandingkan citra asli dan citra yang dihasilkan oleh program tersebut. Gambar di bawah ini memperlihatkan perbedaannya.


Terlihat bahwa bintik-bintik putih pada citra mobil.png dapat dihilangkan. Namun, kalau diperhatikan dengan saksama, operasi tersebut juga mengaburkan citra. Pada citra boneka2.png, derau malah diperkuat. Artinya, filter itu tidak cocok digunakan untuk menghilangkan jenis derau yang terdapat pada citra tersebut.
4.3.2 Filter Pererataan
Filter Pererataan (mean filter) adalah salah satu jenis filter dalam pengolahan citra digital yang bertujuan untuk mengurangi atau menghilangkan noise atau gangguan pada citra dengan cara mengganti nilai piksel yang ada dengan nilai rata-rata dari piksel yang berdekatan. Filter perataan ini sangat berguna dalam menghaluskan citra atau membuat citra tampak lebih lembut sehingga dapat membantu dalam proses analisis atau pengolahan citra selanjutnya. Filter pererataan (Costa dan Cesar, 2001) dilakukan dengan menggunakan rumus:

Sebagai contoh, piksel pada f(y, x) dan kedelapan tetangganya memiliki nilai-nilai kecerahan seperti berikut:

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:

Jadi, nilai 68 pada f(y, x) diubah menjadi 62 pada g(y, x). Implementasi dalam program dapat dilihat berikut ini.

.
% PEMERATAAN Melakukan operasi dengan filter pererataan
F = imread('C:\Image\boneka2.tif');
[tinggi, lebar] = size(F);
F2 = double(F);
for baris=2 : tinggi-1
for kolom=2 : lebar-1
jum = 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 * jum);
end
end
figure(1); imshow(G);
clear;
Pada program di atas baris dan kolom yang terletak di pinggir citra tidak ikut diproses. Gambar di bawah ini menunjukkan efek pemrosesan dengan filter pererataan. Dibandingkan dengan filter batas, hasil pemrosesan filter pererataan tidak menghilangkan bintik-bintik putih pada citra mobil, tetapi hanya agak
menyamarkan. Pada citra boneka2.png, derau lebih dihaluskan.

Pada gambar hasil filter pererataan mobil dan boneka terlihat keberadaan garis pada kolom pertama dan baris pertama. Untuk menghindari efek seperti itu, baris pertama, kolom pertama, baris terakhir, dan kolom terakhir perlu dihilangkan. Jadi, efek “bingkai” dihilangkan dengan memperkecil ukuran citra menjadi (N-2) x (N-2) jika ukuran citra semula adalah N x N.
4.3.3 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:

Contoh untuk satu piksel ditunjukkan pada Gambar berikut ini.

Pada contoh di atas terlihat bahwa untuk mendapatkan median, diperlukan pengurutan (sorting) terlebih dulu. Contoh berikut menunjukkan penggunaan filter median.

.
% FILMEDIAN Melakukan operasi dengan filter median
F = imread('C:\Image\boneka2.tif');
[tinggi, lebar] = size(F);
for baris=2 : tinggi-1
for kolom=2 : lebar-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)
tmp = data(i);
data(i) = data(j);
data(j) = tmp;
end
end
end
% Ambil nilai median
G(baris, kolom) = data(5);
end
end
figure(1); imshow(G);
clear;
Contoh hasil penggunaan filter median dapat dilihat pada Gambar berikut.


Hasilnya terlihat bahwa derau dapat dihilangkan, tetapi detail pada citra tetap dipertahankan. Namun, hal ini tentu saja didapat dengan tambahan beban komputasi “pengurutan”.
4.4 Pengertian Konvolusi
Konvolusi seringkali dilibatkan dalam operasi ketetanggaan piksel. Konvolusi pada citra sering disebut sebagai konvolusi dua-dimensi (konvolusi 2D). Konvolusi pada pengolahan citra digital adalah proses matematis untuk mengubah nilai intensitas piksel pada citra dengan menerapkan filter atau kernel tertentu pada setiap piksel dalam citra. Proses ini dilakukan dengan menggeser kernel secara bertahap pada seluruh piksel dalam citra dan melakukan operasi matematis perkalian dan penjumlahan antara nilai intensitas piksel dan nilai filter pada setiap piksel. Hasil dari konvolusi adalah citra baru yang telah diolah dengan kernel tersebut dan dapat digunakan untuk tujuan tertentu seperti penyaringan, pengurangan noise, atau peningkatan ketajaman citra. Wujud kernel umumnya bujur sangkar, tetapi dapat pula berbentuk persegi panjang. Kernel konvolusi terkadang disebut dengan istilah cadar, cadar
konvolusi, atau cadar spasial. Gambar 4.8 menunjukkan contoh kernel untuk konvolusi.

Secara umum, proses penapisan/filter di kawasan ruang (space domain), sebagai alternatif di kawasan frekuensi, dilaksanakan melalui operasi konvolusi. Operasi ini dilakukan dengan menumpangkan suatu jendela (kernel) yang berisi angkaangka 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 (lihat Gambar di bawah ini) sehingga diperoleh nilai yang baru pada citra keluaran.

Bagaimana konvolusi dilakukan? Prosesnya dirumuskan sebagai berikut:

dengan,
- m2 adalah separuh dari tinggi kernel (m2 = floor(m/2)),
- n2 adalah separuh dari lebar kernel (n2 = floor(n/2)),
- floor menyatakan pembulatan ke bawah, dan
- h menyatakan kernel, dengan indeks dimulai dari 1.
Ilustrasi konvolusi dijelaskan melalui contoh pada Gambar 4.10.

Berdasarkan Gambar 4.10, apabila citra yang berada pada jendela kernel berupa

dan kernel berupa

maka nilai piksel hasil konvolusi berupa:

Dengan demikian, nilai 68 akan diubah menjadi 40 pada citra keluaran.

Berikut adalah salah satu algoritma yang dipakai untuk mengimplementasikan konvolusi pada citra, dengan asumsi kernel mempunyai jumlah baris dan kolom bernilai ganjil.

Berdasarkan algoritma di atas, maka citra hasil akan kehilangan sebesar:
- 2 * m2 baris atau sama dengan jumlah baris kernel dikurangi 1
- 2 * n2 kolom atau sama dengan jumlah kolom kernel dikurangi 1
Baris dan kolom yang dihilangkan adalah yang berada di tepi citra. Fungsi yang digunakan untuk melakukan konvolusi dapat dilihat berikut ini.

.
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
Contoh pemakaian fungsi konvolusi ditunjukkan berikut ini.

Pertama-tama, kernel H ditentukan melalui
H=[-1 0 -1; 0 4 0; -1 0 -1];
Kernel di atas dinamakan “Quick Mask” (Phillips, 2000) dan berguna untuk deteksi tepi. Selanjutnya, citra gedung.png dibaca dan diletakkan di F. Lalu, konvolusi dilaksanakan dengan memanggil fungsi konvolusi. Dengan cara seperti itu, K berisi hasil konvolusi citra F dan kernel H. Nilai K dapat dilihat secara sekilas
dengan mengetikkan
>> K


Nilai yang dihasilkan dengan konvolusi dapat bernilai negatif dan bahkan dapat melebihi nilai 255. Oleh karena itu, pemrosesan konvolusi harus dilaksanakan dengan menggunakan presisi ganda (bukan bilangan bulat). Lalu, setelah semua citra diproses dengan konvolusi, perlu dilakukan pengaturan nilai
piksel agar berada pada jangkauan [0, 255]. Nilai yang kurang dari 0 diubah menjadi 0 dan yang melebihi 255 diubah menjadi 255. Fungsi uint8 dapat digunakan untuk kepentingan tersebut Contoh:
>> K2 = uint8(K);
Dengan cara seperti itu, nilai pada K2 berada pada jangkauan [0, 255]. Citra K2 dapat ditampilkan dengan menggunakan imshow.
figure(1);
imshow(K2);
Gambar di bawah ini memperlihatkan contoh citra asli (tersimpan dalam F) dan citra yang telah mengalami konvolusi dan telah diatur agar bernilai dalam jangkauan [0, 255] (tersimpan dalam K2).


Contoh di atas menunjukkan aplikasi konvolusi yang dapat digunakan untuk mendapatkan tepi objek. Namun, tentu saja aplikasi konvolusi tidak hanya untuk kepentingan seperti itu. Untuk memperlihatkan hasil deteksi tepi objek, nilai-nilai piksel hasil perlu dinaikkan yaitu ditambah 127. Berikut ini Hasil dari penambahan 127:
figure(1);
imshow(K2+127);


4.5 Problem pada Konvolusi
Pada Algoritma 4.2, terlihat bahwa tidak semua piksel dikenai konvolusi, yaitu baris dan kolom yang terletak di tepi citra. Hal ini disebabkan piksel yang berada pada tepi tidak memiliki tetangga yang lengkap sehingga tentu saja rumus konvolusi tidak berlaku pada piksel seperti itu. Gambar 4.12 menjelaskan contoh tentang hal ini. Sebagai contoh, konvolusi tidak mungkin dilakukan pada posisi A dan B.

Problem konvolusi pada piksel yang tidak mempunyai tetangga lengkap dibahas pada beberapa literatur (Efford, 2000 dan Heijden, 2007; Burger dan Burge, 2008). Untuk mengatasi keadaan seperti itu, terdapat beberapa solusi.
1. Abaikan piksel pada bagian tepi.
Cara ini yang dilakukan pada Algoritma 4.2. Karena pada bagian tepi citra, tetangga tidak lengkap maka piksel pada posisi tersebut tidak dikenai konvolusi. Sebagai konsekuensinya, citra yang tidak mengalami konvolusi maka diisi dengan nol atau diisi sesuai nilai pada citra asal. Alternatif lain (seperti pada contoh program konvolusi.m), bagian yang tidak diproses tidak diikutkan dalam citra hasil. Akibatnya, ukuran citra hasil mengecil.
2. Buat baris tambahan pada bagian tepi.
Baris dan kolom ditambahkan pada bagian tepi sehingga proses konvolusi dapat dilaksanakan. Dalam hal ini, baris dan kolom baru diisi dengan nilai 0.

3. Ambil bagian yang tidak punya pasangan dengan bagian lain dari citra.
Ada beberapa pendekatan yang dapat dilakukan. Dua diantara cara-cara yang dapat digunakan dijelaskan dalam Gambar 4.12. Indeks melingkar dilaksanakan dengan mengambil data pada posisi di seberang citra, sedangkan indeks tercermin diambilkan dari baris/kolom yang ada di dekatnya. Dua cara yang lain yang diilustrasikan pada Gambar 4.14:
- mengisi dengan citra pada bagian tepi (baik baris tepi maupun kolom tepi);
- melakukan penggulungan secara periodis.


Algoritma berikut menunjukkan cara menggunakan indeks tercermin.

Implementasi dari Algoritma 4.3 dapat dilihat pada program berikut.

.
function [G] = konvolusi2(F, H)
% KONVOLUSI2 Melakukan konvolusi kernel H dengan citra F
% (Versi Algoritma 4.3)
% 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=1 : tinggi_f
for x=1 : lebar_f
% Pelaksanaan konvolusi F(baris, kolom)
jum = 0;
for p=-m2 : m2
for q=-n2 : n2
% Penanganan x
x2 = x-q;
if x2 < 1
x2 = -x2 + 1;
else
if x2 > lebar_f
x2 = 2 * lebar_f - x2 + 1;
end
end
% Penanganan y
y2 = y-p;
if y2 < 1
y2 = -y2 + 1;
else
if y2 > tinggi_f
y2 = 2 * tinggi_f - y2 + 1;
end
end
jum = jum + H(p+m2+1,q+m2+1) * ...
F2(y2, x2);
end
end
G(y, x) = jum;
end
end
Penggunaan fungsi konvolusi2 secara prinsip sama dengan pemakaian fungsi konvolusi. Perbedaannya, konvolusi2 menghasilkan citra berukuran sama dengan ukuran citra pada argumennya seperti yang dapat dilihat pada gambar di bawah ini.

4.6 Mempercepat Komputasi pada 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. Kalau dinyatakan dengan ukuran Big O, prosesnya memerlukan O(n2). Untuk mempercepat komputasi, perlu dicari solusi yang proses komputasinya kurang
dari O(n2). Hal ini dapat dilakukan dengan memecah kernel yang berupa matriks menjadi dua buah vektor. Misalnya, h adalah matriks kernel. Untuk kondisi tertentu, h dapat dipecah menjadi dua buah vektor seperti berikut:

Dalam hal ini, hk adalah vektor kolom dan hb adalah vektor baris. Contoh:

Nah, melalui vektor hb dan hk inilah konvolusi terhadap citra dilakukan. Dalam hal ini, kedua vektor dijadikan sebagai vektor mendatar.


Bagaimana konvolusi dilakukan melalui kedua vektor hasil dekomposisi kernel? Algoritma berikut menjelaskannya.

Implementasi algoritma di atas ditunjukkan pada program berikut.

.
function [G] = konvolusi3(F, Hkol, Hbrs)
% KONVOLUSI3 Melakukan konvolusi kernel Hkol dan Hbrs dengan citra F
% (Versi Algoritma 4.4)
% Hkol dan Hbrs harus mempunyai tinggi dan lebar ganjil
% dan ukurannnya sama
% Hkol dan Hbrs berupa vektor mendatar
% Hasil: citra G
[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
Contoh berikut menunjukkan program yang menggunakan konvolusi3.m.

Gambar di bawah ini memperlihatkan hasil pemrosesan gedung.tif menggunakan konvolusi.m dan konvolusi3.m. Pemrosesan dengan kedua algoritma tersebut memberikan hasil visual yang sedikit berbeda.

Sebagai perbandingan, Tabel 4.1 menunjukkan waktu yang diperlukan untuk melakukan konvolusi dengan menggunakan konvolusi2.m, konvolusi3.m, dan conv2 (milik MATLAB) dalam satuan detik.

Dapat dilihat bahwa konvolusi3.m (yang menggunakan vektor) lebih cepat daripada konvolusi2.m (yang menggunakan matriks). Namun, dibandingkan dengan fungsi conv2 yang tersedia dalam MATLAB, kecepatan kedua konvolusi yang dibuat sendiri jauh lebih rendah.
4.7 Pengertian Frekuensi
Istilah frekuensi berkonotasi punya kaitan dengan waktu. Sebagai contoh, isyarat listrik AC pada sistem kelistrikan di Indonesia mempunyai frekuensi sebesar 50 Hz. Makna 50 Hz di sini menyatakan bahwa terdapat 50 siklus sinus yang utuh pada setiap detik. Pada citra, istilah frekuensi tidak berhubungan
dengan waktu, melainkan berkaitan dengan keruangan atau spasial. Oleh karena itu, citra dikatakan memiliki frekuensi spasial. Definisi di Wikipedia menyatakan bahwa frekuensi spasial adalah karakteristik sebarang struktur yang bersifat periodis sepanjang posisi dalam ruang. Frekuensi spasial adalah ukuran seberapa sering struktur muncul berulang dalam satu satuan jarak.
Frekuensi spasial pada citra menunjukkan seberapa sering suatu perubahan aras keabuan terjadi dari suatu posisi ke posisi berikutnya. Frekuensi spasial dalam pengolahan citra digital mengacu pada kepadatan perubahan warna atau kecerahan dalam suatu citra pada berbagai posisi atau lokasi spasial. Dalam hal ini, citra digital dianggap sebagai fungsi 2D yang didefinisikan pada domain spasial. Frekuensi spasial menggambarkan seberapa cepat warna atau kecerahan berubah saat bergerak dari satu titik ke titik lain pada citra.
Frekuensi spasial dalam citra digital dapat diukur dalam satuan siklik per piksel (cycles per pixel atau cpp). Satu siklus per piksel berarti perubahan warna atau kecerahan melintasi satu siklus penuh pada jarak satu piksel. Semakin besar jumlah siklus per piksel pada suatu citra, semakin tinggi frekuensi spasialnya dan semakin banyak detail yang dapat dilihat pada citra tersebut.
Frekuensi spasial sering kali digunakan dalam pengolahan citra digital untuk menganalisis dan memproses citra dengan metode filtering atau transformasi frekuensi. Gambar 4.16 menunjukkan secara visual perbedaan antara frekuensi rendah dan frekuensi tinggi. Pada citra berfrekuensi tinggi, perubahan aras sering terjadi seiring dengan
pergeseran jarak.

Pada Gambar 4.16(a), perubahan aras keabuan terjadi sekali saja, sedangkan pada Gambar 4.16(b) terlihat bahwa perubahan aras keabuan sering terjadi. Itulah sebabnya, Gambar 4.16(a) menyatakan contoh frekuensi rendah dan Gambar 4.16(b) menunjukkan contoh frekuensi tinggi. Pengertian frekuensi dalam citra perlu dipahami terlebih dulu. Pada beberapa pembicaraan di belakang, istilah frekuensi akan sering disebut.
4.8 Filter Lolos-Rendah (Low Pass Filter)
Filter lolos-rendah(low-pass filter) adalah filter yang digunakan untuk menghilangkan komponen frekuensi tinggi dalam citra digital dengan mempertahankan atau melewatkan komponen frekuensi rendahnya. Efek filter ini membuat perubahan aras keabuan menjadi lebih lembut. Filter ini berguna untuk menghaluskan derau atau untuk kepentingan interpolasi tepi objek dalam citra.
Operasi penapisan lolos-rendah dilaksanakan melalui konvolusi atau tanpa konvolusi. Contoh yang tidak memakai konvolusi dapat dilihat pada filter median (filter median termasuk dalam filter lolos-rendah). Adapun yang melibatkan konvolusi menggunakan kernel antara lain berupa seperti yang terlihat pada
Gambar 4.17 (Phillips, 2000)

Sebagai contoh, terdapat citra berfrekuensi rendah dan berfrekuensi tinggi dengan komposisi data seperti berikut.

Dengan menggunakan kernel

terhadap kedua citra tersebut dan menggunakan konvolusi.m maka didapatkan hasil seperti yang terdapat pada Gambar 4.19.

Perhatikan Gambar 4.19 (a). Secara prinsip, filter tidak membuat perubahan yang sangat berarti pada citra kecuali perubahan pada baris yang berisi 69 dan 99. Adapun pada Gambar 4.19(b), frekuensi memang tidak berubah, tetapi terjadi penghalusan perubahan aras (128 menjadi 99 dan 40 menjadi 69). Apa
pengaruhnya secara visual pada citra? Melalui filter lolos-rendah, hal-hal yang menyatakan frekuensi tinggi akan diredupkan, sedangkan bagian berfrekuensi rendah hampir tidak berubah. Program berikut dapat dipakai untuk mengamati efek filter lolos rendah terhadap citra.

Contoh penguji program di atas:

Gambar asal dan hasil penapisan akan ditampilkan pada jendela yang terpisah. Gambar-gambar di bawah ini menunjukkan hasil penapisan dengan filter #2 pada Gambar 4.17. Contoh tersebut menunjukkan bahwa filter lolos-rendah mampu menghaluskan perubahan-perubahan yang drastis. Perhatikan ketajaman genting pada goldhill menjadi diperhalus setelah melalui penapisan. Begitu pula derau pada boneka.



.
Gambar di bawah ini menunjukkan hasil penggunaan kernel #1, #3, dan #4 untuk menapis citra boneka yang telah diberi derau.

.
Adapun Gambar 4.22 di bawah ini memperlihatkan contoh penerapan kernel berukuran 3x3, 5x3, dan 7x7 dengan nilai koefisien pada kernel bernilai sama.


4.9 Filter Lolos-Tinggi
High pass filter (filter lewat tinggi) adalah salah satu jenis filter dalam pengolahan citra digital yang digunakan untuk meningkatkan kontras atau menyorot fitur-fitur kecil pada citra. Filter ini memungkinkan informasi pada frekuensi tinggi (misalnya, tepi, garis, atau detail kecil) untuk melewati filter dan informasi pada frekuensi rendah (misalnya, area berwarna solid atau gradien halus) dihilangkan.
Filter ini bekerja dengan menghilangkan informasi pada frekuensi rendah dan mempertahankan informasi pada frekuensi tinggi. Filter high pass dapat digunakan untuk meningkatkan kejelasan pada citra, memperjelas garis dan tepi, memperjelas detail kecil, dan menghilangkan noise pada citra. Namun, penggunaan filter ini juga dapat menyebabkan peningkatan noise pada area yang kurang kontras atau detailnya rendah pada citra. Oleh karena itu, pemilihan filter harus disesuaikan dengan kebutuhan dan karakteristik citra yang akan diolah. Hal ini biasa dipakai untuk mendapatkan tepi objek dalam citra atau menajamkan citra. Contoh filter lolos tinggi dapat dilihat pada Gambar 4.23.

Filter lolos-tinggi mempunyai sifat yaitu jumlah seluruh koefisien adalah nol. Selain itu terdapat sifat sebagai berikut (Efford, 2000).
- 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.
Jika kernel seperti berikut:

dikenakan pada data dalam Gambar 4.18, akan diperoleh hasil seperti berikut.

Berikut ini Gambar secara keseluruhan:

Hasil pada Gambar 4.24(a) menunjukkan bahwa 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 pada Gambar 4.24(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).
Gambar di bawah ini menunjukkan penggunaan filter lolos-tinggi yang terdapat pada Gambar 4.23 terhadap citra boneka.png.

Adapun Gambar di bawah ini menunjukkan penggunaan filter lolos-tinggi yang terdapat pada Gambar 4.23 pada citra bulat.png.


4.10 Filter High-Boost
High-Boost Filter adalah suatu jenis filter yang digunakan dalam pengolahan citra digital untuk meningkatkan detail citra dengan cara meningkatkan kejelasan citra dan mempertajam tepi objek pada citra. Filter ini sering digunakan pada citra yang memiliki kontras rendah atau kabur untuk meningkatkan kejelasan citra dan membuatnya lebih tajam.
Cara kerja filter High-Boost adalah dengan mempertahankan informasi citra pada frekuensi tinggi dan memodifikasi informasi pada frekuensi rendah. Filter ini dapat diterapkan pada citra grayscale maupun citra berwarna, dengan memodifikasi koefisien filter yang digunakan untuk masing-masing kanal warna.
Filter “high boost” (Efford, 2000) 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. Sebagai contoh, dapat digunakan kernel seperti berikut.

Gambar berikut menunjukkan efek saat c diisi dengan 9, 10, dan 11.

Tampak bahwa dengan menggunakan filter high boost bernilai tengah tertentu (pada contoh di atas berupa 9), diperoleh hasil berupa penajaman citra. Berikut ini perintah yang digunakan untuk filter high boost dengan nilai c=9 (untuk c yang lain dapat menggunakan perintah yang sama tetapi harus disesuaikan nilai matriks H nya).


4.11 Efek Emboss
Efek emboss adalah salah satu teknik pengolahan citra digital yang dapat digunakan untuk memberikan efek tiga dimensi pada citra. Efek ini menciptakan bayangan dan highlight pada citra yang terlihat seperti ditinggikan atau diturunkan dari permukaan.
Teknik ini bekerja dengan mengubah intensitas piksel dalam citra dengan membandingkan nilai piksel pada beberapa tetangga piksel dalam citra tersebut. Secara umum, teknik ini mengambil citra asli dan menghasilkan citra yang terlihat seperti memiliki relief atau ditinggikan dari permukaan. Hal ini dilakukan dengan mengambil setiap piksel dalam citra, dan membandingkannya dengan piksel di sekitarnya untuk mencari perbedaan intensitas yang signifikan. Kemudian, setiap piksel tersebut dinaikkan atau diturunkan intensitasnya berdasarkan perbedaan tersebut.
Efek emboss dapat digunakan untuk membuat citra terlihat lebih menarik dan dramatis, dan sering digunakan dalam industri film, desain grafis, dan fotografi. Gambar 4.29 menunjukkan contoh hasil embossing. Terlihat ada penebalan garis pada arah tertentu.

Kernel yang digunakan seperti berikut:

Gunakan Perintah berikut ini untuk hasil gambar 4.29:

Nilai negatif dan positif yang berpasangan menentukan perubahan kecerahan yang berefek pada penggambaran garis gelap atau terang, Gambar 4.30 memperlihatkan efek beberapa kernel dan hasil yang didapatkan untuk citra lena256.png



Rahasia pembuatan emboss terletak pada kernel konvolusi dengan sifat seperti berikut (Oliver, dkk., 1993).
- Tinggi dan lebar kernel gasal.
- Bobot dalam kernel bersifat tidak simetris terhadap piksel pusat.
- Bobot pusat kernel bernilai nol.
- Jumlah keseluruhan bobot bernilai nol.
Nilai negatif pada kernel emboss menentukan arah penebalan garis. Beberapa contoh yang dapat dicoba ditunjukkan pada gambar berikut.

4.12 Pengklasifikasian Filter Linear dan Nonlinear
Filter disebut sebagai filter linear jika dalam melakukan penapisan melibatkan piksel dengan cara linear. Contoh filter linear yaitu filter pererataan. Filter-filter linear yang lain:
- filter Gaussian
- filter topi Mexico (Laplacian)
Kelemahan filter linear, terutama ketika dipakai untuk konvolusi citra atau penghilangan derau, yaitu membuat struktur citra yang meliputi titik, tepi, dan garis ikut terkaburkan dan kualitas citra keseluruhan menurun (Burger dan Burge, 2008). Kelemahan seperti ini dapat diatasi menggunakan filter nonlinear. Filter nonlinear adalah filter yang bekerja tidak memakai fungsi linear. Filter batas dan filter median merupakan contoh filter nonlinear.
4.13 Filter Gaussian
Filter Gaussian tergolong sebagai filter lolos-rendah yang didasarkan pada fungsi Gaussian. Model dua dimensinya berupa:

Dalam hal ini, 𝜎 adalah deviasi standar dan piksel pada pusat (y, x) mendapatkan bobot terbesar berupa 1. Filter Gaussian paling tidak berukuran 5x5. Sebagai contoh, bobot-bobotnya dapat diperoleh dengan membuat 𝜎2 bernilai 1. Dengan demikian:

Dengan mengatur nilai terkecil menjadi 1, maka setiap nilai di atas perlu dikalikan dengan 55 (diperoleh dari 1/0,0183 dan kemudian hasilnya dibulatkan ke atas). Dengan demikian, diperoleh hasil seperti berikut, yang diperoleh dengan mengalikan nilai G(x,y) di depan dengan 55.

Gambar di bawah ini memberikan contoh penerapan filter Gaussian pada dua buah citra.

Berikut ini perintah yang digunakan untuk menghasilkan gambar di atas:
