TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK...

18
TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing Indah Susilawati, S.T., M.Eng. Program Studi Teknik Elektro Program Studi Teknik Informatika Fakultas Teknik dan Ilmu Komputer Universitas Mercu Buana Yogyakarta 2009

Transcript of TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK...

Page 1: TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK PENGOLAHAN CITRA PENGOLAHAN TITIK (POINT PROCESSING) Setiap operasi pengolahan citra pada dasarnya

TEKNIK PENGOLAHAN CITRA

Kuliah 2 – Point Processing

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

Program Studi Teknik Elektro

Program Studi Teknik Informatika Fakultas Teknik dan Ilmu Komputer

Universitas Mercu Buana Yogyakarta 2009

Page 2: TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK PENGOLAHAN CITRA PENGOLAHAN TITIK (POINT PROCESSING) Setiap operasi pengolahan citra pada dasarnya

KULIAH 3

TEKNIK PENGOLAHAN CITRA

PENGOLAHAN TITIK (POINT PROCESSING)

Setiap operasi pengolahan citra pada dasarnya adalah alihragam

(transformasi) nilai piksel-piksel yang ada pada citra yang bersangkutan. Operasi ini

dapat dibagi menjadi tiga kelas (dari yang paling rumit hingga yang paling

sederhana), yaitu:

1. Transformasi. Transformasi mengubah nilai piksel menjadi bentuk lain yang

ekivalen. Transformasi biasanya menggunakan algoritma yang efisien dan

powerfull. Misalnya adalah DFT (Discrete Fourier Transform).

2. Neighbourhood processing. Untuk mengubah nilai piksel tertentu maka perlu

diketahui nilai-nilai piksel tetangga (di sekitar piksel yang bersangkutan).

Misalnya adalah operasi penapisan dengan tapis median (median filtering) dengan

jendela 3 x 3 piksel.

3. Operasi titik (Point Operations). Untuk mengubah nilai piksel tertentu maka

tidak perlu diketahui nilai-nilai piksel tetangga (di sekitar piksel yang

bersangkutan).

Operasi titik merupakan operasi yang paling sederhana, namun juga

merupakan operasi pengolahan citra yang paling sering digunakan. Operasi ini

terutama sangat berguna dalam pra-pengolahan cita (image pre-processing), yaitu

proses paling awal dalam pengolahan citra sebelum proses utama dilakukan.

Operasi Aritmatika

Operasi ini dapat dilakukan dengan fungsi sederhana

f(x)y =

Page 3: TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK PENGOLAHAN CITRA PENGOLAHAN TITIK (POINT PROCESSING) Setiap operasi pengolahan citra pada dasarnya

pada setiap nilai piksel pada citra, x adalah nilai piksel (input) dan f(x) adalah nilai

piksel output. Operasi ini memetakan nilai piksel dengan domain 0 – 255 pada

kodomain yang sama. Contoh fungsi seperti ini adalah penjumlahan atau

pengurangan nilai piksel dengan suatu konstanta,

Cxy ±=

atau perkalian tiap piksel dengan suatu konstanta,

Cxy =

Yang perlu diperhatikan dalam hal ini adalah hasil f(x) harus merupakan bilangan

bulat dalam jangkauan 0 – 255. Hal ini dapat dilakukan dengan pembulatan hasilnya

(jika perlu) dan kemudian melakukan clipping dengan menentukan,

⎩⎨⎧

<>

=00255255

yjikayjika

y

Berikut adalah contoh hasil penjumlahan dan pengurangan konstanta C = 128 pada

tiap piksel.

y = x + 128 y = x – 128

Page 4: TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK PENGOLAHAN CITRA PENGOLAHAN TITIK (POINT PROCESSING) Setiap operasi pengolahan citra pada dasarnya

Dari grafik, dapat disimpulkan secara garis besar bahwa menambahkan dengan suatu

konstanta akan menambah terang citra, dan mengurangkan dengan suatu konstanta

akan menambah gelap citra.

Matlab menyediakan fungsi untuk operasi penjumlahan dan pengurangan

piksel citra, yaitu imadd.m dan imsubtract.m.

Contoh

Untuk melihat perubahan pada citra akibat penambahan nilai setiap piksel

dengan suatu konstanta dapat digunakan m file berikut.

clear all; clc; I = imread('cameraman.tif'); K = imadd(I,50); subplot (1,2,1),imshow (I) title ('citra input') subplot (1,2,2), imshow(K) title ('citra output')

citra input citra output

Page 5: TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK PENGOLAHAN CITRA PENGOLAHAN TITIK (POINT PROCESSING) Setiap operasi pengolahan citra pada dasarnya

Contoh

Untuk melihat perubahan pada citra akibat pengurangan nilai setiap piksel

dengan suatu konstanta dapat digunakan m file berikut.

clear all; clc; I = imread('pout.tif'); K = imsubtract(I,75); subplot (2,1,1),imshow (I) title ('citra input') subplot (2,1,2), imshow(K) title ('citra output')

citra input

citra output

Page 6: TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK PENGOLAHAN CITRA PENGOLAHAN TITIK (POINT PROCESSING) Setiap operasi pengolahan citra pada dasarnya

Membuat citra menjadi lebih terang atau lebih gelap juga dapat dilakukan

dengan fungsi perkalian dan/atau pembagian. Perhatikan grafik berikut.

Matlab menyediakan fungsi untuk operasi perkalian dan pembagian piksel citra, yaitu

immultiply.m dan imdivide.m.

Contoh clear all; clc; I = imread('pout.tif'); J = immultiply(I,0.5); K = imdivide (I,2); L = immultiply (I,2); subplot (2,2,1),imshow (I) title ('citra input') subplot (2,2,2), imshow(J) title ('citra x 0.5') subplot (2,2,3), imshow(K) title ('citra : 2') subplot (2,2,4), imshow(L) title ('citra x 2')

Page 7: TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK PENGOLAHAN CITRA PENGOLAHAN TITIK (POINT PROCESSING) Setiap operasi pengolahan citra pada dasarnya

citra input citra x 0.5

citra : 2 citra x 2

Komplemen

Komplemen dari sebuah citra aras keabuan adalah negatif dari citra tersebut

(photographic negative). Fungsi untuk menghasilkan komplemen sebuah citra aras

keabuan adalah

y = L – x

dengan L adalah aras atau level tertinggi piksel (255) dan x adalah nilai piksel citra

input. Grafik berikut menggambarkan fungsi komplemen sebuah citra aras keabuan.

Page 8: TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK PENGOLAHAN CITRA PENGOLAHAN TITIK (POINT PROCESSING) Setiap operasi pengolahan citra pada dasarnya

Matlab menyediakan fungsi untuk menghasilkan komplemen citra, yaitu

imcomplement.m.

Contoh clear all; clc; I = imread('cameraman.tif'); K = imcomplement(I); subplot (1,2,1),imshow (I) title ('citra input') subplot (1,2,2), imshow(K) title ('citra output')

citra input citra output

Efek khusus yang menarik dapat diperoleh dengan melakukan komplemen

sebagian saja, misalnya dengan melakukan komplemen piksel-piksel yang nilainya

Page 9: TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK PENGOLAHAN CITRA PENGOLAHAN TITIK (POINT PROCESSING) Setiap operasi pengolahan citra pada dasarnya

kurang atau sama dengan 128 (≤ 128) saja (nilai piksel di atas 128 tidak di-

komplemen-kan). Atau dilakukan sebaliknya. Grafik-grafik berikut menunjukkan

fungsi efek khusus ini. Efek fungsi ini sering disebut solarisasi (solarization).

Histogram Stretching (Contrast Stretching)

Misalkan terdapat sebuah citra memiliki distribusi piksel-piksel sbb.

Nilai Piksel Frekuensi Kemunculan 0 15 1 0 2 0 3 0 4 0 5 70 6 110 7 45 8 70 9 35 10 0 11 0 12 0 13 0 14 0 15 15

Page 10: TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK PENGOLAHAN CITRA PENGOLAHAN TITIK (POINT PROCESSING) Setiap operasi pengolahan citra pada dasarnya

Maka histogram citra tersebut dapat digambarkan sbb.

Terlihat bahwa citra tersebut memiliki kontras yang buruk. Kontras citra dapat

diperbaiki dengan cara merentangkan aras keabuannya agar lebih merata, misalnya

dengan menggunakan fungsi linear sebagian-sebagian (piecewise linear function)

pada gambar berikut.

Fungsi pada grafik di atas mempunyai efek merentangkan aras keabuan 5 – 9 ke aras

keabuan 2 – 14 menurut persamaan

25)(i59214j +−

−−

=

Page 11: TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK PENGOLAHAN CITRA PENGOLAHAN TITIK (POINT PROCESSING) Setiap operasi pengolahan citra pada dasarnya

Dengan i adalah piksel citra input dan j adalah piksel outputnya. Nilai piksel yang

lain dapat dibiarkan saja (tidak diubah) atau dapat diubah menurut fungsi yang sesuai

dengan grafik di atas. Hasilnya adalah

Piksel Input (i) Piksel Output (j) 5 2 6 5 7 8 8 11 9 14

dan histogram yang dihasilkan setelah transformasi adalah

20

40

60

80

100

120

0 1 2 3 4 5 6 7 8 9 101112131415 j

nj

Yang mengindikasikan bahwa kontras citra menjadi lebih baik (sebaran nilai piksel

lebih merata).

Fungsi dalam Matlab yang digunakan untuk contrast stretching adalah

imadjust.m, menggunakan fungsi yang diperlihatkan pada gambar berikut.

Page 12: TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK PENGOLAHAN CITRA PENGOLAHAN TITIK (POINT PROCESSING) Setiap operasi pengolahan citra pada dasarnya

Sintaks yang digunakan adalah

imadjust (im, [a, b], [c, d])

Contoh clear all; clc; I = imread('pout.tif'); K = imadjust(I,[0.25 0.5],[0.1 0.8]); subplot (2,2,1),imshow (I) title ('citra input') subplot (2,2,2), imshow(K) title ('citra output') subplot (2,2,3), imhist(I) subplot (2,2,4), imhist(K)

Page 13: TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK PENGOLAHAN CITRA PENGOLAHAN TITIK (POINT PROCESSING) Setiap operasi pengolahan citra pada dasarnya

citra input citra output

0 100 200

0

500

1000

1500

0 100 200

0

1000

2000

3000

Fungsi imadjust.m memberikan opsi parameter gamma yang mendefinisikan

bentuk fungsi di antara koordinat (a,c) dan (b,d). Jika gamma = 1 (default setting)

maka digunakan pemetaan linear seperti grafik sebelumnya. Jika nilai gamma kurang

dari 1 maka dihasilkan fungsi konkaf ke bawah dan jika nilai gamma lebih dari 1

maka dihasilkan fungsi konkaf ke atas seperti gambar berikut.

Page 14: TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK PENGOLAHAN CITRA PENGOLAHAN TITIK (POINT PROCESSING) Setiap operasi pengolahan citra pada dasarnya

Fungsi yang digunakan adalah sebagai berikut.

cc)(dabaxy +−⎟⎠⎞

⎜⎝⎛

−−

=

Contoh

clear all; clc; I = imread('pout.tif'); K = imadjust(I,[0.25 0.5],[0.1 0.8]); L = imadjust(I,[0.25 0.5],[0.1 0.8],0.5); subplot (2,3,1),imshow (I) title ('citra input') subplot (2,3,2), imshow(K) title ('citra output gamma = 1') subplot (2,3,3), imshow(L) title ('citra output gamma = 0.5') subplot (2,3,4), imhist(I) subplot (2,3,5), imhist(K) subplot (2,3,6), imhist(L)

citra input citra output gamma = 1 citra output gamma = 0.5

0 100 200

0

500

1000

1500

0 100 200

0

1000

2000

3000

0 100 200

0

1000

2000

3000

Page 15: TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK PENGOLAHAN CITRA PENGOLAHAN TITIK (POINT PROCESSING) Setiap operasi pengolahan citra pada dasarnya

Ekualisasi Histogram (Histogram Equalization)

Histogram stretching memerlukan input dari pengguna (nilai a, b, c, dan d,

serta gamma). Prosedur yang kadang lebih cocok adalah ekualisasi histogram yang

merupakan prosedur yang otomatis secara keseluruhan. Caranya adalah dengan

mengubah histogram citra histogram yang seragam atau uniform; yaitu bahwa setiap

batang pada histogram mempunyai tinggi yang sama, atau dengan kata lain bahwa

setiap aras keabuan pada citra memiliki frekuensi kemunculan yang sama. Dalam

prakteknya hal ini tidak mungkin, namun hasil operasi ekualisasi histogram

menunjukkan hasil yang sangat baik.

Misalkan sebuah citra mempunyai L aras keabuan yaitu 0, 1, 2, 3, ..., L - 1 dan

setiap aras keabuan i muncul sebanyak ni kali. Jika jumlah piksel dalam citra adalah n

(sehingga n0 + n1 + n2 + ... + nL-1 = n), maka untuk mentransformasikan aras keabuan

citra menjadi citra dengan kontras yang lebih baik, aras keabuan citra i diubah

menjadi

1)(Ln

n...nn i10 −⎟⎠

⎞⎜⎝

⎛ +++

dan kemudian dibulatkan ke nilai yang terdekat. Misalkan sebuah citra dengan

kontras yang kurang bagus ditunjukkan dengan histgram berikut. Citra mempunyai

16 aras keabuan (0 – 15).

Distribusi frekuensi kemunculan setiap aras keabuan i ditunjukkan pada tabel berikut.

Page 16: TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK PENGOLAHAN CITRA PENGOLAHAN TITIK (POINT PROCESSING) Setiap operasi pengolahan citra pada dasarnya

Dari histogramnya diketahui bahwa citra cenderung terang. Untuk ekualisasi

histogram digunakan rumusan di atas, dan hasilnya adalah sbb.

Maka dapat diperoleh

Dengan distribusi awal sbb

Maka distribusi aras keabuan setelah proses ekualisasi histogram adalah

Page 17: TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK PENGOLAHAN CITRA PENGOLAHAN TITIK (POINT PROCESSING) Setiap operasi pengolahan citra pada dasarnya

j 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

nj 0 15 0 0 70 0 0 0 110 0 45 0 0 80 0 40

Dan histogramnya dapat digambarkan sbb.

Matlab menyediakan fungsi untuk ekualisasi histogram yaitu histeq.m.

Contoh

clear all; clc; I = imread ('pout.tif'); K = histeq (I); subplot (2,2,1),imshow (I) title ('citra input') subplot (2,2,2), imhist(I) title ('histogram citra input') subplot (2,2,3), imshow(K) title ('citra output') subplot (2,2,4), imhist (K) title ('histogram citra output')

Page 18: TEKNIK PENGOLAHAN CITRA Kuliah 2 – Point Processing · PDF fileKULIAH 3 TEKNIK PENGOLAHAN CITRA PENGOLAHAN TITIK (POINT PROCESSING) Setiap operasi pengolahan citra pada dasarnya

citra input

0 100 200

0

500

1000

1500

histogram citra input

citra output

0 100 200

0

500

1000

1500

histogram citra output