PENDAHULUAN
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.
1
6. Identifikasi telapak tangan (Putra dan Erdiawan, 2010)
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
2
BAB II
PEMBAHASAN
3
2.2 Pengertian 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
1. Filter Batas
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.
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)]);
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:
8
≅62
f = imread('c:\image\mobil.tif');
f2=double(f);
f2(baris+1, kolom + 1) ;
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))
f = imread('c:\image\mobil.tif');
11
for baris=2 : jum_baris - 1
f(baris+1, kolom-1)];
%urutkan
for i=1 : 8
for j=i+1 : 9
temp =data(i);
data(i)=data(j);
data(j)=temp;
end
end
end
12
g(baris,kolom)=data(5);
end
end
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.
FOR i 1 TO M
FOR j1 TO N
END-FOR
END-FOR
img=imread('c:\image\gunung.tif');
[jum_baris,jum_kolom]=size(img);
histogram=zeros(256,1);
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)
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
x=imread('c:\image\bunga.tif');
y= x + 50 ;
subplot(1,2,1);imshow(x)
subplot(1,2,2);imshow(y)
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)
x=imread(‘c:/image/gembala.tif’);
c=x – 45;
k=c * 11;
subplot(1,2,1);imshow(x)
subplot(1,2,2);imshow(k)
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:
x=imread(‘c:/lmage/lena128.tif’);
y=255 – x;
subplot(1,2,1);imshow(x)
subplot(1,2,2);imshow(z)
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.
21
3.3.5 Menggeser Citra
xlama=x_baru - sx;
ylama=y_baru - sy;
f=imread('c:\image\gedung.tif');
[jum_baris,jum_kolom]=size(f);
f2=double(f);
g=zeros(size(f2));
xlama=baris - sx;
ylama=kolom - sy;
22
if (xlama >=1) && (xlama<=jum_baris) && ...
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\
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:
f=imread('c:\image\gedung.tif');
[jum_baris, jum_kolom]=size(f);
rad=pi * sudut/180;
cosa=cos(rad);
sina=sin(rad);
%f2=double(f);
f2= f;
g(y,x)=f2(y2,x2);
else
24
g(y,x)=0;
end
end
end
h=uint8(g);
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
f = imread(berkas);
f2 = double(f);
y2 = ((y-1) / sy) + 1;
x2 = ((x-1) / sx) + 1;
26
end
end
h = uint8(g);
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')
27
3.3.13 Pencerimanan citra
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
function g = cerminh(f)
x2 = lebar - x + 1;
y2 = y;
end
end
f=imread('c:\image\boneka.tif');
h=cerminh(f);
29
subplot(1,2,1);imshow(f),title('citra masukan')
30
3.3.18 Algoritma Pencerminan secara vertical
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)
x2 = x;
y2 = tinggi - y + 1;
end
end
h = uint8(g);
f=imread('c:\image\boneka.tif');
h=cerminv(f);
32
33