Pengolahan Citra Digital (Tugas Mandiri)
PENGOLAHAN CITRA
DENGAN OCTAVE
1.1. Pengantar Pengolahan citra
1.1.1.
Pengertian pengolahan citra digital
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.
1.1.2. Aplikasi
pengoalahan citra
Berbagai
aplikasi pengolahan citra juga telah dilakukan di Indonesia. Beberapa contoh
ditunjukkan berikut ini.
•
Identifikasi sidik jari (Isnanto,
dkk., 2007)
•
Pencarian database orang
melalui foto orang (Aribowo, 2009)
•
Identifikasi kematangan buah tomat
(Noor dan Hariadi, 2009)
•
Identifikasi penyakit Diabetes
mellitus melalui citra kelopak mata (Rachmad, 2009)
•
Ekstraksi fitur motif batik (Mulaab,
2010)
•
Identifikasi telapak tangan (Putra
dan Erdiawan, 2010)
1.1.3.
Prinsip dasar dalam pengolahan citra
Ada beberapa
prinsip dasar dalam pengolah citra diantaranya ialah :
·
Peningkatan kecerahan dan kontras
Citra yang tidak jelas akibat kekurangan sinar ketika objek dibidik
melalui kamera digital, dengan pengolahan citra dapat diperbaiki melalui peningkatan kecerahan dan kontras.
·
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.
·
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.
1.2.
Pengenalan Dasar Citra
1.2.1.
Representasi citra digital
Citra digital dibentuk oleh kumpulan titik yang dinamakan piksel (pixel
atau picture element) setiap piksel digambarkan sebagai satu kotak kecil dan
setiap piksel mempunyai koordinat posisi. Sistem koordinat yang dipakai untuk
menyatakan citra digital ditunjukkan dengan gambar berikut.
Sistem
koordinat yang mengikuti asas pemindaian pada layar TV standar
itu, sebuah piksel mempunyai koordinat berupa (x,
y) hal ini,
x menyatakan posisi kolom;
y menyatakan posisi baris;
piksel pojok kiri-atas mempunyai koordinat (0, 0) dan piksel pada pojok
kanan-bawah mempunyai koordinat (N-1, M-1).
1.2.2. Kuantisasi citra
Citra digital
sesungguhnya dibentuk melalui pendekatan yang dinamakan kuantisasi. Kuantisasi
adalah prosedur yang dipakai untuk membuat suatu isyarat yang bersifat kontinu
ke dalam bentuk diskret. Ada kalanya, dalam proses sampling, warna rata-rata yang
didapat di relasikan ke level warna tertentu. Contohnya apabila dalam citra
hanya terdapat 16 tingkatan warna abu-abu, maka nilai rata-rata yang didapat
dari proses sampling harus diasosiasikan ke 16 tingkatan tersebut. Proses
mengasosiasikan warna rata-rata dengan tingkatan warna tertentu disebut dengan
kuantisasi.
1.2.3. Kualitas citra
Disamping cacah intensitas citra, jumlah piksel yang digunakan untuk
menyusun suatu citra mempengaruhi kualitas citra.
Istilah
resolusi citra biasanya dinyatakan dengan
jumlah piksel pada arah lebar dan tinggi.
Sampling:
halus / kasarnya pembagian kisi-kisi baris dan kolom. Transformasi citra kontinu
ke citra digital disebut digitisasi (sampling). Hasil digitisasi dengan jumlah
baris 256 dan jumlah kolom 256 adalah resolusi spasial 256 x 256.
resolusi
piksel dinyatakan dengan notasi m x n dengan m menyatakan tinggi dan n
menyatakan lebar dalam jumlah piksel.
1.2.4. Mengonversi jenis citra
Dalam praktik,
seringkali diperlukan
utuk mengonversi citra
berwarna ke dalam bentuk citra berskala keabuan mengingat banyak pemrosesan
citra yang bekerja pada skala keabuan.Namun, terkadang citra berskala keabuan
pun perlu dikonversikan ke citra biner, mengingat beberapa operasi dalam
pemrosesan citra berjalan pada citra biner.
Bagaimana cara
mengubah citra berwarna ke dalam citra berskala keabuan? Secara umum citra
berwarna dapat dikonversikan ke citra berskala keabuan melalui rumus:
dengan R menyatakan nilai komponen
merah, G menyatakan nilai komponen hijau, dan B menyatakan nilai komponen biru.
Dalam praktik citra berwarna seringkali harus dikonversi kedalam bentuk
citra berskala keabuan mengingat banyak pemrosesan citra yang bekerja pada
skala keabuan.namun citra keabuan juga perlu dikonversi kecitra bine, karena
operasi dalam pemrosesan citra berjalan pada citra biner.
1.3.
Operasi Piksel Dan Histogram
1.3.1. Operasi piksel
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))
T menyatakan fungsi atau macam
operasi yang dikenakan terhadap piksel f(y, x).
1.3.2. Menggunakan histogram citra
Histogram citra merupakan diagram yang menggambarkan frekuensi setiap nilai
intensitas yang muncul diseluruh piksel
citra. Nilai besar menyatakan bahwa piksel-piksel yang mempunyai intensitas
tersebut sangat banyak.
Pada citra berskala
keabuan, jumlah aras keabuan (biasa disimbolkan dengan L) sebanyak 256. Nilai
aras dimulai dari 0 hingga 255. Adapun histogram untuk suatu aras dinyatakan
dengan hist(k+1)
dengan k menyatakan nilai aras (0 sampai dengan L-1). Jadi,hist(k+1) menyatakan jumlah piksel
yang bernilai k. Penggunaan k+1 pada hist diperlukan mengingat dalam Octave dan MATLAB tidak ada indeks
nol atau hist(0). Cara menghitung hist(k+1) ditunjukkan pada algoritma berikut.
Program histogram
citra :
program histogram
citra keabuan
=============================
img=imread('c:\image\gedung.tif');
[jum_baris,jum_kolom]=size(img);
histogram=zeros(300,1);
for baris=1 :
jum_baris
for kolom=1 :
jum_kolom
histogram(img(baris,kolom) + 1) = ...
histogram(img(baris,kolom) + 1) + 1;
end
end
horijontal=(0:100) ;
bar(horijontal,histogram);
subplot(1,2,1);imshow(img)
subplot(1,2,2);bar(horijontal,histogram)
Hasil pengolahan dengan Octave dari program diatas :
1.3.3.
Meningkatkan kecerahan
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).
Perintah
dengan octave :
x=imread('c:\image\gue.jpg');
y= x + 100 ;
subplot(1,2,1);imshow(x)
subplot(1,2,2);imshow(y)
Hasil ketika
diruningkan pada Octave :
1.3.4.
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.
1.3.5.
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.
1.3.6. 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
1.3.7. Pemetaan
nonlinear
1.3.8.
Pemotongan aras keabuan
Program pemotongan aras
keabuan :
function
[img] = potong(citra,f1,f2)
img=imread(citra);
[jum_baris,jum_kolom]=size(img);
for
baris=1 : jum_baris
for
kolom=1 : jum_kolom
if img(baris, kolom ) <=f1
img(baris,kolom)=0;
end
if img(baris,kolom) >=f2
img(baris,kolom)=255;
end
end
end
end %akhir fungsi
h=potong('c:\image\daun.tif',30,140);
imshow(h)
p=imread('c:\image\daun.tif');
subplot(1,2,1);imshow(p)
subplot(1,2,2);imshow(h)
1.3.9.
Ekualisasi histogram
1.4. Operasi ketetanggan piksel
1.4.1.
Pengertian 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.
1.4.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
1.4.3.
Aplikasi ketetanggan piksel pada filter
Ada tiga jenis filter yang menggunakan operasi
ketetanggaan piksel yang akan dibahas sebagai pengantar pada bab ini. Ketiga
filter tersebut adalah filter batas, filter pererataan, dan filter median.
Sebagai filter atau tapis, operasi ketetanggaan piksel berfungsi untuk
menyaring atau paling tidak mengurangi gangguan atau penyimpangan pada citra.
1.5. Operasi geometric
1.5.1.
Pengantar 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. Secara prinsip, terdapat dua cara yang dapat
dipakai. Pertama yaitu pemetaan ke depan dan kedua berupa pemetaan ke belakang.
1.5.2.
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.
Dalam pengolahan citra
terdapat operasi aritmetik dan geometrik. Operasi aritmetik hanya mengubah intensitas
pixel namun tidak mengubah koordinat pixelnya, sedangkan operasi geometrik
sebaliknya , mengubah koordinat pixel namun intensitas tetap.
Program penggeseran citra :
f=imread('c:\image\gue.jpg');
[jum_baris,jum_kolom]=size(f);
sx=60; %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;
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);
subplot(1,2,1);imshow(f)
subplot(1,2,2);imshow(h)
Hasil dari penggeseran dengan menggunakan Octave :
1.5.3. Memutar
citra
Program memutar citra :
f=imread('c:\image\gue.jpg');
[jum_baris, jum_kolom]=size(f);
sudut=25; %sudut pemutaran
rad=pi * sudut/180;
cosa=cos(rad);
sina=sin(rad);
f2=f;
for y=1 : jum_baris
for x=1 :jum_kolom
x2=round(x * cosa + y * sina);
y2=round(y * cosa - x * sina);
if (x2>= 1) &&
(x2<=jum_kolom) && ...
(y2 >=1) && (y2<=jum_baris)
g(y,x)=f2(y2,x2);
else
g(y,x)=0;
end
end
end
subplot(1,2,1);imshow(f)
subplot(1,2,2);imshow(g)
1.5.4.
Memperbesar citra
Suatu citra dapat diperbesar dengan membuat setiap piksel menjadi beberapa piksel.
Program memperbesar Citra dengan fungsi
----------------------------------------------------
function g = perbesar(citra, sy, sx)
f = imread(citra);
[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));
end
end
h = uint8(g);
end %akhir fungsi
u=imread('c:\image\gue.jpg');
z=perbesar('c:\image\gue.jpg', 0.25, 0.25);
subplot(1,2,1);imshow(u),title('citra masukan')
subplot(1,2,2);imshow(z),title('citra perbesar')
1.5.5.
Memperkecil citra
function g = perkecil(citra, sy, sx)
f = imread(citra);
[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));
end
end
h = uint8(g);
end %akhir fungsi
u=imread('c:\image\gue.jpg');
z=perkecil('c:\image\gue.jpg', 0.25, 0.25);
subplot(1,2,1);imshow(u),title('citra masukan')
subplot(1,2,2);imshow(z),title('citra perkecil')
Citra keluaran dari program diatas :
1.5.6.
Pencerminan citra
Pencerminan
yang umum dilakukan berupa pencerminan secara vertikal dan pencerminan secara
horizontal. Pencerminan secara horizontal dilakukan dengan menukarkan dua
piksel yang berseberangan kiri-kanan, sebagaimana diperlihatkan
pada Gambar Berikut :
program pencerminan citra secara horizontal dengan fungsi
==============================================
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
h = uint8(g);
end %akhir fungsi
f=imread('c:\image\gue.jpg');
h=cerminh(f);
subplot(1,2,1);imshow(f),title('citra masukan')
subplot(1,2,2);imshow(h),title('citra cermin horizontal')
Kesimpulan
Pengolahan citra menjadi suatu yang sangat diperlukan pada
era digital saat ini. Pengolahan dilakukan untuk mendapatkan hasil citra yang
diinginkan. Seorang yang ahli informatika tentu tidak hanya bisa menggunakan
aplikasi pengolahan citra tetapi juga harus mengetahui bagaimana citra tersebut
dari citra asli dimanipulasi menjadi citra yang diinginkan. Tentu saja, ini
berhubungan dengan kode program yang menjadi dasar pengolahan citra. Dalam hal
ini dibantu dengan tool yakni OCTAVE. Dengan tool ini kita mendapatkan gambaran
secara umum proses sebuah citra diolah ke bentuk lain dengan menggunakan
algoritma dan pemrograman.






Komentar
Posting Komentar