• Tidak ada hasil yang ditemukan

TEKNIK PENGOLAHAN CITRA. Kuliah 9 Filtering in Frequency Domain. Indah Susilawati, S.T., M.Eng.

N/A
N/A
Protected

Academic year: 2021

Membagikan "TEKNIK PENGOLAHAN CITRA. Kuliah 9 Filtering in Frequency Domain. Indah Susilawati, S.T., M.Eng."

Copied!
17
0
0

Teks penuh

(1)

1

TEKNIK PENGOLAHAN CITRA

Kuliah 9 – Filtering in Frequency Domain

Indah Susilawati, S.T., M.Eng.

Program Studi Teknik Informatika

Program Studi Sistem Informasi

Fakultas Teknik dan Ilmu Komputer

Universitas Mercu Buana Yogyakarta

(2)

2

KULIAH 9

TEKNIK PENGOLAHAN CITRA

FILTERING IN FREQUENCY DOMAIN

(PENAPISAN DI DOMAIN FREKUENSI)

Ideal Filtering: Low Pass Filtering

Misal diketahui suatu matriks hasil transformasi Fourier yang telah digeser sehingga koefisien DC-nya berada di pusat matriks. Oleh karena komponen frekuensi rendah berada di pusat matriks, maka low pass filtering dapat dilakukan dengan mengalikan matriks tersebut dengan suatu matriks sedemikian sehingga nilai-nilai yang berada di pusat matriks dipertahankan, dan nilai-nilai yang jauh dari pusat dihilangkan atau diminimalkan. Salah satu cara untuk melakukan hal ini adalah dengan mengalikannya dengan suatu matriks low pass ideal yang didefinisikan sebagai berikut.

    D daripada jauh lebih pusat ke y x titik jarak jika D daripada dekat lebih pusat ke y x titik jarak jika y x m ) , ( , 0 ) , ( , 1 ) , (

Misalnya adalah dengan lingkaran dengan radius D = 15 (seperti yang digunakan pada pertemuan yang lalu).

[x,y] = meshgrid(-128:127, -128: 127) z = sqrt(x.^2 + y.^2)

c = (z<15) imshow (c)

Sebuah lingkaran dengan D = 15

(3)

3 Maka IDFT dari perkalian yang terjadi dapat dinyatakan sbb.

Berikut adalah contoh low pass filtering dalam domain frekuensi.

clear all; clc;

% --- % Membaca citra dan melakukan transformasi Fourier % Menggeser koefisien DC ke pusat matriks

%

---I = imread ('einstein.jpg'); If = fft2(I);

If = fftshift(If);

% --- % Membuat filter low pass berupa lingkaran dengan % radius D = 15 % ---[x,y] = meshgrid(-128:127, -128: 127) z = sqrt(x.^2 + y.^2) c = (z<15) % --- % Mengalikan matriks hasil transf. Fourier dengan % filter low pass

% Dalam Matlab .* adalah perkalian element-wise % antara dua matriks

%

---If_low = If.*c;

% --- % Melakukan IDFT pada hasil filtering

%

---If_low_inv = ifft2(If_low);

% --- % Menampilkan hasil

%

---subplot (2,2,1), imshow (I) subplot (2,2,2), fftshow (If) subplot (2,2,3), imshow (c)

(4)

4

citra asli DFT citra

Filter low pass Citra hasil filtering

Dengan menggunakan citra yang lain, tampak sbb.

citra asli DFT citra

(5)

5 Pada citra hasil filtering dengan LPF tampak efek yang disebut “ringing”. Hal ini disebabkan oleh cutoff yang tajam pada lingkaran. Semakin kecil lingkaran yang digunakan sebagai filter, maka citra hasil filtering akan semakin kabur (blurr), dan sebaliknya semakin besar lingkaran maka semakin berkurang tingkat ke-kabur-an pada citra hasil filtering. Dua gambar berikut menunjukkan hasil filtering dengan D=5 dan D=30.

D = 5

citra asli DFT citra

Filter low pass Citra hasil filtering

---

D = 30

citra asli DFT citra

(6)

6 Ideal Filtering: High Pass Filtering

High Pass Filtering dapat dilakukan dengan cara yang berkebalikan dengan cara

yang dilakukan pada How Pass Filtering, yaitu dengan menghilangkan elemen-elemen (nilai-nilai) pada pusat matriks dan mempertahankan nilai-nilai yang lain. Secara sederhana hal ini dapat dilakukan dengan membuat lingkaran yang berkebalikan dengan yang digunakan pada low pass filtering yaitu lingkaran hitam dengan latar belakang putih.     D daripada jauh lebih pusat ke y x titik jarak jika D daripada dekat lebih pusat ke y x titik jarak jika y x m ) , ( , 1 ) , ( , 0 ) , (

Misalnya adalah dengan lingkaran dengan radius D = 15

[x,y] = meshgrid(-128:127, -128: 127) z = sqrt(x.^2 + y.^2)

c = (z>15) imshow (c)

Sebuah lingkaran dengan D = 15

Berikut adalah contoh high pass filtering dalam domain frekuensi, menggunakan filter

(7)

7 D = 15

citra asli DFT citra

Filter high pass Citra hasil filtering

---

D = 5

citra asli DFT citra

(8)

8 D = 30

citra asli DFT citra

Filter high pass Citra hasil filtering

---

Semakin besar cutoff maka semakin banyak bagian yang dihilangkan dari matriks hasil transformasi; artinya hanya frekuensi-frekuensi tertinggi saja yang tertinggal, hal ini terlihat pada hasil restorasi citra dimana hanya tebing-tebing citra (edges) saja yang tampak. Jika cutoff kecil, maka hanya frekuensi-frekuensi terendah saja yang dihilangkan, hasil restorasi masih tampak terdapat aras keabuan.

Filter Butterworth

Ideal filtering secara sederhana memotong matriks hasil transformasi Fourier

pada jarak tertentu dari pusat matriks. Cara ini memang mudah diimplementasikan namun ada kekurangannya, yaitu menimbulkan efek “ringing” pada citra hasil akhirnya (hasil restorasi atau hasil IDFT). Cara untuk mengatasi kekurangan ini adalah dengan menggunakan matriks filter yang berupa lingkaran dengan cutoff yang tidak terlalu tajam. Jenis filter semacam ini salah satunya adalah filter Butterworh.

Filter low pass dan high pass yang ideal dapat dinyatakan dengan fungsi sebagai berikut.

(9)

9        D r jika D r jika r f LPF , 0 , 1 ) (        D r jika D r jika r f HPF , 0 , 1 ) (

Dengan r adalah jarak dari pusat matriks dan D adalah jarak cutoff. Fungsi-fungsi ini diilustrasikan pada gambar berikut.

Fungsi-fungsi filter Butterworth didasarkan pada persamaan-persamaan berikut. Untuk LPF n

D

r

r

f

2

)

/

(

1

1

)

(

Untuk HPF n

r

D

r

f

2

)

/

(

1

1

)

(

Dengan parameter n adalah orde dari filter, orde menentukan ketajaman cutoff dari filter yang dibuat. Berikut ilustrasi grafis fungsi filter Butterworth dengan n = 2 dan n = 4.

(10)

10

Fungsi filter Butterworth dengan n = 2

Fungsi filter Butterworth dengan n = 4

Salah satu variasi dari fungsi filter Butterworth LPF adalah yang dinyatakan dengan persamaan berikut.

n

D

r

C

r

f

2

)

/

(

1

1

)

(

Dengan C adalah suatu konstanta. Pada persamaan yang dinyatakan sebelumnya adalah kasus jika diambil C = 1, sehingga saat r = D maka magnitude f(r) = 0,5. Nilai konstanta lain yang juga sering dipakai adalah C = 0,414, sehingga saat r = D maka nilai magnitude f(r) = 1/2. Berikut akan diberikan contoh membangun filter Butterworth LPF dengan C = 0,414 dan opsi masukan citra, jarak cutoff, dan orde filter.

(11)

11

function out = Lbutter(im, d, n)

% ---% Lbutter (im, d, n) membentuk filter Butterworth LPF

% ukuran filter sama dengan ukuran citra im % cutoff adalah d

% orde filter adalah n % sintaks:

% im = imread ('cameraman.tif'); % low = Lbutter (im, 25, 2);

%

---height = size (im, 1); width = size (im, 2);

[x, y] = meshgrid (-floor(width/2): floor((width-1)/2):...

-floor(height/2):floor((height-1)/2));

out = 1./(1+(sqrt(2)-1)*((x.^2 + y.^2)/d^2).^n);

Filter Butterworth HPF dapat dibangun dengan mengurangkan LPF-nya dari 1, sehingga dapat dibuat fungsinya dengan mudah ( HPF = 1 – LPF ).

function out = Hbutter(im, d, n)

% ---% Hbutter (im, d, n) membentuk filter Butterworth HPF

% ukuran filter sama dengan ukuran citra im % cutoff adalah d

% orde filter adalah n % sintaks:

% im = imread ('cameraman.tif'); % low = Hbutter (im, 25, 2);

%

---out = 1 - Lbutter (im, d, n);

Berikut contoh filtering dengan filter Butterworth LPF dan menggunakan fungsi-fungsi di atas. clear all; clc; % ---I = imread ('cameraman.tif'); If = fft2(I);

(12)

12 If = fftshift(If); % ---lb = Lbutter (If, 15, 1); % ---If_lb = If.*lb; % ---If_lb_inv = ifft2(If_lb); %

---subplot (2,2,1), imshow (I) title ('citra asli')

subplot (2,2,2), fftshow (If) title ('DFT citra')

subplot (2,2,3), imshow (lb) title ('Filter low pass')

subplot (2,2,4), fftshow (If_lb_inv, 'log') title ('Citra hasil filtering')

citra asli DFT citra

Filter low pass Citra hasil filtering

(13)

13

citra asli DFT citra

Filter high pass Citra hasil filtering

Jika digunakan n = 2 dan opsi „abs‟ fungsi fftshow, hasilnya sebagai berikut.

citra asli DFT citra

(14)

14 Gaussian Filtering

Filter Gaussian juga dapat dilakukan dalam domain frekuensi, yaitu untuk low

pass filtering. Implementasinya sama dengan yang dilakukan pada proses sebelumnya,

yaitu membangun filter Gaussian, mengalikannya dengan matriks hasil transformasi Fourier, dan menginversikan hasilnya. Filter Gaussian merupakan jenis filter yang “paling smooth” dan filter ideal merupakan filter yang “paling tidak smooth”. Sedangkan filter Butterworth berada di antara keduanya.

Contoh clear all; clc; % ---I = imread ('cameraman.tif'); If = fft2(I); If = fftshift(If); % ---g1 = fspecial('gaussian', 256, 10); g1 = mat2gray(g1); Ifg1 = If.*g1; Ifg1_inv = ifft2(Ifg1); % ---g2 = fspecial('gaussian', 256, 30); g2 = mat2gray(g2); Ifg2 = If.*g2; Ifg2_inv = ifft2(Ifg2); %

---subplot (2,2,1), fftshow (Ifg1,'log') title ('std = 10')

subplot (2,2,2), fftshow (Ifg1_inv, 'abs') title ('Citra hasil')

subplot (2,2,3), fftshow (Ifg2, 'log') title ('std = 30')

subplot (2,2,4), fftshow (Ifg2_inv, 'abs') title ('Citra hasil')

Keterangan:

(15)

15

std = 10 Citra hasil

std = 30 Citra hasil

Dengan cara yang serupa, dapat dibangun filter Gaussian high pass dengan mengurangkan filter Gaussian low pass dari satu (HPF = 1 – LPF).

Contoh clear all; clc; % ---I = imread ('cameraman.tif'); If = fft2(I); If = fftshift(If); % ---g1 = fspecial('gaussian', 256, 10); g1 = mat2gray(g1); h1 = 1 - g1; Ifh1 = If.*h1;

(16)

16 Ifh1_inv = ifft2(Ifh1); % ---g2 = fspecial('gaussian', 256, 30); g2 = mat2gray(g2); h2 = 1 - g2; Ifh2 = If.*h2; Ifh2_inv = ifft2(Ifh2); %

---subplot (1,2,1), fftshow (Ifh1_inv, 'abs') title ('Menggunakan std = 10')

subplot (1,2,2), fftshow (Ifh2_inv, 'abs') title ('Menggunakan std = 30')

Menggunakan std = 10 Menggunakan std = 30

Tugas

1. Buatlah citra wajah seseorang yang anda kenal dengan kamera digital. Bereksperimenlah dengan menerapkan transformasi Fourier pada citra tersebut dan kemudian terapkan filter ideal (low pass dan high pass). Berapa radius terkecil dari LPF sehingga anda masih bisa mengenali wajahnya?

2. Buatlah citra wajah seseorang yang anda kenal dengan kamera digital. Bereksperimenlah dengan menerapkan transformasi Fourier pada citra tersebut dan kemudian terapkan filter Butterworth (low pass dan high pass). Berapa radius terkecil dari LPF sehingga anda masih bisa mengenali wajahnya?

(17)

17 3. Carilah formula untuk membangun filter Gaussian dan kemudian buatlah coding-nya untuk membuat fungsi filter Gaussian dari formula tersebut. Kemudian lakukan

filtering yang sama dengan coding pada halaman 14 namun menggunakan fungsi

Referensi

Dokumen terkait

Model Organisasi sektor publik tradisional sangat didominasi organsiasi birokrasi. Model organisasi birokrasi yang dikembangkan oleh Max weber itu pada awalnya sangat

Pertama, ukuran kolom (atau balok) pada bangunan rendah pada umumnya kecil, sehingga tidak dapat memobilisasi secara maksimum tegangan lekatan yang memadai untuk

keluarga atau psikososial, kekerasan dalam rumah tangga, kebutuhan finansial, dll. 3) Kehamilan dengan masalah kesehatan yang membutuhkan rujukan untuk konsultasi

a. bahwa dalam rangka peningkatan pelayanan dan pengelolaan administrasi kependudukan sehingga sesuai dengan perkembangan situasi dan kondisi saat ini perlu melakukan

· Bahan pemadaman yang tidak sesuai karena alasan keselamatan: Air dengan tekanan jet penuh · Bahaya khusus akibat dari zat atau campuran.. Selama pemanasan atau bila ada gas

Masalah yang terjadi di Industri ini adalah kecelakaan kerja dari segi bahaya kimia di area stock fit proses produksi bottom sepatu yang banyak menggunakan

AHLI JAWATANKUASA EN ROSLI B MOHD ARIF EN SHAMSUDIN B MOHD NISAB EN SHAHRIR NIZAM B ASHA’ARY PN MASHITHAH BT CHE AHMAD EN BAHARUDIN B IBRAHIM. JAWATANKUASA

6 Ada jalinan hubungan antara sekolah dengan masyarakat dan agar anak-anak tidak terasing dari masyarakat.. 7 Sekolah harus merupakan system nyang terbuka, bagi anak-anak. Dalam