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

Postingan populer dari blog ini

Tutorial MS. Word 2010

Codding Octav (551)