• Tidak ada hasil yang ditemukan

TEKNIK PENGOLAHAN CITRA Kuliah 5 – Neighboorhood Processing

N/A
N/A
Protected

Academic year: 2019

Membagikan "TEKNIK PENGOLAHAN CITRA Kuliah 5 – Neighboorhood Processing"

Copied!
19
0
0

Teks penuh

(1)

1

TEKNIK PENGOLAHAN CITRA

Kuliah 5

Neighboorhood Processing

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

Program Studi Teknik Informatika/Sistem Informasi

Fakultas Teknologi Informasi

Universitas Mercu Buana Yogyakarta

(2)

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 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.

(3)

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

p

t)

(s,

m

1

1 s

2

2 t

 

  

(4)

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.

(5)

5 Dengan notasi yang sama dengan yang digunakan sebelumnya, maka output konvolusi dengan “mask” 3 x 5 untuk piksel tunggal adalah

t)

Hasil yang sama dapat diperoleh dengan

t)

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.

(6)

6 Misalnya citra yang piksel-pikselnya sbb.

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

(7)

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

(8)

8 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)

Sehingga filter dapat dinyatakan dengan matriks sbb.

Akan bekerja pada piksel-piksel sbb.

(9)

9 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.

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‟)

(10)

10

 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.

(11)

11

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 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

(12)

12 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')

citra input citra output

Filtering Menggunakan Scilab

Scilab memmpunyai fungsi-fungsi untuk melakukan filtering citra dalam domain spasial, antara lain fungsi:

- imfilter - filter2 - fspecial

(13)

13 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.

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.

(14)

14 (5.5)

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) 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 (n2 – 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,

(5.5)

LPF dan HPF

(15)

15 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.

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.

(16)

16 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. 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 (5.6)

3. Penyekalaan (scaling transformation)

(17)

17 Oleh karena gradien garis linear di atas adalah 255 / (gH – gL), maka persamaan garis transformasi dapat dinyatakan sbb.

(5.7)

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')

(18)

18 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') 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')

(19)

19

title ('ouput HPF Laplacian') subplot (1,3,3), imshow (I2/100) title ('ouput HPF Log')

citra input ouput HPF Laplacian ouput HPF Log

Tugas:

Implementasikan filter rerata (halaman 8) untuk neighborhood atau mask sebagai berikut menggunakan citra cameraman.tif. Hindari mengkopas hasil karya orang lain, kesamaan minimal 40% akan dieliminasi.

Referensi

Dokumen terkait

Pada bulan Januari 2017, NTPT mengalami penurunan sebesar 0,56 persen apabila dibandingkan bulan Desember 2016 yaitu dari 98,62 menjadi 98,07, hal ini terjadi karena

Dalam kesempatan yang sama, Ketua Pusat Diabetes dan Nutrisi Surabaya Prof. Askandar Tjokroprawiro, Sp.PD, K-EMD, FINASIM, mengungkapkan pentingnya langkah pencegahan sekaligus

Meskipun begitu, alokasi anggaran yang diberikan pemerintah daerah setiap tahun telah melampaui pagu indikatif tahunan se- bagaimana tersebut di atas, tahun 2015 saja

Sedang arah kawat parut pada permukaan silinder mempunyai sudut sebesar 75° sehingga dengan demikian dapat menyapu bagian punggung dari gigi gergaji tersebut pada jarak yang

Akibatnya hasil simulasi cenderung menghasilkan biaya pengiriman, biaya pemesanan dan biaya setup produksi yang lebih besar dari model matematis. Dari Tabel 3 juga terlihat

Hasil tersebut juga menunjukkan bahwa kadar phospat IPAL RSUD Kelet belum memenuhi standar untuk dibuang ke badan air, karena kadar phospat masih tinggi pada titik pertama sampai

Penelitian ini hanya merupakan studi akademis sehingga masih diperlukan penelitian lebih lanjut, seperti penentuan daerah survei dan lokasi titik dasar bereferensi

Pembuatan database menggunakan aplikasi PostgreSQL 8.2. Tabel-tabel yang dibuat pada database berasal dari data shapefile yang telah dibuat dan data LBB yang berasal