PENGOLAHAN CITRA DIKAWASAN FREKUENSI - andyusuf-informatika

New Post

Kamis, 08 Juni 2017

PENGOLAHAN CITRA DIKAWASAN FREKUENSI




1. Pengolahan Citra Dikawasan Spasial Dan Kawasan Frekuensi


Citra dapat ditransformasikan dikawasan spasial maupun di kawasan frekuensi. Dua cara untuk melakukan transformasi citra ditunjukkan pada Gambar dibawah ini. Sejumlah contoh transformasi dikawasan spasial atau keruangan telah dibahas dipembahasan sebelumnya. Namun, sebagai alternatif citra perlu diproses dikawasan frekuensiagar penentuan daerah frekuensinya dapat lebih ketat dan tepat. Untuk itu diperlukan pasangan transformasi dan transformasi-balik sebelum dan sesudah penapisan.

Gambar transformasi citra dapat diproses melalui kawasan spasial maupun frekuensi

Catatan:









Salah satu alih ragam yang biasa dipakai dikawasan frekuensi adalah alih ragam Fourier. Sejak algoritma alihragam Fourier ditemukan, telah bermunculan pula macam-macam alihragam yang lain, seperti transformasi gelombang-singkat (wavelet), transformasi Radon, dan DCT (Discrete Cosine Transform).


2. Alihragam Fourier


Alihragam Fourier (Fourier transform) merupakan salah satu jenis alihragam kekawasan frekuensi yang banyak dipakai padapengolahan citra. Alih ragam ini dimanfaatkan untuk memetakan citra dari kawasan spasial ke dalam kawasan frekuensi. Disamping untuk melihat karakteristik spektrum citra, juga menjadi bagian pemrosesannya. Citra dapat diamati sebagai kumpulan  gelombang sinusoid dengan frekuensi, amplitudo, dan faseyang berbeda-beda. Meskipun pada zaman sekarang terdapat berbagai alihragam sebagai alternatif alihragam Fourier, konsep yang mendasari alihragam Fourier perlu dimengerti.Lagi pula, beberapa pemrosesan masih bertumpu pada alihragam Fourier.

Berdasarkan temuan ahli fisika dari Prancis bernama Baptiste Joseph Fourier (1768-1830), semua fungsi yang bersifat periodis, betapapun kompleks fungsi tersebut, dapat dinyatakan sebagai penjumlahan sinusoid. Kuncinya terletak pada komposisi amplitude dan fase sinus setiap frekuensi. Begitu pula pada citra.Sebagai gambaran, suatu isyarat berdimensi satu pada Gambar dibawah berikut (a) dapat disusun atas tiga gelombang sinusoid seperti terlihat pada Gambar berikut



Gambar contoh isyarat yang tersusun atas tiga sinosoid


3. Penapisan Pada Kawasan Frekuensi

Sebagai mana telah diutarakan pada Gambar diatas, penapisan dapat dilakukan pada kawasan frekuensi. Menurut teoremakonvolusi, konvolusi pada kawasan frekuensi dapat dilakukan dengan mengalikan F(v, u) dengan H(v,u) (Gonzalez, dkk., 2004). Dalam hal ini, H(v,u) dinamakan sebagai fungsi transfer filter dan diperoleh melalui pengenaan DFT terhadap h(y,x), yang merupakan kernel konvolusi pada kawasan spasial.

Satu hal yang perlu diperhatikan pada kawasan frekuensi, penapisan dapat menimbulkan problem akibat konvolusi. Problem yang dimaksud dikenal dengan nama wraparound error atau spatial aliasing error (Bovik, 2009). Hal ini disebabkan pada kawasan frekuensi terdapat fungsi periodis (yang berulang setelah jarak tertentu) yang membuat gambar akan diulang (seperti efek pengubinan) dan akibatnya membuat interferensi pada konvolusi. Gambar dibawah ini (a) menunjukkan dua citra yaitu f dan h.Adapun Gambar dibawah (b) menunjukkan operasi konvolusi pada koordinat (m, n). Berdasarkan Gambar dibawah (b), piksel (m, n) dihitung sebagai penjumlahan atas perkalian antara piksel dif dan h. Hasilnya tentu saja mengandung kesalahan yaitu ketika perkalian antara f dan h yang berulang ikut dijumlahkan.






Gambar problem wraparound error


Untuk mengatasi wraparound error, fungsi f dan h dimodifikasi dengan cara memperbesar ukurannya dan bagian yang diperluas diisi dengan nol. Cara perluasan ukuran dan pemberian nilai nol seperti itu dinamakan sebagai zero padding. Gambar dibawah ini (a) menunjukkan keadaan setelah zero padding dikenakan pada citra f dan h. Adapun Gambar dibawah (b) menunjukkan bahwa konvolusi pada suatu koordinat piksel tidak lagi mengandung wraparound error.

Gambar efek zero padding pada konvolusi pengulangan

Gonzales, dkk. (2004) menjelaskan cara menentukan ukuran baruuntuk citra f dan h. Misalkan, f berukuran axb dan h berukuran cxd. Kedua fungsi tersebut diperluas menjadi berukuran pxq. Maka, ukuran untuk p dan q harus memenuhi

p>a+ c-1

dan

q>b+ d-1

Apabila menggunakan FFT, nilai p dan q dipilih sehingga memenuhi

2r

dengan r adalah bilangan bulat. Dalam praktik, nilai p dan q acap kali dibuat sama, yaitu sebesar r. Dengan kata lain, nilair harus memenuhi persamaan berikut:

 2r>a+ c-1

dan

2r>b+ d-1

Dengan asumsi bahwa ukuran citra f jauh lebih besar daripada citra h, satu pendekatan yang biasa dilakukan untuk memperoleh nilai p dan q untuk kepentingan zero padding menggunakan algoritma seperti berikut.




Catatan:








Adapun contoh berikut menunjukkan pemakaian zero padding.

>> Fs = imread('C:\Image\kotatua.png');
>> Hs = fspecial('sobel');
>> size(Fs)
ans =

747500

>> Ff = fft2(Fs, 512, 512);
>> Hf = fft2(Hs, 512, 512);
>> G = Hf .* Ff;
>> F = real(ifft2(G));
>> Fx = F(1:250,1:250);
>> imshow(uint8(Fx))

Pada contoh di atas, pengaturan 512 didasarkan pada perhitungan untuk zero padding seperti yang telah dibahas di depan, mengingat ukuran citra berupa 250x250. Pada perintah di atas,

Fx = F(1:250, 1:250);

digunakan untuk mengambil citra seperti ukuran citra semula. Gambar dibawah ini menunjukkan contoh citra yang diproses dan hasil pemfilteran.

Gambar contoh pemilteran dengan filter sobel pada kawasan frekuensi

Catatan:














Skrip berikut ditujukan untuk memudahkan dalam menangani penapisan pada kawasan frekuensi melalui FFT.

 function F = filterdft(berkas, H)
% FILTERDFT Digunakan untuk melaksanakan pemfilteran
% pada kawasan frekuensi menggunakan FFT.
% Masukan:
% berkas - nama citra
% H - kernel pada kawasan spasial
% Keluaran:
% F - citra yang telah difilter

Fs = double(imread(berkas));
[a, b] = size(Fs); %Peroleh ukuran citra
% Menentukan ukuran baru untuk perluasan citra
r = nextpow2(2 * max(a, b));
p = 2 ^ r;
q = p;
% Transformasi via FFT dengan zero padding
Ff = fft2(Fs, p, q);
Hf = fft2(H, p, q);
% Konvolusi
G = Hf .* Ff;
% Peroleh citra hasil pemfilteran
F = real(ifft2(G));
F = uint8(F(1:a, 1:b));

 


Contoh penggunaan fungsi filterdft:
>> H = fspecial(’sobel’);
>> F=filterdft('C:\Image\kotatua.png', H);
>> imshow(F)


Terima Kasih dan Semangat Belajar

Tidak ada komentar:

Posting Komentar