Teknik Konvolusi & Transformasi Fourier (FT)
Teknik
Konvolusi
Operasi
yang mendasar dalam pengolahan citra adalah operasi konvolusi.
Konvolusi
2 buah fungsi f(x) dan g(x) didefenisikan sebagai berikut :
h(x)
= f(x) * g(x) =
Tanda
* menyatakan operator konvolusi, dan peubah (variabel) a adalah peubah bantu
(dummy variabel).
Untuk
fungsi diskrit, konvolusi didefenisikan sebagai.
h(x)
= f(x) * g(x) =
Pada
operasi konvolusi di atas, g(x) disebut kernel konvolusi atau kernel
penapis (filter).
Kernel
g(x) merupakan suatu jendela yang dioperasikan secara bergeser pada sinyal
masukan f(x), yang dalam hal ini, jumlah perkalian kedua fungsi pada setiap
titik merupakan hasil konvolusi yang dinyatakan dengan keluaran h(x).
Ilustrasi
konvolusi adalah sebagai berikut : Misalkan fungsi f(x) dan g(x) seperti gambar
1 dan 2, langkah-langkah perhitungan hasil konvolusi ditunjukkan mulai
dari gambar 3 sampai dengan gambar 6, yaitu :
Fungsi Sinyal Masukan
Fungsi Kernel atau Filter
Fungsi g(-a)
Fungsi g(x-a)
Fungsi f(a)g(x-a) untuk 0 <= x <=1
Fungsi f(a)g(x-a) untuk 1<= x <=2
Ilustrasi Proses Konvolusi
Contoh
konvolusi yang lain adalah dengan fungsi delta. Ada dua macam fungsi delta :
delta Dirac dan delta Kronecker.
1. Konvolusi Pada Fungsi
Dwimatra
Untuk
fungsi dengan dua peubah (fungsi dua dimensi atau dwimatra), operasi konvolusi
didefenisikan sebagai berikut :
a.
Untuk fungsi malar
b.
Untuk fungsi diskrit
Fungsi
penapis g(x,y)_ disebut juga convolution filter, convolution mask,
convolution kernel, atau template. Dalam ranah diskrit kernel
konvolusi dinyatakan dalam bentuk matriks (umumnya 3 x 3). Ukuran matrik ini
biasanya lebih kecil dari ukuran citra. Setiap elemen matriks disebut koefisien
konvolusi.
Ilustrasi
konvolusi ditunjukkan pada gambar berikut
Operasi
konvolusi dilakukan dengan menggeser kernel konvolusi pixel per pixel.
Hasil konvolusi disimpan dalam matriks yang baru.
Contoh
: Misalkan citra f (x,y) yang berukuran 5 x 5 dan sebuah kernel atau mask yang
berukuran 3 x 3 masing-masing adalah sebagai berikut :
Keterangan
: Tanda menyatakan posisi (0,0) dari kernel
Operasi
antara citra f(x,y) dengan kernel g(x,y)
f(x,y)
* g(x,y)
Langkah
penyelesaiannya adalah sebagai berikut :
1. Tempatkan kernel pada
sudut kiri atas, kemudian hitung nilai pixel pada posisi (0,0)
dari kernel :
Hasil
konvolusi =(0 x 4) + (-1 x 4) + (0 x 3) + (-1 x 6) + (4 x 6) + (-1 x 5) + (0 x
5) + (-1 x 6) + (0 x 6) = 3
2. Geser kernel satu pixel ke
kanan, kemudian hitung nilai pixel pada posisi (0,0)
dari kernel :
Hasil
konvolusi = 0
3. Geser lagi kernel satu
pixel kekanan, keamudian hitung nilai pixel pada posisis (0,0) seperti langkah
sebelumnya, didapat :
Selanjutnya
geser kernel satu pixel ke bawah, lalu mulai
lagi melakukan konvolusi dari sisi kiri citra, setiap kali konvolusi,
geser kernel satu pixel ke kanan.Setelah
baris ketiga dikonvolusi, maka didapat hasil seperti gambar berikut :
Catatan
:
Jika
hasil konvolusi menghasilkan nilai pixel negatif, maka nilai tersebut dijadikan
nol, sebaliknya jika hasil konvolusi menghasilkan nilai pixel yang lebih besar
dari nilai maksimum, maka nilai tersebut dijadikan ke nilai keabuan maksimum.
Untuk
pixel tepi tidak dikonvolusi, jadi nilainya tetap sama seperti citra
asal, Sehingga hasil secara keseluruhan adalah seperti gambar berikut :
Masalah timbul bila pixel
yang dikonvolusi adalah pixel pinggir (border), karena beberapa koefisien
konvolusi tidak dapat diposisikan pada pixel-pixel citra (efek "menggantung"),
seperti contoh di bawah ini :
Masalah
"menggantung" seperti ini selalu terjadi pada pixel-pixel pinggir
kiri, kanan, atas, dan bawah. Solusi untuk masalah ini adalah [SID95] :
1. Pixel-pixel pinggir diabaikan, tidak di-konvolusi. Solusi ini banyak dipakai di dalam pustaka fungsi-fungsi pengolahan citra. Dengan cara seperti ini, maka pixel-pixel pinggir nilainya tetap sama seperti citra asal. Gambar 14 memperlihatkan hasil konvolusi yang dalam hal ini nilai pixel-pixel pinggir sama dengan nilai pixel semula.
1. Pixel-pixel pinggir diabaikan, tidak di-konvolusi. Solusi ini banyak dipakai di dalam pustaka fungsi-fungsi pengolahan citra. Dengan cara seperti ini, maka pixel-pixel pinggir nilainya tetap sama seperti citra asal. Gambar 14 memperlihatkan hasil konvolusi yang dalam hal ini nilai pixel-pixel pinggir sama dengan nilai pixel semula.
2.
Duplikasi elemen citra, misalnya elemen kolom pertama disalin ke kolom M+1,
begitu juga sebaliknya, lalu konvolusi dapat dilakukan terhadap pixelpixel
pinggir tersebut
3. Elemen yang ditandai dengan “?” diasumsikan bernilai 0 atau konstanta yang lain, sehingga konvolusi pixel-pixel pinggir dapat dilakukan
Solusi dengan ketiga pendekatan di atas mengasumsikan bagian pinggir citra lebarnya sangat kecil (hanya satu pixel) relatif dibandingkan denagn ukuran citra, sehingga pixel-pixel pinggir tidak memperlihatkan efek yang kasat mata
3. Elemen yang ditandai dengan “?” diasumsikan bernilai 0 atau konstanta yang lain, sehingga konvolusi pixel-pixel pinggir dapat dilakukan
Solusi dengan ketiga pendekatan di atas mengasumsikan bagian pinggir citra lebarnya sangat kecil (hanya satu pixel) relatif dibandingkan denagn ukuran citra, sehingga pixel-pixel pinggir tidak memperlihatkan efek yang kasat mata
Pixel - pixel pinggir (yang tidak diarsir) tidak
dikonvolusi
Algoritma
konvolusi citra N x M dengan dengan mask atau kernel yang berukuran 3 · 3
ditunjukkan pada Algoritma 5.1. Pixel yang dikonvolusi adalah elemen (i, j).
Delapan buah pixel yang bertetangga dengan pixel (i, j) diperlihatkan pada
dibawah ini
Pixel-pixel pinggir (yang tidak diarsir)
tidak dikonvolusi
Konvolusi
berguna pada proses pengolahan citra seperti :
1. Perbaikan kualitas citra
(image enhancement)
2. Penghilangan derau.
3. Penghalusan/pelembutan
citra.
4. Deteksi tepi, penajaman
tepi.
5. Dll.
Contoh
Teknik Konvolusi
Citra
awal
Citra
hasil konvolusi
Proses
olah citranya sebagai berikut:
Sample
yang digunakan adalah matriks 5×5
Citra
hasil konvolusi
Proses
penghitungan sample matriks 5×5 secara manual :
Rumus
yang digunakan f(x)*g(x)
Nilai
mask yang dipakai:
Transformasi
Fourier (FT)
Pada
tahun 1822, Joseph Fourier, ahli matematika dari Prancis menemukan bahwa: setiap
fungsi periodik (sinyal) dapat dibentuk dari penjumlahan gelombang-gelombang
sinus/cosinus.
Contoh
: Sinyal kotal merupakan penjumlahan dari fungsi-fungsi sinus berikut (lihat
gambar pada halaman berikut)
f(x)
= sin(x) + sin(3x)/3 + sin(5x)/5 +
sin(7x)/7
+ sin(9x)/9
Fungsi
kotak sebagai penjumlahan fungsi-fungsi sinus
Cobakan
juga program matlab berikut untuk melihat sampai batas n berapa fungsi yang
dihasilkan sudah berbentuk fungsi kotak.
function
kotak(n)
t =
0:pi/200:8*pi;
kot = sin(t);
for i = 3 : 2: n
kot = kot + (sin(i*t))/i;
end
plot(kot)
Rumus
FT – 1 dimensi
Rumus
FT kontinu 1 dimensi
Rumus
FT diskret 1 dimensi
Contoh
FT 1 dimensi
Misalkan
kita memiliki sinyal x(t) dengan rumus sbb:
x(t)
= cos(2*pi*5*t) + cos(2*pi*10*t) +
cos(2*pi*20*t)
+ cos(2*pi*50*t)
Sinyal
ini memiliki empat komponen frekuensi yaitu 5,10,20,50
Contoh
sinyal 1 Dimensi x(t)
FT
dari sinyal tersebut
Contoh
Penghitungan FT
Hasil
penghitungan FT biasanya mengandung bilangan real dan imajiner
Fourier
Spectrum didapatkan dari magnitude kedua bilangan tersebut shg|F(u)|
= [R 2(u) + I2(u)]1/2
Untuk
contoh di halaman sebelumnya, Fourier Spectrumnya adalah sebagai berikut:
|F(0)|
= 3.25 |F(1)|
= [(-0.5)2+(0.25)2]1/2 = 0.5590
|F(2)|
= 0.25 |F(3)|
= [(0.5)2+(0.25)2]1/2 = 0.5590
Rumus
FT – 2 dimensi
Contoh
FT 2 Dimensi
Untuk
menampilkan nilai FT suatu citra, karena keterbatasan display, seringkali
digunakan nilai D(u,v)= c log [1 + |F(u,v)|]
Sifat-sifat
FT 2 dimensi
Separable
:
Pemrosesan
FT 2 dimensi dapat dilakukan dengan melakukan FT 1 dimensi terhadap kolom,
kemudian dilanjutkan dengan FT 1 dimensi terhadap baris
Translasi
:
Periodik
FT
dan IFT bersifat periodik dengan periode N (N adalah jumlah titik)
Rotasi
Jika
kita merotasikan f(x,y) sebanyak θ0. maka F(u,x) juga akan berotasi
sebanyak θ0, demikian pula sebaliknya.
Distributif
FT
dan IFT bersifat distributif terhadap penjumlahan tapi tidak terhadap perkalian
Penskalaan
Nilai
rata-rata
Sumber :
Komentar
Posting Komentar