Anda di halaman 1dari 33

BAB I

PENDAHULUAN

1.1 Latar Belakang

Secara umum, istilah pengolahan citra digital menyatakan “pemrosesan gambar


berdimensi-dua melalui komputer digital” (Jain, 1989). Citra (image) adalah kombinasi
antara titik, garis, bidang, dan warna untuk menciptakan suatu imitasi dari suatu obyek–
biasanya obyek fisik atau manusia. Citra bisa berwujud gambar (picture) dua dimensi,
seperti lukisan, foto, dan berwujud tiga dimensi, seperti patung. Menurut Efford
(2000), pengolahan citra adalah istilah umum untuk berbagai teknik yang
keberadaannya untuk memanipulasi dan memodifikasi citra dengan berbagai cara.

Foto adalah contoh gambar berdimensi dua yang bisa diolah dengan mudah.Setiap
foto dalam bentuk citra digital (misalnya berasal dari kamera digital) dapat diolah
melalui perangkat-lunak tertentu.

2.2 Aplikasi Pengolahan Citra

Berbagai aplikasi pengolahan citra juga telah dilakukan di Indonesia.Beberapa


contoh ditunjukkan berikut ini.

1. Identifikasi sidik jari (Isnanto, dkk., 2007)


2. Pencarian database orang melalui foto orang (Aribowo, 2009)
3. Identifikasi kematangan buah tomat (Noor dan Hariadi, 2009)
4. Identifikasi penyakit Diabetes mellitus melalui citra kelopak mata
(Rachmad, 2009)
5. Ekstraksi fitur motif batik (Mulaab, 2010)

1
6. Identifikasi telapak tangan (Putra dan Erdiawan, 2010)

2.3 Prinsip Dasar Pengolahan Citra

Ada tiga dasar prinsip pengolahan citra, diantaranya dalah:

1. Peningkatan kecerahan dan kontras

yang tidak jelas akibat kekurangan sinar ketika objek dibidik melalui kamera
digital, dengan pengolahan citra dapat diperbaiki melalui peningkatan kecerahan
dan kontras.

2. Penghilangan derau

Citra yang diproses seringkali dalam keadaan terdistorsi atau mengandung


derau, untuk kepentingan tertentu derau tersebut perlu dibersihkan terlebih dahulu.
Dalam pengolahan citra metode yang dapat dipakai untuk keperluan tersebut salah
satunya cara yang dilaksanakan melalui filter notch.

3. Pencarian bentuk objek

Untuk kepentingan mengenali suatu objek di dalam citra, objek perlu


dipisahkan terlebih dahulu dari latar belakangnya. Salah satu pendekatan yang
umum dipakai untuk keperluan ini adalah penemuan batas objek. Dalam hal ini
batas objek berupa bagian tepi objek. Setelah tepi objek diketahui pencarian ciri
terhadap objek dapat dilaksanakan.

2
BAB II
PEMBAHASAN

2.1 Operasi Ketetanggan Piksel

Operasi ketetanggaan piksel adalah operasi pengolahan citra untuk


mendapatkan nilai suatu piksel yang melibatkan nilai piksel-piksel tetangganya.
Karena kenyataannya piksel tidak dapat berdiri sendiri, melainkan terkait dengan
piksel tetangga sendiri. Sebagai contoh suatu citra berderau dapat dihaluskan
melalui pererataan atas piksel-piksel tetangga. Dapat ditunjukkan dengan gambar
berikut:

3
2.2 Pengertian Ketetanggan Piksel

Operasi Ketetanggaan piksel banyak dipakai untuk terutama analisis bentuk


objek salah satunya digunakan juga untuk untuk menghilangkan derau (gangguan
pada sebuah objek). Jenis ketetanggaan piksel ada dua : 4 ketetanggaan dan 8
ketetanggaan.

2.3 Penjelasan Ketetanggan Piksel

Pada 4 ketetanggan T1, T2, T3, T4 merupakan tetangga terdekat pikesl P. Pada
8 ketetanggan, tetangga pksel P yaitu tetangga piksel-piksel yang berada disekitar
P. Totalnya sebanyak 8 buah. Bila P mempunyai koordinat (b, k) dengan b baris
dan k kolom, hubungan piksel tetangga terhadap P sebagai berikut:
Pada 4 ketetanggaan:
T1 = (b, k + 1), T2 = (b - 1, k), T3 = (b, k - 1), T4 = (b + 1, k) (4.1)
Pada 8 ketetanggaan:
T1 = (b, k + 1), T2 = ( b – 1, k – 1)
T3 = (b, k - 1), T4 = ( b – 1, k – 1)
T5 = (b, k – 1), T6 = ( b + 1, k – 1)
T7= (b +1, k-1), T8= (b+1,k +1)

4
2.4 Aplikasi Ketetanggan Piksel

Ada tiga jenis filter yang menggunakan operasi ketetanggaan piksel,


diantaranya adalah:

1. Filter Batas

Berdasarkan keadaan tersebut,

minInt = minimum(5, 7, 7, 5, 4, 6, 7, 8) = 4;
maksInt = maksimum(5, 7, 7, 5, 4, 6, 7, 8) = 8;
mengingat f(y, x) bernilai 9 dan lebih besar daripada 8 (maksInt) maka g(y, x)
bernilai 8;
seandainya f(y, x) pada keadaan di atas bernilai 2 (bukan 9), g(y,x) akan bernilai
4.

2.4.1 Algoritma Menghitung piksel dengan filter batas

5
2.4.2 Program Filter Batas

f = imread('c:\image\mobil.tif');
[jum_baris, jum_kolom] = size(f);
g = f;
for baris=2 : jum_baris-1
for kolom=2 : jum_kolom-1
minpiksel = min([f(baris-1, kolom-1) ...
f(baris-1, kolom) f(baris, kolom+1) ...

6
f(baris, kolom-1) ...
f(baris, kolom+1) f(baris+1, kolom-1) ...
f(baris+1, kolom) f(baris+1, kolom+1)]);
makspiksel = min([f(baris-1, kolom-1) ...
f(baris-1, kolom) f(baris, kolom+1) ...
f(baris, kolom-1) ...
f(baris, kolom+1) f(baris+1, kolom-1) ...
f(baris+1, kolom) f(baris+1, kolom+1)]);

if f(baris, kolom) < minpiksel


g(baris, kolom) = minpiksel;
else
if f(baris, kolom) > makspiksel
g(baris, kolom) = makspiksel;
else
g(baris, kolom) = F(baris, kolom);
end
end
end
end

2.4.3 Output filter Batas

7
2. Filter Perataan

Pada contoh di atas, yang diarsir (yaitu yang bernilai 68) merupakan nilai pada f(y,
x). Nilai rerata pengganti untuk g(y, x) dihitung dengan cara seperti berikut:

g(y, x) = 1/9 x (65+50+55+78+68+60+60+60+62) = 61,7778

8
≅62

Jadi, nilai 68 pada f(y, x) diubah menjadi 62 pada g(y, x).

Implementasi dalam program dapat dilihat berikut ini.

2.4.4 Program Filter Perataan

f = imread('c:\image\mobil.tif');

[jum_baris, jum_kolom] = size(f);

f2=double(f);

for baris=2 : jum_baris - 1

for kolom=2 : jum_kolom - 1

jumlah= f2 (baris - 1, kolom - 1) + ...

f2(baris - 1 , kolom) + ...

f2(baris - 1, kolom - 1) + ...

f2(baris, kolom - 1) + ...

f2(baris, kolom) + ...

f2(baris, kolom + 1) + ...

f2(baris +1, kolom - 1) + ...

f2(baris+1, kolom) + ...

f2(baris+1, kolom + 1) ;

g(baris, kolom) = uint8 ( 1/9 * jumlah);

end

end

9
2.4.5 Output Program Filter Perataan

3. Filter Median

Filter median sangat populer dalam pengolahan citra. Filter ini dapat dipakai
untuk menghilangkan derau bintik-bintik. Nilai yang lebih baik digunakan untuk

10
suatu piksel ditentukan oleh nilai median dari setiap piksel dan kedelapan piksel
tetangga pada 8-ketetanggaan. Secara matematis, filter dapat dinotasikan seperti
berikut:

g(y,x)=median(f(y-1,x-1),f(y-1,x),f(y-1,x+1),f(y,x-1),f(y,x),f(y,x+1),f(y+1,x-
1),f(y+1,x),f(y+1,x+1))

Pada contoh di atas terlihat bahwa untuk mendapatkan median, diperlukan


pengurutan (sorting) terlebih dulu.

2.4.6 Program Filter Median

f = imread('c:\image\mobil.tif');

[jum_baris, jum_kolom] = size(f);

11
for baris=2 : jum_baris - 1

for kolom=2 : jum_kolom - 1

data= [f(baris-1, kolom-1) ...

f(baris-1, kolom) ...

f(baris-1, kolom+1) ...

f(baris, kolom-1) ...

f(baris, kolom) ...

f(baris, kolom+1) ...

f(baris+1, kolom-1) ...

f(baris+1, kolom) ...

f(baris+1, kolom-1)];

%urutkan

for i=1 : 8

for j=i+1 : 9

if data(i) > data(j)

temp =data(i);

data(i)=data(j);

data(j)=temp;

end

end

end

%ambil nilai median

12
g(baris,kolom)=data(5);

end

end

2.4.7 Output Program Filter Median

13
2.2 Operasi Piksel dan Histogram

Pada pengolahan citra terdapat istilah operasi piksel atau kadang disebut
operasi piksel-ke-piksel.Operasi piksel adalah operasi pengolahan citra yang
memetakan hubungan setiap piksel yang bergantung pada piksel itu sendiri. Jika
f(y, x) menyatakan nilai sebuah piksel pada citra f dan g(y, x) menyatakan piksel
hasil pengolahan dari f(y, x), hubungannya dapat dinyatakan dengan

g(y,x)=T(f(y,x))

14
Dalam hal ini, T menyatakan fungsi atau macam operasi yang dikenakan
terhadap piksel f(y, x). Model operasi inilah yang akan dibahas di bab ini,termasuk
pembahasan pengolahan citra berbasis histogram.

2.2.1 ALGORITMA Histogram citra aras keabuan

f(M, N) : citra berukuran M baris dan N kolom

L : jumlah aras keabuan

Buatlah larik hist sebanyak 2L elemen dan isi dengan nol.

FOR i 1 TO M

FOR j1 TO N

hist(f(M, N)+1) hist(f(M, N)+1) + 1

END-FOR

END-FOR

2.2.2 Program Histogram citra

img=imread('c:\image\gunung.tif');

[jum_baris,jum_kolom]=size(img);

histogram=zeros(256,1);

for baris=1 : jum_baris

for kolom=1 : jum_kolom

histogram(img(baris,kolom) + 1) = ...

histogram(img(baris,kolom) + 1) + 1;

15
end

end

horijontal=(0:255) ;

bar(horijontal,histogram);

subplot(1,2,1);imshow(img)

subplot(1,2,2);bar(horijontal,histogram)

2.2.3 Hasil Histogram citra

2.2.4 Menigkatkan kecerahan

16
Operasi dasar yang sering dilakukan pada citra adalah peningkatan kecerahan
(brightness).Operasi ini diperlukan dengan tujuan untuk membuat gambar menjadi
lebih terang.Secara matematis, peningkatan kecerahan dilakukan dengan cara
menambahkan suatu konstanta terhadap nilai seluruh piksel. Misalkan, f(y, x)
menyatakan nilai piksel pada citra berskala keabuan pada koordinat (y, x). Maka,
citra baru

g(y,x)=f(y,x) + β ..... Rumus meningkatkan kecerahan citra

Perintah dengan octave

x=imread('c:\image\bunga.tif');

y= x + 50 ;

subplot(1,2,1);imshow(x)

subplot(1,2,2);imshow(y)

2.2.5 Hasil pencerahan Citra dengan nilai beta 50

17
2.2.6 Meregangkan kontras

Kontras dalam suatu citra menyatakan distribusi warna terang dan warna gelap.
Suatu citra berskala keabuan dikatakan memiliki kontras rendah apabila distribusi
warna cenderung pada jangkauan aras keabuan yang sempit. Sebaliknya, citra
mempunyai kontras tinggi apabila jangkauan aras keabuan lebih terdistribusi secara
melebar.Kontras dapat diukur berdasarkan perbedaan antara nilai intensitas
tertinggi dan nilai intensitas terendah yang menyusun piksel-piksel dalam citra.

g(y,x)=α f(y,x).........................................3.4

x=imread(‘c;/image/gembala.tif’);

k=3 * x;

subplot(1,2,1);imshow(x)

18
subplot(1,2,2);imshow(k)

2.2.7 hasil peregangan kontras dengan nilai alpha 3

2.2. 8 Kombinasi kecerahan dan kontras

Operasi peningkatan kecerahan dan peregangan kontras dapat dilakukan sekaligus


untuk kepentingan memperbaiki citra. Secara umum, gabungan kedua operasi
tersebut dapat ditulis menjadi g(y,x)=α f(y,x) + β

Distribusi histogram perlu digeser kekiri, selanjutanya baru dikenakan peregangan


kontras implementasinya sebagai berikut:

x=imread(‘c:/image/gembala.tif’);

c=x – 45;

k=c * 11;

subplot(1,2,1);imshow(x)

subplot(1,2,2);imshow(k)

2.2.9 Hasil kombinasi kecerahan dan kontras

19
2.2.10 Membalik Citra

Bila pernah melihat film hasil kamera analog, gambar yang terekam dalam film
tersebut berkebalikan dengan foto saat dicetak, yang dikenal sebagai film
negatif.Citra seperti ini biasa digunakan pada rekam medis; misalnya hasil fotografi
rontgen.Hubungan antara citra dan negatifnya untuk yang beraras keabuan dapat
dinyatakan dengan rumus:

G(y,x)=255-f(y,x) ------Rumus membalik citra

x=imread(‘c:/lmage/lena128.tif’);

y=255 – x;

subplot(1,2,1);imshow(x)

subplot(1,2,2);imshow(z)

2.2.11 Hasil membalik citra

20
3.3 Operasi geometric

Operasi geometrik adalah operasi pada citra yang dilakukan secara geometris
seperti translasi (pergeseran), rotasi (perputaran), Flipping (pencerminan) dan
penyekalaan (mengubah bentuk). Pada operasi seperti ini terdapat pemetaan
geometrik, yang menyatakan hubungan pemetaan antara piksel pada citra masukan
dan piksel pada citra keluaran.

3.3.4 Gambar pemetaan geometrik

21
3.3.5 Menggeser Citra

Penggeseran citra ke arah mendatar atau vertikal dapat dilaksanakan dengan


mudah. Rumus yang digunakan sebagai berikut:

x_baru=x_lama + s_x .............................(5.1)

y_baru=y_lama + s_y .............................(5.2)

Penggunaan dalam bentuk program

xlama=x_baru - sx;

ylama=y_baru - sy;

Untuk penyederhanaan pembahasan, sx dan sy dianggap bertipe bilangan bulat.

3.3.6 Program penggeseran citra

f=imread('c:\image\gedung.tif');

[jum_baris,jum_kolom]=size(f);

sx=50; %penggeseran arah horizontal

sy=100; %penggeseran arah vertikal

f2=double(f);

g=zeros(size(f2));

for baris=1 : jum_baris

for kolom=1: jum_kolom

xlama=baris - sx;

ylama=kolom - sy;

22
if (xlama >=1) && (xlama<=jum_baris) && ...

(ylama >=1) && (ylama<=jum_kolom)

g(baris,kolom)=f2(xlama, ylama);

else

g(baris,kolom)=0;

end

end

end

h=uint8(g);

3.3.7 Output Program Penggeseran citra vertikal 100 dan horizontal 50\

3.3.8 Memutar Citra

23
Suatu citra dapat diputar dengan sudut θ seiring arah jarum jam atau arah berlawanan
arah jarum jam dengan pusat putaran pada koordinat (0,0). Adapun rumus yang
digunakan untuk memutar citra dengan sudut θ berlawanan arah jarum jam sebagai
berikut:

Xbaru = X * Cos(θ) + Y sin(θ)

Xbaru = X * Cos(θ) - Y sin(θ)

3.3.9 Program memutar citra sudut 10 derajat

f=imread('c:\image\gedung.tif');

[jum_baris, jum_kolom]=size(f);

sudut=10; %sudut pemutaran

rad=pi * sudut/180;

cosa=cos(rad);

sina=sin(rad);

%f2=double(f);

f2= f;

for y=1 : jum_baris

for x=1 :jum_kolom

x2=round(x * cosa + y * sina); %round =pembulatan keatas

y2=round(y * cosa - x * sina);

if (x2>= 1) && (x2<=jum_kolom) && ...

(y2 >=1) && (y2<=jum_baris)

g(y,x)=f2(y2,x2);

else

24
g(y,x)=0;

end

end

end

h=uint8(g);

3.3.10 Output program memutar citra 10 derajat

3.3.11 Memperbesar citra

Suatu citra dapat diperbesar dengan membuat setiap piksel menjadi beberapa piksel.
Gambar 5.13 memberikan contoh cara memperbesar citra.

25
3.3.12 Program memperbesar citra

function g = perbesar(berkas, sy, sx)

f = imread(berkas);

[baris, kolom] = size(f);

baris_baru = baris * sy;

kolom_baru = kolom * sx;

f2 = double(f);

for y=1 : baris_baru

y2 = ((y-1) / sy) + 1;

for x=1 : kolom_baru

x2 = ((x-1) / sx) + 1;

g(y, x) = f(floor(y2), floor(x2));

26
end

end

h = uint8(g);

end %akhir fungsi

u=imread('c:\image\lena128.tif');

z=perbesar('c:\image\lena128.tif',30,30);

subplot(1,2,1);imshow(u),title('citra masukan')

subplot(1,2,2);imshow(z),title('citra perbesar')

3.3.12 Output Program Pembesar citra sy= 3 sx = 2

27
3.3.13 Pencerimanan citra

Pencerminan yang umum dilakukan berupa pencerminan secara vertikal dan


pencerminan secara horizontal. Pencerminan secara horizontal dilakukan dengan
menukarkan dua piksel yang berseberangan kir-kanan, sebagaimana diperlihatkan pada
Gambar Berikut

3.3.14

28
ALGORITMA 5.1 – Mencerminkan gambar secara horizontal
Masukan:
 f (M,N): Citra masukan berukuran M baris dan N kolom
Keluaran:
 g (M, N): Hasil citra yang telah dicerminkan secara
horizontal

1. FOR baris  1 TO M
2. FOR kolom  1 TO N
3. g(baris, kolom)  f(N – baris + 1, kolom)
4. END-FOR
5. END-FOR

3.3.15 Program Pencerminan Horizontal dengan fungsi cara pertama

function g = cerminh(f)

[tinggi, lebar] = size(f);

for y=1 : tinggi

for x=1 : lebar

x2 = lebar - x + 1;

y2 = y;

g(y, x) = f(y2, x2);

end

end

end %akhir fungsi

f=imread('c:\image\boneka.tif');

h=cerminh(f);

29
subplot(1,2,1);imshow(f),title('citra masukan')

subplot(1,2,2);imshow(h),title('citra cermin horizontal')

3.3.16 Output program pencerminan Horizontal

3.3.17 Pencerminan citra dengan Vertikal

Pencerminan secara vertikal dilakukan dengan menukarkan dua piksel yang


berseberangan atas-bawah, sebagaimana diperlihatkan pada Gambar berikut

30
3.3.18 Algoritma Pencerminan secara vertical

ALGORITMA 5.2 – Mencerminkan gambar secara vertikal


Masukan:
 f (M,N): Citra masukan berukuran M baris dan N kolom
Keluaran:
 g (M, N): Hasil citra yang telah dicerminkan secara
horizontal

1. FOR baris  1 TO M
2. FOR kolom  1 TO N
3. g(baris, kolom)  f(baris, N – kolom + 1)
4. END-FOR
5. END-FOR

31
3.3.19 Program pencerminan citra vertikal

function g = cerminv(f)

% Masukan: f = Citra berskala keabuan

[tinggi, lebar] = size(f);

for y=1 : tinggi

for x=1 : lebar

x2 = x;

y2 = tinggi - y + 1;

g(y, x) = f(y2, x2);

end

end

h = uint8(g);

end %akhir fungsi

f=imread('c:\image\boneka.tif');

h=cerminv(f);

3.3.20 Output program pencerminan citra vertikal

32
33

Anda mungkin juga menyukai