Top Banner
1 TEKNIK PENGOLAHAN CITRA Kuliah 5 Neighboorhood Processing Indah Susilawati, S.T., M.Eng. Program Studi Teknik Informatika Program Studi Sistem Informasi Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta 2013
19

Citra TM5 - Neighborhood Processing

Oct 26, 2015

Download

Documents

Aris Joz
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Citra TM5 - Neighborhood Processing

1

TEKNIK PENGOLAHAN CITRA

Kuliah 5 – Neighboorhood Processing

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

Program Studi Teknik Informatika

Program Studi Sistem Informasi

Fakultas Teknologi Informasi

Universitas Mercu Buana Yogyakarta

2013

Page 2: Citra TM5 - Neighborhood Processing

2

KULIAH 5

TEKNIK PENGOLAHAN CITRA

NEIGHBOURHOOD PROCESSING

Pada operasi titik, citra dimodifikasi dengan menerapkan suatu fungsi pada

setiap nilai piksel. Neigbourhood processing dapat dipandang sebagai perluasan dari

operasi pengolahan titik, dimana fungsi diterapkan pada sejumlah piksel yang

bertetangga.

Neigbourhood processing dilakukan dengan menggeser sebuah “mask” (yang

dapat berbentuk segiempat atau bentuk lain) pada citra yang akan diolah. Dengan

demikian dapat diperoleh citra baru yang piksel-pikselnya dihitung dari nilai piksel-

piksel citra yang berada di bawah “mask”, lihat gambar berikut. Mask juga sering

disebut sebagai window.

Mask atau window berukuran 3x5, piksel dengan posisi di pusat mask (yaitu posisi

(x,y)) diubah menjadi nilai lain sesuai dengan fungsi yang digunakan.

Kombinasi antara “mask” dan fungsi disebut filter (tapis). Jika fungsinya linear maka

disebut filter linear.

Sebuah filter linear dapat diimplementasikan dengan mengalikan semua

elemen pada “mask” dengan elemen-elemen yang bersesuaian pada piksel yang

Page 3: Citra TM5 - Neighborhood Processing

3

bertetangga, dan kemudian menjumlahkan hasilnya. Misalnya “mask” yang

digunakan berbentuk segiempat 3 x 5 piksel sbb.

Dan nilai-nilai piksel yang bersesuaian pada citra adalah

Kemudian dikalikan dan dijumlahkan.

t)j s,(i pt)(s, m1

1s

2

2t

Page 4: Citra TM5 - Neighborhood Processing

4

Dengan demikian dibutuhkan tiga langkah dalam filtering, yaitu:

1. menempatkan “mask” pada piksel yang akan diproses,

2. mengalikan elemen-elemen pada “mask” dengan elemen yang bersesuaian

pada piksel-piksel tetangga pada citra,

3. menjumlahkan seluruh hasil perkalian.

Ketiga langkah di atas dilakukan untuk semua piksel pada citra input. Diagram

berikut mengilustrasikan proses spatial filtering tsb.

Operasi yang sejenis dengan spatial filtering adalah konvolusi. Metode yang

diterapkan dalam konvolusi sama dengan yang diterapkan dalam spatial filtering,

namun filter diputar 180 terlebih dahulu sebelum proses perkalian dan penjumlahan.

Page 5: Citra TM5 - Neighborhood Processing

5

Dengan notasi yang sama dengan yang digunakan sebelumnya, maka output

konvolusi dengan “mask” 3 x 5 untuk piksel tunggal adalah

t)j s,(i p(-s,-t) m1

1s

2

2t

Hasil yang sama dapat diperoleh dengan

t)j s,(i pt)(s, m1

1s

2

2t

Pada persamaan yang terakhir, piksel citra diputar 180; sehingga diperoleh hasil

yang sama dengan persamaan sebelumnya. Konvolusi menjadi penting dalam

pembahasan transformasi Fourier dan teori konvolusi. Dalam prakteknya, sebagian

besar “mask” filter adalah simetris terhadap putaran (rotationally symmetric)

sehingga spatial filtering dan konvolusi akan menghasilkan output yang sama.

Contoh

Satu filter linear yang penting adalah dengan menggunakan “mask” 3 x 3 dan

mengambil rerata dari semua nilai yang tercakup dalam “mask”. Nilai rerata ini

akan menjadi nilai aras keabuan pada citra output. Operasinya dapat dijelaskan

sbb.

Dimana e adalah nilai piksel pada citra input, dan rerata aras keabuan akan

menjadi piksel citra output pada posisi piksel yang sama.

Misalnya citra yang piksel-pikselnya sbb.

Page 6: Citra TM5 - Neighborhood Processing

6

170 240 10 80 150

230 50 70 140 160

40 60 130 200 220

100 120 190 210 30

110 180 250 20 90

Maka piksel-piksel yang bertetangga pada sudut kanan atas adalah

dan reratanya adalah 111,1111 dan dapat dibulatkan menjadi 111 (Ini akan

menjadi piksel citra output pada posisi (2,2)). Selanjutnya piksel-piksel

bertetangga yang kedua adalah

Page 7: Citra TM5 - Neighborhood Processing

7

dan reratanya adalah 108,8889 dan dapat dibulatkan menjadi 108 atau 109. (Ini

akan menjadi piksel citra output pada posisi (2,3)). Dengan melakukan operasi

yang sama untuk seluruh piksel pada citra, maka diperoleh hasil sbb.

contoh_rerata.m

Cara yang mudah untuk menggambarkan filter linear adalah dengan

menggunakan koefisien-koefisien untuk semua nilai aras keabuan piksel dalam

“mask”. Untuk filter di atas, output filter dapat dinyatakan sbb.

i)hgfedcb(a9

1

Sehingga filter dapat dinyatakan dengan matriks sbb.

111

111

111

9

1

9

1

9

1

9

19

1

9

1

9

19

1

9

1

9

1

rerata.m pererata.m

Contoh

Sebuah filter

121

242

121

HPF_2.m

Akan bekerja pada piksel-piksel sbb.

Page 8: Citra TM5 - Neighborhood Processing

8

Batas atau tepi citra (edges of the image) merupakan suatu hal yang harus

diselesaikan dalam operasi filtering, misalnya bagaimana jika sebagian “mask”

berada di luar citra. Perhatikan gambar berikut.

Pendekatan untuk menyelesaikan hal ini adalah

1. Tidak mempedulikan batas atau tepi citra.

Dalam hal ini, “mask” hanya diaplikasikan pada piksel-piksel pada citra dimana

seluruh “mask” berada dalam citra. Pendekatan ini menghasilkan citra output

yang ukurannya lebih kecil daripada citra input. Jika ukuran “mask” sangat besar,

akan menyebabkan sejumlah besar informasi menjadi hilang. Pada contoh yang

telah dibahas di atas, digunakan pendekatan jenis ini.

2. Tambahkan piksel-piksel dengan nilai 0 (Pad with zeroes)

Dalam pendekatan ini, diasumsikan bahwa semua piksel yang berada di luar citra

mempunyai nilai aras keabuan nol. Pendekatan ini menghasilkan citra output

yang ukurannya sama dengan citra input, namun kadang mempunyai pengaruh

pada batas-batas tepi citra.

Page 9: Citra TM5 - Neighborhood Processing

9

Filtering Menggunakan Matlab

Matlab menyediakan fungsi untuk melakukan linear filtering, yaitu fungsi

filter2.m dengan sintaks

filter2 (filter, image, „shape‟)

Parameter “shape” bersifat opsional, digunakan untuk mendefinisikan metode atau

pendekatan untuk menangani batas atau tepi citra, yaitu:

filter2 (filter, image, „same‟)

Merupakan default Matlab; menghasilkan matriks yang sama ukurannya dengan

matiks citra input. Digunakan padding dengan nilai nol.

filter2 (filter, image, „valid‟)

Hanya mengaplikasikan filter pada piksel-piksel “di dalam” citra saja, tidak

mempedulikan piksel-piksel pada batas atau tepi citra. Ukuran citra output lebih

kecil daripada citra input.

filter2 (filter, image, „full‟)

Menghasilkan matriks yang ukurannya lebih besar daripada matiks citra input.

Digunakan padding dengan nilai nol, dan diterapkan pada semua wilayah dimana

masih terdapat overlap antara citra dan filter.

Contoh

>> a = ones(3,3)/9

a =

0.1111 0.1111 0.1111

0.1111 0.1111 0.1111

0.1111 0.1111 0.1111

>> x = magic(5)

x =

17 24 1 8 15

23 5 7 14 16

4 6 13 20 22

10 12 19 21 3

11 18 25 2 9

Page 10: Citra TM5 - Neighborhood Processing

10

>> s = filter2(a, x, 'same')

s =

7.6667 8.5556 6.5556 6.7778 5.8889

8.7778 11.1111 10.8889 12.8889 10.5556

6.6667 11.0000 13.0000 15.0000 10.6667

6.7778 13.1111 15.1111 14.8889 8.5556

5.6667 10.5556 10.7778 8.7778 3.8889

>> v = filter2(a, x, 'valid')

f =

11.1111 10.8889 12.8889

11.0000 13.0000 15.0000

13.1111 15.1111 14.8889

>> f = filter2(a, x, 'full')

f =

1.8889 4.5556 4.6667 3.6667 2.6667 2.5556 1.6667

4.4444 7.6667 8.5556 6.5556 6.7778 5.8889 3.4444

4.8889 8.7778 11.1111 10.8889 12.8889 10.5556 5.8889

4.1111 6.6667 11.0000 13.0000 15.0000 10.6667 4.5556

2.7778 6.7778 13.1111 15.1111 14.8889 8.5556 3.7778

2.3333 5.6667 10.5556 10.7778 8.7778 3.8889 1.3333

1.2222 3.2222 6.0000 5.0000 4.0000 1.2222 1.0000

Tidak ada pendekatan tunggal yang terbaik dalam hal memilih jenis filter, pemilihan

harus disesuaikan dengan permasalahan yang dihadapi (problem dependent) dan hasil

yang diinginkan.

Filter yang akan digunakan dapat dibuat sendiri atau dapat pula menggunakan

fungsi fspecial.m; yang menyediakan beberapa pilihan filter termasuk diantaranya

filter pe-rerata (average).

Contoh

>> fspecial (‘average’, [5,7])

membuat filter pe-rerata ukuran 5 x 7

>> fspecial (‘average’, 11)

membuat filter pe-rerata ukuran 11 x 11

Page 11: Citra TM5 - Neighborhood Processing

11

Jenis-jenis filter yang dapat dipilih antara lain adalah

1. 'average' averaging filter

2. 'disk' circular averaging filter

3. 'gaussian' Gaussian lowpass filter

4. 'laplacian' filter approximating the 2-D Laplacian operator

5. 'log' Laplacian of Gaussian filter

6. 'motion' motion filter

7. 'prewitt' Prewitt horizontal edge-emphasizing filter

8. 'sobel' Sobel horizontal edge-emphasizing filter

9. 'unsharp' unsharp contrast enhancement filter

Contoh

clear all;

clc;

I = imread ('cameraman.tif');

f = fspecial ('average',[5,5]);

If = filter2 (f,I);

subplot (1,2,1), imshow (I)

title ('citra input')

subplot (1,2,2), imshow (mat2gray(If))

title ('citra output')

Page 12: Citra TM5 - Neighborhood Processing

12

citra input citra output

Filtering Menggunakan Scilab

Scilab memmpunyai fungsi-fungsi untuk melakukan filtering citra dalam domain

spasial, antara lain fungsi:

- imfilter

- filter2

- fspecial

dengan beberapa pilihan jenis filter dan dimungkinkan untuk membentuk filter

sendiri.

Tugas : pelajari sintaks ke-3 fungsi untuk filtering di atas, lakukan filtering dengan

ke-3 fungsi tsb untuk citra cameraman.bmp (pilihan jenis filter bebas).

Filter pe-rerata akan mengaburkan citra, makin besar ukuran filter maka citra

cenderung makin kabur. Dengan menggunakan filter berukuran besar maka dapat

terlihat jelas pengaruh padding dengan nilai nol di sekelilling tepi atau batas citra.

Perhatikan hasil filtering dengan filter pe-rerata ukuran 15 x 15 berikut.

Page 13: Citra TM5 - Neighborhood Processing

13

citra input citra output

Filter pe-rerata penting dalam permasalahan-permasalahan di mana aspek citra yang

menjadi perhatian adalah bukan detail citra, misalnya pengamat hanya tertarik pada

berapa jumlah objek yang ada pada citra, atau hanya tertarik pada luas daerah gelap

dan daerah terang pada citra.

Separable Filter

Beberapa filter dapat diimplementasikan sebagai dua filter yang lebih

sederhana secara berurutan.

Misalnya, oleh karena

maka filter pe-rerata 3 x 3 dapat diimplementasikan dengan menerapkan filter 3 x 1,

kemudian diikuti dengan menerapkan filter 1 x 3 pada hasil filtering yang pertama.

Dengan demikian maka dikatakan bahwa filter pe-rerata dapat dibagi (separable)

Page 14: Citra TM5 - Neighborhood Processing

14

menjadi dua filter yang lebih kecil. Separabilitas menghasilkan penghematan waktu

pengolahan. Misalkan filter n x n dapat dibagi menjadi 2 filter ukuran n x 1 dan 1 x n.

Penerapan filter n x n membutuhkan sejumlah n2 perkalian dan (n

2 – 1) penjumlahan

untuk setiap piksel citra. Dengan menggunakan filter n x 1, hanya dibutuhkan

sejumlah n perkalian dan (n – 1) penjumlahan. Karena dilakukan dua kali, jumlah

total operasi yang dibutuhkan adalah 2n perkalian dan 2(n – 1) penjumlahan. Jika n

cukup besar, maka penghematan waktu pengolahan bisa menjadi pertimbangan

tersendiri.

Semua filter pe-rerata merupakan filter yang separable. Filter yang lain yang

separable adalah filter laplacian,

LPF dan HPF

Secara garis besar, frekuensi dari sebuah citra merupakan ukuran besarnya

perubahan nilai aras keabuan terhadap jarak. Komponen frekuensi tinggi dicirikan

dengan adanya perubahan nilai aras keabuan yang besar pada jarak yang dekat;

contoh komponen frekuensi tinggi adalah tebing (edges) dan derau (noise).

Komponen frekuensi rendah dicirikan dengan perubahan yang kecil pada nilai aras

keabuan, termasuk di dalamnya misalnya latar belakang (background). Dengan

demikian maka,

HPF akan melewatkan komponen frekuensi tinggi dan mengurangi atau

menghilangkan komponen frekuensi rendah.

LPF akan melewatkan komponen frekuensi rendah dan mengurangi atau

menghilangkan komponen frekuensi tinggi.

Page 15: Citra TM5 - Neighborhood Processing

15

Sebagai contoh, filter pe-rerata adalah LPF karena cenderung membuat citra menjadi

kabur (tebing-tebing citra menjadi hilang atau kabur). Contoh filter HPF adalah

Pada contoh filter HPF di atas, jumlah semua elemen dalam matriks adalah

nol. Hal ini berarti bahwa pada bagian citra yang berfrekuensi rendah (yaitu nilai aras

keabuannya hampir sama) maka hasil filtering akan mendekati nol.

Contoh

Terlihat bahwa hasil filtering mempunyai nilai yang mendekati nol. Untuk menangani

hasil filtering yang nilainya di luar aras keabuan yang ada (yaitu 0 – 255) dapat

digunakan pendekatan sbb.

1. Membuat nilai negatif menjadi positif.

Pendekatan ini memang menyelesaikan permasalahan adanya nilai negatif pada

hasil filtering tetapi tidak mengatasi masalah jika ada nilai di atas 255. Sehingga

pendekatan ini hanya digunakan dalam keadaan yang khusus saja, misalnya saat

hanya terdapat beberapa nilai negatif saja dan nilai tersebut dekat dengan nol.

Page 16: Citra TM5 - Neighborhood Processing

16

2. Memotong nilai (Clip values)

Pendekatan ini menerapkan operasi pengambangan (thresholding) pada nilai aras

keabuan hasil filtering sehingga nilainya berada pada rentang 0 – 255.

HPF_2.m

3. Penyekalaan (scaling transformation)

Misalkan nilai aras keabuan hasil filtering berada pada rentang gL – gH dengan gL

adalah nilai terendah dan gH adalah nilai tertinggi. Maka semua nilai pada rentang

gL – gH tersebut dapat ditransformasikan ke rentang 0 – 255 menggunakan

transformasi linear sbb.

Oleh karena gradien garis linear di atas adalah 255 / (gH – gL), maka persamaan

garis transformasi dapat dinyatakan sbb.

Page 17: Citra TM5 - Neighborhood Processing

17

Contoh (dalam Matlab)

clear all;

clc;

I = imread ('cameraman.tif');

f = [1 -2 1;-2 4 -2;1 -2 1];

fI = filter2(f, I);

maks = max(fI(:))

mins = min(fI(:))

fI2 = (fI - mins)/(maks - mins); % terskala 1

fI3 = fI/60; % terskala 2

subplot (1,3,1), imshow (I)

title ('citra input')

subplot (1,3,2), imshow (fI2)

title ('ouput HPF terskala 1')

subplot (1,3,3), imshow (fI3)

title ('ouput HPF terskala 2')

citra input ouput HPF terskala 1 ouput HPF terskala 2

HPF atau filter lolos tinggi sangat penting dalam deteksi tebing dan

peningkatan tebing (edge detection and edge enhancement). Tebing-tebing pada citra

dicirikan atau ditandai dengan perubahan yang mencolok (besar) pada nilai aras

keabuannya. Contoh HPF yang lain adalah filter laplacian dan filter log.

Contoh (dalam Matlab)

>> f1 = fspecial ('laplacian')

Page 18: Citra TM5 - Neighborhood Processing

18

f1 =

0.1667 0.6667 0.1667

0.6667 -3.3333 0.6667

0.1667 0.6667 0.1667

>> f2 = fspecial ('log')

f2 =

0.0448 0.0468 0.0564 0.0468 0.0448

0.0468 0.3167 0.7146 0.3167 0.0468

0.0564 0.7146 -4.9048 0.7146 0.0564

0.0468 0.3167 0.7146 0.3167 0.0468

0.0448 0.0468 0.0564 0.0468 0.0448

Contoh (dalam Matlab)

clear all;

clc;

I = imread ('cameraman.tif');

f1 = fspecial('laplacian');

f2 = fspecial('log');

I1 = filter2(f1,I);

I2 = filter2(f2,I);

subplot (1,3,1), imshow (I)

title ('citra input')

subplot (1,3,2), imshow (I1/100)

title ('ouput HPF Laplacian')

subplot (1,3,3), imshow (I2/100)

title ('ouput HPF Log')

Page 19: Citra TM5 - Neighborhood Processing

19

citra input ouput HPF Laplacian ouput HPF Log

Tugas:

Implementasikan filter rerata (halaman 7) atau HPF (halaman 14) untuk

neighborhood atau mask 3x3 menggunakan Scilab, gunakan citra cameraman.bmp.

Submit via email paling lambat:

1. Untuk Kelas Pagi: Senin, 4 November 2013 depan pukul 13.00 WIB, dengan

subject Citra Pagi #5

2. Untuk Kelas Malam: Senin, 4 November 2013 depan pukul 18.00 WIB,

dengan subject Citra Malam #5