630 likes | 1.26k Views
Teori Konvolusi dan Fourier Transform. Sigit Widiyanto. Dua Operasi matematis yang penting !. Operasi Konvolusi (Spatial Filter) Operasi pengolahan citra yang mengalikan sebuah citra dengan sebuah mask atau kernel (Convolution Mask) Transformasi Fourier
E N D
TeoriKonvolusidan Fourier Transform SigitWidiyanto
DuaOperasimatematis yang penting! • OperasiKonvolusi (Spatial Filter) • Operasipengolahancitra yang mengalikansebuahcitradengansebuah mask ataukernel (Convolution Mask) • Transformasi Fourier • Citra dimanipulasidalamranah (domain) frekuensiketimbangdalamranahspasial.
Konvolusi • Konvolusidiskritsangatbanyakdipergunakandalampengolahancitrauntuk • Memperhalus (smoothing) • Menajamkan (sharpening) • Mendeteksitepi (edge detection) • Konvolusi = jumlahberbobotdari pixel-pixel disekeliling pixel sumber • Bobotditentukanoleh matrix kecilyang disebut convolution mask)
Konvolusi • Dimensi convolution mask biasanyaganjildanposisitengahnyaberkaitandenganposisi pixel output • Frame matrikskonvolusibergerakdenganberpusatpadatiap pixel padacitra input untukmenghasilkan pixel-pixel yang baru. • Pixel output merupakancitrabaru • Nilaibobokpada convolution mask berpengaruhpadaintensitaskeseluruhandaricitra yang baru • Jikanilai = 1, makaintensitascitra output = intensitascitra input • Jikanilai = 0, maka pixel yang barubernilainegatifdanharusditambahkandengansuatukonstanta.
Konvolusiduabuahfungsi f(x) dan g(x) didefinisikansebagaiberikut : Convolution Function Integral dari – takhinggasampaitakterhingga Untukfungsidiskrit , konvolusididefinisikansebagai g(x) disebutdengankernelkonvolusi (filter) , kernel g(x) merupakanjendela yang dioperasikansecarabergeserpadasinyalmasukan f(x) hasilkonvolusidinyatakandengankeluaran h(x) Perhitunganhasilkonvolusidiperlihatkanpadagambar a – f, dan hasilkonvolusiditunjukkanpadagambar g x/2 , 0 <= x <= 1 f(x) * g(x) = X – x/2, 1<= x <= 2 0, Lainnya
Contoh • Misalkancitra f(x,y) yang berukuran 5 x 5 dansebuah kernel yang berukuran 3 x 3 sebagaiberikut:
Solusi • Operasikonvolusiantaracitra f(x,y) denganpenapis g(x,y): f(x,y)*g(x,y)
Solusi • Jikahasilkonvolusimenghasilkannilai pixel negatif, makanilaitersebutdijadikan 0, sebaliknyajikahasilkonvolusimenghasilkannilai pixel lebihbesardarinilaikeabuanmaksimum, makanilaitersebutdijadikankenilaikeabuanmaksimim (clipping atau threshold)
SolusiPermasalahan • Pixel-pixel pinggitdiabaikan, tidak di-konvolusi. Sehingga pixel-pixel pinggirnilainyatetapsamaseperticitraasal. • Duplikasielemencitra, misalnyaelemenkomompertamadisalinkekolom M+1, begitujugasebaliknya, lalukonvolusidapatdilakukanterhadap pixel-pixel pinggirtersebut. • Elemen yang ditandai “?” diasumsikanbernilai0 ataukonstanta yang lain, sehinggakonvolusi pixel-pixel pinggirdapatdilakukan.
Permasalahan • Konvolusidilakukan per pixel, danuntuksetiap pixel dilakukanoperasiperkaliandanpenjumlahan, makajelaskonvolusimengkonsumsibanyakwaktu. Jikacitraberukuran N x N dan kernel berukuran m x m, makajumlahperkalianadalah N2m2 • Contoh: Citra 512 x 512 dan kernel 16 x 16, makaakanadasekitar 32 jutaperkalian. • Permasalahaniniakanbermasalahuntuksistemrealtime. • Solusimengurangikomputasiadalahtransformasicitradan kernel kedalamranahfrekuensimenggunakanFourier Transfrom.
Transformasi Fourier • Mengapa perlu transformasi ? • Setiap orang pada suatu saat pernah menggunakan suatu teknik analisis dengan transformasi untuk menyederhanakan penyelesaian suatu masalah [Brigham,1974] • Contoh: penyelesaian fungsi y = x/z • Analisa konvensional : pembagian secara manual • Analisa transformasi : melakukan transformasi • log(y) = log(x) – log(z) • look-up table pengurangan look-up table
TransformasiCitra • Transformasijugadiperlukanbilakitainginmengetahuisuatuinformasitertentu yang tidaktersediasebelumnya • Contoh : • jikainginmengetahuiinformasifrekuensikitamemerlukantransformasi Fourier • Jikainginmengetahuiinformasitentangkombinasiskaladanfrekuensikitamemerlukantransformasi wavelet • Transformasicitra, sesuainamanya, merupakan proses perubahanbentukcitrauntukmendapatkansuatuinformasitertentu • Transformasibisadibagimenjadi 2 : • Transformasipiksel/transformasigeometris: • Transformasiruang/domain/space
Transformasi Pixel • Transformasipikselmasihbermain di ruang/domain yang sama (domain spasial), hanyaposisipiksel yang kadangdiubah • Contoh: rotasi, translasi, scaling, invers, shear, dll. • Transformasijenisinirelatifmudahdiimplementasikandanbanyakaplikasi yang dapatmelakukannya (Paint, ACDSee, dll)
TransformasiRuang • Transformasiruangmerupakan proses perubahancitradarisuaturuang/domain keruang/domain lainnya, contoh: dariruangspasialkeruangfrekuensi • Masihingatistilah ‘ruang’ ? Ingat-ingatkembalipelajaranAljabar Linier tentang Basis danRuang • Contoh : Ruangvektor. Salah satu basis yang merentangruangvektor 2 dimensiadalah [1 0] dan [0 1]. Artinya, semuavektor yang mungkinada di ruangvektor 2 dimensiselaludapatdirepresentasikansebagaikombinasi linier dari basis tersebut.
Ada beberapatransformasiruang yang akankitapelajari, yaitu : • Transformasi Fourier (basis: cos-sin) • TransformasiHadamard/Walsh (basis: kolomdanbaris yang ortogonal) • Transformasi DCT (basis: cos) • Transformasi Wavelet (basis: scaling function dan mother wavelet)
TransformasiFourier • Padatahun 1822, Joseph Fourier, ahlimatematikadariPrancismenemukanbahwa: setiapfungsiperiodik (sinyal) dapatdibentukdaripenjumlahangelombang-gelombang sinus/cosinus. • Contoh : Sinyalkotalmerupakanpenjumlahandarifungsi-fungsi sinus berikut (lihatgambarpadahalamanberikut) f(x) = sin(x) + sin(3x)/3 + sin(5x)/5 + sin(7x)/7 + sin(9x)/9 …
Hasil dalam transformasi fourier Fungsikotaksebagaipenjumlahanfungsi-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)
Gambar a) n = 1, b) n =3, c) n = 7, d) n = 99 (a) (b) (c) (d)
FT - Motivasi • Jika semua sinyal periodik dapat dinyatakan dalam penjumlahan fungsi-fungsi sinus-cosinus, pertanyaan berikutnya yang muncul adalah: • Jika saya memiliki sebuah sinyal sembarang, bagaimana saya tahu fungsi-fungsi cos – sin apa yang membentuknya ? • Atau dengan kata lain • Berapakah frekuensi yang dominan di sinyal tersebut ? • Pertanyaan di atas dapat dijawab dengan menghitung nilai F(u) dari sinyal tersebut. Dari nilai F(u) kemudian dapat diperoleh kembali sinyal awal dengan menghitung f(x), menggunakan rumus:
Rumus FT kontinu 1 dimensi Rumus FT – 1 dimensi • Rumus FT diskret 1 dimensi • Misalkankitamemilikisinyal x(t) denganrumussbb: • x(t) = cos(2*pi*5*t) + cos(2*pi*10*t) + • cos(2*pi*20*t) + cos(2*pi*50*t) • Sinyalinimemilikiempatkomponenfrekuensiyaitu 5,10,20,50
Contoh FT 1 dimensi Contoh berikut diambil dari Polikar (http://engineering.rowan.edu/~polikar/WAVELETS/WTtutorial.html) Misalkankitamemilikisinyal x(t) denganrumussbb: x(t) = cos(2*pi*5*t) + cos(2*pi*10*t) + cos(2*pi*20*t) + cos(2*pi*50*t) Sinyalinimemilikiempatkomponenfrekuensiyaitu 5,10,20,50
Contoh sinyal 1 Dimensi x(t) • Gambar sinyal satu dimensi dengan rumus • x(t)= cos(2*pi*5*t) + • cos(2*pi*10*t) + • cos(2*pi*20*t) + • cos(2*pi*50*t) • (Sumber: Polikar)
FT dari sinyal tersebut FT dari sinyal tersebut. Terlihat bahwa FT dapat menangkap frekuensi-frekuensi yang dominan dalam sinyal tersebut, yaitu 5,10, 20, 50 (nilaimaksimum F(u) beradapadaangka 5,10, 20, 50)
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) + I 2(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 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)|]