• Tidak ada hasil yang ditemukan

e19df sessi 6 pengolahan citra frequensi

N/A
N/A
Protected

Academic year: 2017

Membagikan "e19df sessi 6 pengolahan citra frequensi"

Copied!
61
0
0

Teks penuh

(1)

PENGOLAHAN

CITRA DI KAWASAN

FREKUENSI

(2)

Domain Spasial vs Domain

Frekuensi

Domain Spasial

■ Konsep koordinat baris dan kolom

■ Pemrosesan pixel-by-pixel ■ Komputasi lama (terutama

citra dengan ukuran spasial tinggi)

Domain Frekuensi

■ Konsep frekuensi, perubahan intensitas piksel ke piksel

(frekuensi rendah dan tinggi) ■ Pemrosesan berdasarkan

pemilihan frekuensi yang akan difilter atau tidak

■ Komputasi relatif cepat (terutama citra dengan ukuran spasial tinggi)

(3)

Konsep Frekuensi dalam citra

■ Sembarang sinyal spasial mempunyai representasi frekuensi ■ Makna frekuensi dalam citra:

Komponen frekuensi tinggi dikaitkan dengan perubahan piksel ke piksel secara cepat sepanjang citra. Misal: teks, tekstur, dsb.

Komponen frekuensi tinggi dikaitkan dengan fitur berskala besar pada citra. Misal: daerah dengan intensitas konstan, atau piksel yang jumlahnya mendominasi dalam seluruh daerah citra.

(4)
(5)

Transformasi Fourier

■ Fungsi periodik dapat dinyatakan sebagai jumlah sinus dan/atau cosinus dar perbedaan frekuensi setiap perkaliannya dengan koefisien yang berbeda

(6)

Transformasi Fourier

■Fungsi yang tidak periodik tetapi dengan daerah kurva yang terbatas dapat dinyatakan sebagai integral sinus dan/atau cosinus dikalikan dengan fungsi bobot.

■Transformasi Fourier 1 dimensi:

6

(7)

Transformasi Fourier Diskrit

■ Karena citra adalah gelombang diskrit, maka fungsi f(x), x=0,1,…,M-1, untuk satu dimensi kita mendapatkan:

■ Formula Euler:

■ Sehingga didapatkan:

■ Untuk u = 0,…,M-1

■ f(x) adalah nilai intensitas setiap piksel

■ Nilai u adalah komponen dalam domain frekuensi

■ Setiap F(u) adalah nilai frekuensi dalam transformasi

(8)

Sebagai contoh, terdapat f(x) = (2, 4, 1, 5). Alihragam Fourier-nya seperti berikut.

= (f(0)(cos(0)-j sin(0)) + f(1)(cos()-j sin()) + f(2)(cos()-j sin()) + f(3)( (cos()-j sin())) / 4

= (f(0) + f(1) + f(2) + f(3)) / 4

= (2 + 4 + 1 + 5) / 4 = 12 / 4 = 3

= (f(0)(cos(0)-j sin(0)) + f(1)(cos()-j sin()) + f(2)(cos()-j sin()) + f(3)( (cos()-j sin())) / 4

= (2 (1-0) + 4(0-j) + 1(-1-0) + 5(0+j)) / 4 = (1+j)/4 = 0,25 + j0,25

(9)

 

= (f(0)(cos()-j sin()) + f(1)(cos()-j sin()) + f(2)(cos()-j sin()) + f(3)( (cos()-j sin())) / 4

= (2 (1-0) + 4(-1-0) + 1(1-0) + 5(-1-0) ) / 4 = -6 / 4 = -1,50

= (f(0)(cos(0)-j sin(0)) + f(1)(cos()-j sin()) + f(2)(cos()-j sin()) + f(3)( (cos()-j sin())) / 4 = (2 (1-0) + 4(0+j) + 1(-1-0) + 5(0-j) ) / 4 = (1 - j)/4

= 0,25 - j0,25

(10)

Adapun alihragam-baliknya berupa:  

dengan u = 0,1,2,…,N-1

Sebagai contoh, terdapat f(x) = (2, 4, 1, 5). Alihragam Fourier-nya seperti berikut.

= (f(0)(cos(0)-j sin(0)) + f(1)(cos()-j sin()) + f(2)(cos()-j sin()) + f(3)( (cos()-j sin())) / 4

= (f(0) + f(1) + f(2) + f(3)) / 4

(11)

Program : dft1d.m

function [Re, Im] = dft1d(Fx)

% DFT1D Digunakan untuk memperoleh DFT dimensi satu. % Hasil: Re berisi bagian real dan

% Im berisi bagian imajiner

(12)

Contoh penggunaan fungsi dft1d ditunjukkan di bawah ini. Perhatikan Fx perlu ditranspos.

>> Fx = [2,4,1,5]; 

>> [Re,Im] = dft1d(Fx)  Re =

(13)

Program : idft1d.m

function Fx = idft1d(Fu)

% IDFT1D Digunakan untuk melaksanakan transformasi balik % 1D DFT.

% Masukan: Fu berupa bilangan kompleks

n = length(Fu); % Jumlah nilai dalam fungsi Fu for u = 0 : n - 1

(14)

Berikut adalah contoh penggunaan DCT dan alihragam-baliknya:  

>> Fx = [2,4,1,5]; 

>> [Re,Im] = dft1d(Fx);  >> F = idft1d(Re+Im*j)  F =

(15)

Transformasi Fourier Diskrit 2-D

■Untuk citra 2 dimensi, DFT yang digunakan:

■Untuk u=0,…,M-1 and v=0,…,N-1 dan iDFT didefinisikan:

■Karena nilai FT adalah bilangan kompleks, kadang-kadang kita nyatakan F(u) dalam koordinat polar:

■Dimana jarak atau spektrum dinyatakan dengan:

■Sudut fase dnyatakan oleh:

(16)

Transformasi Fourier Diskrit 2-D

■ Untuk u=0, v=0, didapatkan:

■ Sama dengan rata-rata nilai intensitas.

■ Lokasi ini juga adalah titik origin pada domain frekuensi.

(17)

Program : dft2d.m

function [Re, Im] = dft2d(berkas)

% DFT2D Digunakan untuk memperoleh DFT dimensi dua. % Masukan: nama berkas berskala keabuan

(18)

Fungsi dft2d digunakan untuk mentransformasikan citra berskala keabuan. Contoh penggunaannya misalnya seperti berikut:

>> [Dr, Di] = dft2d(’C:\Image\lena128.png’); 

(19)

Fast Fourier Transform

■ Suatu metode bernama FFT (Fast Fourier Transform) dibuat untuk

mempercepat komputasi alihragam Fourier. Jika kompleksitas DFT untuk mentransformasikan sebuah piksel seperti yang tertuang dalam

implementasi di depan sebesar O(N2), FFT memiliki kompleksitas sebesar O(N

log2 N). Sebagai pembanding, jika N sama dengan 256 maka N2 sama dengan

65.536, sedangkan N log2 N menghasilkan 256 x 8 atau 2048. Jadi, FFT lebih

cepat 32 kali dibandingkan DFT untuk ukuran citra seperti itu. Pada alihragam berdimensi dua, penghematan waktu akan lebih terasa

■ Peluang adanya penghematan waktu komputasi dapat dilukiskan untuk citra N=8. Nilai untuk u dan x sama dengan 0,1,2,3,4,5,6,7 dengan nilai real

(20)

Visualisasi Pemrosesan FFT

■ Sebagaimana telah dibahas di depan, alihragam Fourier menghasilkan

bilangan kompleks. Terkait dengan hal itu, terdapat definisi spektrum Fourier seperti berikut:

■ dengan R(u,v) menyatakan bagian real dan I(u,v) menyatakan bagian imajiner. Adapun sudut fase transformasi didefinisikan sebagai:

 

■ Selain itu, terdapat pula istilah power spectrum atau spektrum daya, yang didefinisikan sebagai kuadrat besaran:

(21)

■ Untuk kepentingan analisis secara visual, spektrum dan sudut fase Fourier dapat disajikan dalam bentuk gambar. Berikut adalah contoh untuk

melakukan transformasi citra lena256.tif dan kemudian menyajikan spektrum.

 

>> Img = imread(’C:\Image\lena256.tif’);  >> F = fft2(Img); 

(22)
(23)

■ Mengingat nilai dalam spektrum terlalu lebar, penerapan logaritma biasa

digunakan hanya untuk kepentingan visualisasi. Sebagai contoh, Gambar (c) diperoleh melalui:

 

>> S2 = log(1 + abs(F));  >> imshow(S2, []); 

 

■ Penambahan angka 1 dimaksudkan untuk menghindari terjadinya log(0). ■ Hasil pada Gambar (c) menunjukkan keadaan yang seperti berulang yang

(24)
(25)

■ Hal seperti itu dapat dikerjakan dengan menggunakan fungsi fftshift. Kegunaan fungsi fftshift adalah untuk mengatur agar komponen frekuensi nol diletakkan di tengah-tengah spektrum. X =

(26)

Penukaran kuadran melalui fftshift

Contoh berikut menunjukkan efek penukaran fftshift pada hasil transformasi Fourier:

>> G = fftshift(F); 

>> imshow(log(1+abs(G)),[]) 

>>

(27)

Penapisan pada Kawasan Frekuensi

■ Menurut teorema konvolusi, 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

(28)
(29)

■ Adapun contoh berikut menunjukkan pemakaian zero padding. >> Fs = imread('C:\Image\kotatua.tif'); 

>> Hs = fspecial('sobel');  >> size(Fs) 

>> F = real(ifft2(G)); 

(30)
(31)

Program : filterdft.m

function F = filterdft(berkas, H)

% FILTERDFT Digunakan untuk melaksanakan pemfilteran % pada kawasan frekuensi menggunakan FFT.

% Masukan:

[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));

(32)

■ Contoh penggunaan fungsi filterdft: >> H = fspecial(’sobel’); 

(33)

Source code FFT satu dimensi dalam matlab dapat dilihat sebagai berikut:

Image=imread('cameraman.tif');

[ImageHeight ImageWidth]=size(Image); X=fft(Image);

Y=ifft(X);

imshow([Image X uint8(Y)]);

sedangkan source code FFT dua dimensi dalam matlab dapat dilihat sebagai berikut:

Image=imread('cameraman.tif');

[ImageHeight ImageWidth]=size(Image); X=fft2(Image);

Y=ifft2(X);

(34)
(35)

Filter Lolos-Rendah

Filter lowpass adalah flter yang mengubah (menurunkan) komponen frekuensi tnggi, dan

melewatkan (passing) komponen frekuensi rendah. Citra yang diflter menggunakan flter lowpass memiliki detail yang kurang tajam dibandingkan citra asal.

■ Filter ini berguna untuk menghaluskan derau atau untuk kepentingan interpolasi tepi objek dalam citra.

(36)

Filter lolos-rendah

Jenis filter lolos-rendah pada kawasan frekuensi yang paling sederhana adalah yang dinamakan ILPF (Ideal Low Pass Filter). Filter ini memiliki fungsi transfer seperti berikut:

Dalam hal ini, D0 adalah bilangan non-negatif yang biasa disebut radius filter, yang menentukan ambang frekuensi, dan D(v,u) adalah jarak antara (v,u) terhadap pusat filter, yang dinyatakan dengan

(37)
(38)
(39)
(40)

Program : ilpf.m

function F = ilpf(berkas, d0)

% ILPF Digunakan untuk melaksanakan pemfilteran

% pada kawasan frekuensi menggunakan ILPF.

[a, b] = size(Fs); %Peroleh ukuran citra

% Menentukan ukuran baru untuk perluasan citra

r = nextpow2(2 * max(a, b)); p = 2 ^ r;

q = p;

% Menentukan jangkauan frekuensi u dan v u = 0:(p - 1);

v = 0:(q - 1);

% Hitung indeks untuk meshgrid idx = find(u > q/2);

u(idx) = u(idx) - q;

idy = find(v > p/2); v(idy) = v(idy) - p;

% Peroleh array meshgrid [V, U] = meshgrid(v, u);

% Hitung jarak D(v,u) D = sqrt(V.^2 + U.^2);

% Hitung frekuensi ambang sebesar d0 kalai lebar citra

(41)

% Peroleh fungsi transfer Hf = double(D <= ambang);

% Transformasi via FFT dengan zero padding Ff = fft2(Fs, p, q);

% Pemfilteran G = Hf .* Ff;

% Transformasi balik F = real(ifft2(G));

(42)

■ Contoh pemakaian fungsi ilpf:

>> F = ilpf('C:\Image\kotatua.tif', 0.08); imshow(F) 

(43)

■ BLPF (Butterworth low pass filter) merupakan jenis filter lolos-rendah yang digunakan untuk memperbaiki efek bergelombang yang dikenal dengan

sebutan ringing, yang diakibatkan oleh ILPF. Berbeda dengan ILPF, BLPF tidak memiliki titik diskontinu yang tajam. Fungsi transfernya berupa

(44)

Program : blpf.m

function F = blpf(berkas, d0, n)

% BLPF Digunakan untuk melaksanakan pemfilteran % pada kawasan frekuensi menggunakan BLPF. % Masukan:

% Menentukan ukuran baru untuk perluasan citra

r = nextpow2(2 * max(a, b)); p = 2 ^ r;

q = p;

% Menentukan jangkauan frekuensi u dan v

u = 0:(p - 1); v = 0:(q - 1);

% Hitung indeks untuk meshgrid idx = find(u > q/2);

u(idx) = u(idx) - q;

idy = find(v > p/2); v(idy) = v(idy) - p;

% Peroleh array meshgrid [V, U] = meshgrid(v, u);

(45)

% Menentukan n kalau n tidak disebutkan if nargin == 2

n = 1; end

ambang = d0 * p; % Hitung frekuensi ambang Hf = 1 ./ (1 + D ./ ambang^(2 * n));

% Transformasi via FFT dengan zero padding Ff = fft2(Fs, p, q);

% Pemfilteran G = Hf .* Ff;

% Transformasi balik F = real(ifft2(G));

(46)

■ Contoh pemakaian fungsi blpf:

>> F = blpf('C:\Image\kotatua.tif', 0.02, 0.3 );  >> imshow(F) 

(47)
(48)

■ GLPF (Gaussian low pass filter) merupakan filter lolos-rendah dengan fungsi transfer seperti berikut:

dengan merupakan deviasi standar. Sebagai contoh, dengan menggunakan sama dengan Do maka

(49)

Program : glpf.m

function F = glpf(berkas, d0)

% GLPF Digunakan untuk melaksanakan pemfilteran % pada kawasan frekuensi menggunakan GLPF. % Masukan:

% Menentukan ukuran baru untuk perluasan citra

r = nextpow2(2 * max(a, b)); p = 2 ^ r;

q = p;

% Menentukan jangkauan frekuensi u dan v

u = 0:(p - 1); v = 0:(q - 1);

% Hitung indeks untuk meshgrid idx = find(u > q/2);

u(idx) = u(idx) - q; idy = find(v > p/2); v(idy) = v(idy) - p;

% Peroleh array meshgrid [V, U] = meshgrid(v, u);

% Hitung jarak D(v,u) D = sqrt(V.^2 + U.^2);

% Menentukan n kalau n tidak disebutkan

if nargin == 2 n = 1;

(50)

ambang = d0 * p; % Hitung frekuensi ambang Hf = exp(-(D.^2) ./ (2 * ambang ^ 2));

% Transformasi via FFT dengan zero padding Ff = fft2(Fs, p, q);

% Pemfilteran G = Hf .* Ff;

% Transformasi balik F = real(ifft2(G));

(51)

Contoh pemakaian fungsi di glpf:

>> F = glpf('C:\Image\kotatua.if', 0.05);  >> imshow(F) 

(52)

Filter Lolos-Tinggi

Filter highpass adalah flter yang mengubah (menurunkan) komponen frekuensi rendah, dan

melewatkan (passing) komponen frekuensi tnggi. Citra yang diflter menggunakan flter highpass memiliki detail yang lebih tajam dibandingkan citra asal.

■ Filter ini memiliki hubungan dengan filter lolos-rendah seperti berikut:

■ Dengan Hlt(v,u) adalah fungsi transfer filter lolos-tinggi dan Hlf(v,u) adalah fungsi transfer filter lolos-rendah.

■ Tiga jenis filter lolos-tinggi dilihat di Tabel. Ketiga filter yang tercantum dalam tersebut yaitu IHPF (Ideal high pass filter), BHPF (Butterworth high pass

(53)
(54)

Program : bhpf.m

function F = bhpf(berkas, d0, n)

% BHPF Digunakan untuk melaksanakan pemfilteran % pada kawasan frekuensi menggunakan BHPF. % Masukan:

% Menentukan ukuran baru untuk perluasan citra

r = nextpow2(2 * max(a, b)); p = 2 ^ r;

q = p;

% Menentukan jangkauan frekuensi u dan v

u = 0:(p - 1); v = 0:(q - 1);

% Hitung indeks untuk meshgrid idx = find(u > q/2);

u(idx) = u(idx) - q; idy = find(v > p/2); v(idy) = v(idy) - p;

% Peroleh array meshgrid [V, U] = meshgrid(v, u);

% Hitung jarak D(v,u) D = sqrt(V.^2 + U.^2);

% Menentukan n kalau n tidak disebutkan if nargin == 2

(55)

ambang = d0 * p; % Hitung frekuensi ambang

Hlr = 1 ./ (1 + (D ./ ambang) .^(2 * n)); % Lolos-rendah Hlt = 1 - Hlr; % Lolos-tinggi

% Transformasi via FFT dengan zero padding Ff = fft2(Fs, p, q);

% Pemfilteran G = Hlt .* Ff;

% Transformasi balik F = real(ifft2(G));

(56)

■ Contoh pemakaian fungsi blpf:

>> F = bhpf('C:\Image\goldhill.tif', 0.005, 1 );  >> imshow(F) 

Pemfilteran dengan BHPF

(57)

Pemfilteran dengan Pendekatan High Frequency Emphasis

■ Penerapan filter lolos-tinggi dengan cara yang telah dibahas menimbulkan efek berupa hilangnya latarbelakang. Hal ini disebabkan pemfilteran dengan cara tersebut menghilangkan komponen DC (F(0,0)).

■ Nah, untuk mengatasi hal itu, terdapat pendekatan yang dinamakan pemfilteran high frequency emphasis (HFE). Dalam hal ini, penonjolan frekuensi tinggi diatur melalui rumus:

■ Dalam hal ini,

Hlt adalah fungsi transfer filter lolos-tinggi;

a adalah nilai ofset, sebagai penambah nilai rerata intensitas;b adalah nilai pengali, untuk meningkatkan kontras.

■ Gonzales, dkk. (2004) menunjukkan bahwa penggunaan a sebesar 0,5 dan b sebesar 2 memberikan hasil yang memuaskan pada citra medis.

(58)

function F = hfe(berkas, d0, n)

% HFE Digunakan untuk melaksanakan pemfilteran % pada kawasan frekuensi menggunakan BHPF % dan menerapkan HFE (High frequency emphasis). % Masukan:

[a, b] = size(Fs); %Peroleh ukuran citra

% Menentukan ukuran baru untuk perluasan citra r = nextpow2(2 * max(a, b));

p = 2 ^ r; q = p;

% Menentukan jangkauan frekuensi u dan v u = 0:(p - 1);

v = 0:(q - 1);

% Hitung indeks untuk meshgrid idx = find(u > q/2);

u(idx) = u(idx) - q; idy = find(v > p/2); v(idy) = v(idy) - p;

% Peroleh array meshgrid [V, U] = meshgrid(v, u);

% Hitung jarak D(v,u) D = sqrt(V.^2 + U.^2);

% Menentukan n kalau n tidak disebutkan if nargin == 2

n = 1; end

(59)

ambang = d0 * p; % Hitung frekuensi

(60)

■ Contoh penggunaan fungsi hfe:

>> F = hfe('C:\Image\goldhill.tif', 0.05, 1 );  >> imshow(F) 

Hasil penerapan high frequency emphasis

(61)

Latihan

1. Berikan beberapa contoh transformasi yang mengalihkan ke kawasan frekuensi. 2. Terdapat data seperti berikut:

 

f(x) = (3, 4, 4, 5)  

Hitunglah transformasi Fourier F(0) hingga F(3). 3. Jelaskan maksud istilah berikut.

■ Spektrum Fourier

■ Spektrum daya (power spectrum)

4. Apa yang Anda ketahui mengenai FFT? 5. Apa kegunaan fungsi fftshift?

6. Jelaskan yang dimaksud dengan istilah berikut. ■ Filter lolos-rendah

Gambar

Gambar (b) menunjukkan bahwa penerapan BHPF pada citra membuat latarbelakang menjadi hampir hilang, karena nilai intensitas reratanya hilang (menjadi nol).

Referensi

Dokumen terkait

Memenuhi Seluruh penerimaan kayu bulat CV Intraco dilengkapi dengan dokumen jual beli/nota atau kontrak suplai dan dokumen angkutan hasil hutan yang sah sesuai izin

Tujuan dari penelitian ini adalah untuk mengetahui peran Perpustakaan Desa Ngudi Kawruh dalam menarik pengguna perpustakaan, dan hambatan- hambatan yang dihadapi oleh

=ukan soal bagaimana film ini bisa menampilkan kepingankepingan fragmen yang inspiratif saa, melainkan pesan yang ingin disampaikan dari film ini, yang diambil dari kisah

Pada dasarnya, lahan gambut dengan pengelolaan yang baik (mela lui best management practices) dapat me mbe rikan da mpak positif terhadap peningkatan pendapatan dan

KI 4 4 Melaksanakan Melaksanakan tugas sp tugas spesifik, esifik, dengan dengan menggunakan menggunakan alat, alat, informasi, informasi, dan dan prosedur

Salah satu azas penyelenggaran Upaya kesehatan masyarakat pada Promosi Kesehatan di Puskesmas Akreditasi adalah melalui Advokasi yaitu upaya atau proses yang

Berdasarkan model di atas, maka dapat dikatakan bahwa penggunaan web terhadap kepuasan aktivitas belajar bagi pengguna wanita variabel Performance Expectancy (PE) yang

sebelumnya, maka peneliti menarik kesimpulan sebagai berikut kemampuan komunikasi matematis siswa yang diajar dengan menggunakan model pembelajaran kooperatif tipe