Anda di halaman 1dari 6

MAKALAH TRANSFORMASI FOURIER

MATA KULIAH PENGOLAHAN CITRA

OLEH:
1. RISKA NOR AULIA (08 615 013)
2. DYA AYU NINGTYAS (08 615 017)

JURUSAN TEKNOLOGI INFORMASI


POLITEKNIK NEGERI SAMARINDA
2010
TRANSFORMASI FOURIER

1. Pengertian
Transformasi Fourier, dikemukakan oleh Joseph Fourier, adalah sebuah
transformasi integral yang menyatakan kembali sebuah fungsi dalam fungsi basis
sinusioidal, yaitu sebuah fungsi sinusoidal penjumlahan atau integral dikalikan oleh
beberapa koefisien ("amplitudo"). Ada banyak variasi yang berhubungan-dekat dari
transformasi ini tergantung jenis fungsi yang ditransformasikan.

2. Transformasi Fourier
Transformasi Fourier dari f(x), didefinisikan sebagai berikut:

ିஶ
di mana
j = √−1
Sebaliknya, jika diketahui F(u), maka f(x) dapat diperoleh dengan Inverse
Transformasi Fourier berikut:

ିஶ

Kedua persamaan di atas disebut dengan pasangan transformasi Fourier. Jika f(x) adalah
bilangan real, biasanya F(u) merupakan bilangan kompleks yang bisa diuraikan menjadi:

F(u) = R(u) + jI(u)

dimana R(u) dan I(u) adalah komponen real dan imajiner dari F(u).
Persamaan di atas juga sering dituliskan sebagai:
F(u)= | F(u) | ejφu

dimana | F(u) | adalah magnitude dari F(u), yang diperoleh dari :


| F(u) | = [ R2(u) + I2(u) ]1/2
f(u) = tan-1[ I(u) / R(u) ]

Fungsi magnitude | F(u) | disebut juga spektrum Fourier dari f(x), dan f(u) disebut dengan
sudut fase dari f(u).
Jika f(x) dijadikan diskrit maka persamaan transformasi Fourier diskrit adalah:
ିஶஶ
1
݂(‫= )ݔ‬ ஶ ݂ (‫)ݔ‬exp [−݂2݂‫ ݔݑ‬/݂]
݂
ஶஶஶ

Karena pada pengolahan citra digital, data yang digunakan berbentuk digital/diskrit maka
dapat digunakan kedua persamaan diatas untuk melakukan transformasi dan inverse
transformasi Fourier.
Untuk menganalisa citra pada frequency domain, hasil transformasi Fourier dapat
ditampilkan sebagai citra, dimana intensitasnya proporsional dengan besarnya | F(u) |
atau spektrum Fourier. Namun karena dynamic range dari spektrum Fourier biasanya
sangat besar, maka sebelum ditampilkan sebagai citra harus diubah menjadi:

D(u,v) = c log ( 1 + |F(u,v)| )

dimana c adalah konstanta. Selanjutnya yang ditampilkan sebagai citra adalah nilai dari
D(u,v). Nilai D(u,v) ini akan memiliki dynamic range yang lebih kecil daripada |F(u,v)|.

Berikut ini adalah contoh gambar beberapa citra dengan spektrum Fouriernya.
3. Contoh Program Menggunakan Tranformasi Fourier Dengan Matlab
Fungsi pada matlab yang digunakan dalam program
 IMREAD
Fungsi ini berguna untuk membaca citra dari suatu file. Jika citra yang dibaca
memiliki format warna grayscale, fungsi ini akan menghasilkan array dua dimensi
yang berisi informasi intensitas grayscale dari citra tersebut. Fungsi ini mendukung
format BMP, JPEG, TIF, PNG, HDF, PCX, dan XWD.
 IMSHOW
Fungsi ini digunakan untuk menampilkan citra pada layar.
 IMWRITE
Fungsi ini digunakan untuk menyimpan citra ke dalam file. Fungsi ini
merupakan kebalikan dari fungsi IMREAD.
 FFT2
Fungsi ini digunakan untuk melakukan transformasi Fourier terhadap array 2
dimensi. Hasil yang diperoleh juga akan berbentuk array 2 dimensi.
 FFTSHIFT
Fungsi ini digunakan untuk melakukan pergeseran dari hasil transormasi
Fourier, sehingga memudahkan analisa visualisasi dari spektrum Fourier. Karena
spectrum Fourier bersifat periodik, pergeseran ini tidak akan berpengaruh pada citra
yang dihasilkan jika dilakukan inverse transformasi Fourier.
 IFFT2
Fungsi ini digunakan untuk melakukan inverse transformasi Fourier terhadap
array 2 dimensi. Hasil yang diperoleh juga akan berbentuk array 2 dimensi.

Langkah pertama yang dilakukan adalah membaca file citra yang akan diproses dan
menyimpan informasi graylevel dari semua pixelnya ke dalam sebuah matriks.
Perintah yang digunakan adalah:
nmfile = 'flo_nois.bmp';
img = imread(nmfile);

Selanjutnya dilakukan transformasi Fourier dan dilanjutkan dengan penggeseran


(shifting) hasil transformasi Fourier tersebut supaya hasil visualisasinya lebih mudah
diamati dan dianalisa. Untuk itu digunakan perintah:
% Transformasi Fourier dengan FFT
img_f = fft2(img);
img_fs = fftshift(img_f);

Setelah itu baru digunakan perintah imshow untuk menampilkan citra maupun
spektrum Fouriernya. Namun pada saat spektrum Fourier akan ditampilkan, karena
dynamic range dari spektrum Fourier sangat besar, lebih dulu dilakukan proses dengan
perintah berikut:
img_spectrum = log(1+abs(img_fs));

Proses ini akan memperkecil dynamic range sehingga dapat ditampilkan di layar
dengan lebih jelas dan lebih mudah untuk dianalisa. Untuk menghilangkan noise, lebih
dulu dibuat sebuah matriks h yang dimensinya sama dengan dimensi dari matriks untuk
menyimpan hasil transformasi Fourier, yaitu 256 x 256. Matriks h ini dinisialisasi dengan
diisi nilai satu pada setiap elemennya dengan menggunakan perintah:
h = ones(256);
Selanjutnya bagian tertentu dari matriks yang menunjukkan area dimana noise
berada pada spektrum Fourier citra diubah menjadi nol, dengan menggunakan
perintah:
% Memilih area frekuensi yang akan difilter
% untuk menghapus noise.
for ix = 1:256,
for iy = 1:256,
% Noise berasal dari frekuensi yang membentuk garis
% vertikal di bagian tengah spektrum.
% Nilai pada area ini akan dihilangkan dengan cara
% dikalikan 0.
if (iy > 127) & (iy < 130) & ((ix < 123) | (ix > 134))
h(ix,iy) = 0;
end
end
end

Perintah di atas hanya berlaku untuk noise yang ada pada citra yang digunakan oleh
penulis. Jika noise pada spektrum Fourier citra lainnya berada di area yang berbeda,
tentunya perintah di atas harus dimodifikasi angka-angkanya sehingga sesuai dengan
area noise pada spektrum Fourier yang akan dihilangkan.
Setelah bagian tertentu dari matriks tersebut diberi nilai nol, sedangkan yang
lainnya tetap bernilai satu, maka masing-masing elemen matriks tersebut dikalikan
dengan elemen-elemen yang bersesuaian dari matriks spektrum Fourier citra, dengan
perintah:
g = img_fs .* h;

Perkalian ini akan menghasilkan spektrum Fourier baru dimana area noise telah
hilang karena dikalikan dengan nol. Pada visualisasi spektrum Fourier hilangnya area
noise ini ditunjukkan dengan warna hitam di area tersebut.
Langkah berikutnya adalah melakukan inverse transformasi Fourier dari spectrum
Fourier yang baru untuk mendapatkan informasi citra kembali, dengan perintah:
hasil = uint8(abs(ifft2(g)));

Digunakannya uint8 adalah supaya informasi citra yang diperoleh memiliki tipe
data pixel 8-bit atau 256 graylevel, sehingga sama dengan citra asalnya.

Anda mungkin juga menyukai