Jumat, 21 Oktober 2016

Pengertian Teori Konvolusi

TEORI KONVOLUSI

         Konvolusi (convolution) adalah sebuah proses dimana citra dimanipulasi dengan menggunakaneksternal mask / subwindows untuk menghasilkan citra yang baru. Sedangkan Filtering
tanpa menggunakan ekternal mask tetapi hanya menggunakan pixel tetangga untuk mendapatkan pixel yang baru.

Konvolusi sangat banyak dipergunakan dalam pengolahan citra untuk memperhalus (smoothing), menajamkan (crispening), mendeteksi tepi (edge detection), serta efek lainnya.

1. Embossing
Embossing yaitu membuat citra seolah diukir pada permukaaan selembar nikel. Koefisien jendela konvolusi memiliki bobot tengah bernilai 0 & jumlah seluruh bobot = 0.

2. Blurring
Blurring (Pengaburan) yaitu filter spasial low-pass yang melenyapkan detil halus dari suatu citra. Pengaburan dicapai melalui konvolusi dari seluruh koefisien mask bernilai sama. Blurring ini perataan nilai pixel-pixel tetangga, makin besar ukuran mask maka makin besar efek pengaburan

3. Sharpening
Sharpening (Penajaman) yaitu memperjelas detil suatu citra(menambah kontras) dengan penjumlahan atas citra tepi dengan citra aslinya maka bagian tepi objek akan terlihat berbeda dengan latarnya, sehingga citra terkesan lebih tajam.

4. Edge Detection
Deteksi tepi yaitu proses menentukan lokasi titik-titik yang merupakan tepi objek.


Konvolusi berguna pada proses pengolahan citra seperti :
  • Perbaikan kualitas citra (image enhancment)
  • penghilang derau (noise)
  • mengorangi erotan (mencong/serong)
  • penghalusan / pembulatan citra
  • dll

Secara matematis, konvolusi adalah integral yang mencerminkan jumlah lingkaran dari sebuah sudut fungsi F yang digeser atas fungsi g sehingga menghasilkan fungsi h. Konvolusi dilambangkan dengan arsterik (*). Sehingga, F*g=h berarti fungsi F dikonvolusikan dengan fungsi g menghasilkan fungsi h.

konvolusi dua buah fungsi F(x) dan g(x) di definiskan sebagai berikut :
integral dari -tak hingga sampai tak terhingga. Untuk fungsi diskrit, konvolusi di definisikan sebagai :

g(x) disebut dengan kernel konvolusi (filter). Kernel g(x) merupakan jendela yang dioperasikan secara bergeser pada sinyal masukan F(x). Hasil konvolusi dinyatakan dengan keluaran h(x).

Ilustrasi Konvolusi : F(i,j)

F(i,j) = AP1+BP2+CP3+DP4+EP5+FP6+GP7+HP8+IP9

Contoh, misal citra F(x,y) yang berukuran 5x5 sebuah kernel dengan 3x3 matriks sebagai berikut :
Tahapan menghitung hasil konvolusi :

  1. Menempatkan kernel pada sudut kiri atas, kemudian hitung nilai pixel pada posisi (0,0) dan kernel hasil = (3)
  2. Geser kernel satu pixel ke kanan, kemudian hitung nilai pixel pada posisi (0,0) dan kernel hasil = (0)
  3. Selanjutnya dengan cara yang sama geser ke kanan dan seterusnya
  4. Geser kernel satu pixel ke bawah, lakukan perhitungan seperti di atas
  5. Nilai pixel citra tepi tidak berubah
  6. Sehingga di dapatkan hasil sebagai berikut


Hasil Print Screen dari aplikasi Konvolusi dengan Matlab (GUI)

Berikut adalah langkah-langkah yang diperlukan :

1. Buat layout GUI yang terdiri dari 2 axes, 2text, 2button seperti gambar dibawah ini.


2. Klik kanan pada button 'Buka Gambar', klik View Callbacks > Callback

3. Isikan source code untuk tombol "Buka Gambar" seperti dibawah ini:

4. Klik kanan pada button 'Histeq', klik View Callbacks > Callback. Lalu isikan kode berikut :



GIm = handles.data1;
numofpixels=size(GIm,1)*size(GIm,2);
imshow(GIm);
HIm=uint8(zeros(size(GIm,1),size(GIm,2)));
freq=zeros(256,1);
probf=zeros(256,1);
probc=zeros(256,1);
cum=zeros(256,1);
output=zeros(256,1);   

%freq counts the occurrence of each pixel value.
%The probability of each occurrence is calculated by probf.
for  i=1:size(GIm,1)
     for  j=1:size(GIm,2)   
        value=GIm(i,j);
        freq(value+1)=freq(value+1)+1;
        probf(value+1)=freq(value+1)/numofpixels;
     end
end

sum=0;
no_bins=255;

%The cumulative distribution probability is calculated. 
for  i=1:size(probf)
   sum=sum+freq(i);
   cum(i)=sum;
   probc(i)=cum(i)/numofpixels;
   output(i)=round(probc(i)*no_bins);   
end

for  i=1:size(GIm,1)
     for  j=1:size(GIm,2)
             HIm(i,j)=output(GIm(i,j)+1);  
     end   
end

axes(handles.axes2);
imshow(HIm);
handles.data2 = HIm;
guidata(hObject,handles);


figure( 'Position' ,get(0, 'screensize' ));
dat=cell(256,6);
for  i=1:256   
dat(i,:)={i,freq(i),probf(i),cum(i),probc(i),output(i)};      
end

columnname =   { 'Bin' ,  'Histogram' ,  'Probability' ,  'Cumulative histogram' , 'CDF' , 'Output' };
columnformat = { 'numeric' ,  'numeric' ,  'numeric' ,  'numeric' ,  'numeric' , 'numeric' };
columneditable =  [false false false false false false];
t = uitable( 'Units' , 'normalized' , 'Position' , ...
            [0.1 0.1 0.4 0.9],  'Data' , dat, ...
             'ColumnName' , columnname, ...
             'ColumnFormat' , columnformat, ...
             'ColumnEditable' , columneditable, ...
             'RowName' ,[]); 
    subplot(2,2,2); bar(GIm);
    title( 'Sebelum Histogram equalization' );
    subplot(2,2,4); bar(HIm);
    title( 'Sesudah Histogram equalization' );




5. Simpan project. Lalu coba jalankan aplikasi. Hasilnya akan seperti berikut

Coba masukan gambar, dengan menekan tombol Buka Gambar,


Kemudian lakukan histogram equalization dengan menekan tombol histeq, hasilnya akan seperti dibawah ini :







Daftar Pustaka


1. http://www.hanivinside.net/2016/10/histeq-pada-pengohan-citra.html
2. http://topikisblog.blogspot.co.id/2015/01/konvolusi-pada-pengolahan-citra.html
3. http://kuliah-kami.blogspot.co.id/2012/04/proses-konvolusi-untuk-mengolah-citra.html









Jumat, 07 Oktober 2016

Pengertian Pengolahan Citra

Pengolahan Citra


               Citra merupakan informasi bentuk visual dari suatu objek. Citra juga dapat diartikan sebagai gambaran yang representatif mengenai suatu objek sedemikian sehingga citra tersebut dapat memberikan kesan yang mendalam mengenai objek yang dimaksud. Citra dapat membentuk dua dimensi dan tiga dimensi dan merepresentasikan bentuk suatu objek. Untuk melakukan proses komputasi, citra yang bersifat kontinu harus didigitalisasi terlebih dahulu sehingga didapatkan citra digital. Citra digital memiliki fungsi dua dimensi f(x,y) dimana x dan y merupakan suatu koordinat dan f dari (x,y) menyatakan amplitudo atau intensitas atau derajat keabuan (grayscale). Nilai tingkat keabuan pada citra digital disebut sebagai piksel pada posisi tertentu. Nilai x, y dan f dari (x,y) merupakan nilai diskrit atau berhingga. Citra digital dalam bentuk matriks dapat dituliskan sebagai berikut :

citra1
Gambar Representasi Citra Digital 2 Dimensi
 Pada matriks citra digital f(x,y), nilai x dan y menyatakan koordinat posisi piksel itu berada, dan nilai f(x,y) menunjukkan intensitas (derajat keabuan) piksel pada koordinat tersebut. Hal ini dapat dilihat pada gambar di bawah ini.


 Pengolahan Citra Digital

Pengolahan citra digital merupakan metode untuk mengolah citra digital sehingga menghasilkan gambar lain sesuai dengan kebutuhan masing-masing. Pengolahan citra sendiri merupakan salah satu cabang dari ilmu informatika yang pada prosesnya memanipulasi gambar yang telah ada menjadi gambar lain dengan menggunakan suatu algoritma atau teknik tertentu. Citra yang diolah merupakan citra digital yang merupakan sekumpulan bilangan yang direpresentasikan oleh bit berhingga. Proses pengolahan citra banyak melibatkan persepsi visual, dan mempunyai ciri data masukan dan informasi keluaran yang berbentuk citra

Komputer memiliki cara pandang tersendiri terhadap suatu citra. Berbeda dengan citra konvensional yang misalnya dengan melalui proses fotografis seperti pada foto dapat dihasilkan suatu citra nyata yang langsung dapat dinikmati oleh indera penglihatan, citra pada komputer harus melalui beberapa tahapan yang cukup rumit. Tahapan-tahapan tersebut dapat digambarkan sebagai suatu rangkaian proses dari proses akuisisi data, manipulasi data, visualisasi data, serta proses penyimpanan data.

Proses akuisisi citra adalah pemetaan suatu pandangan menjadi citra kontinu dengan menggunakan suatu sensor. Ada beberapa macam sensor untuk proses akuisisi citra, yaitu sensor tunggal, sensor garis dan sensor larik.

Proses penyimpanan data adalah suatu proses dimana data citra digital disimpan dalam suatu file. Metode penyimpanan file memiliki perbedaan satu sama lain. Hal yang paling kontras terlihat dari perbedaan tersebut adalah proses kompresi dari citra digital yang disimpan. Beberapa metode yang terkenal antara lain BMP, JPEG, PCX, WMF dan lain-lain

 Dalam Tugas Akhir ini pengolahan citra digital ini lebih dititikberatkan pada image analysis. Dengan menggunakan image analysis maka ekstraksi ciri-ciri tertentu yang dimiliki citra akan diambil untuk membantu dalam pengidentifikasian objek.


Citra RGB

Red (Merah), Green (Hijau) dan Blue (Biru) merupakan warna dasar yang dapat diterima oleh mata manusia. Setiap piksel pada citra warna mewakili warna yang merupakan kombinasi dari ketiga warna dasar RGB. Setiap titik pada citra warna membutuhkan data sebesar 3 byte. Setiap warna dasar memiliki intensitas tersendiri dengan nilai minimum nol (0) dan nilai maksimum 255 (8 bit). RGB didasarkan pada teori bahwa mata manusia peka terhadap panjang gelombang 630nm (merah), 530 nm (hijau), dan 450 nm (biru).

RGB
Gambar Representasi Warna pada RGB
 Pada di atasdapat diambil beberapa kesimpulan yaitu:

RGB terdiri dari tiga warna utama, yaitu merah, hijau, dan biru.
Campuran dua warna pada RGB menghasilkan warna baru, yaitu kuning = merah + hijau, cyan = hijau + biru, dan magenta = biru + merah.
Bila seluruh warna merah, hijau, dan biru dicampur akan menghasilkan warna putih.
Bila warna merah, hijau, dan biru tidak dicampur maka akan menghasilkan warna hitam.
Jenis warna lain akan dihasilkan oleh variasi campuran warna dan intensitas campuran setiap warna
Citra Grayscale

Citra grayscale merupakan citra digital yang hanya memiliki satu nilai kanal pada setiap pikselnya, artinya nilai dari Red = Green = Blue. Nilai-nilai tersebut digunakan untuk menunjukkan intensitas warna.

Citra yang ditampilkan dari citra jenis ini terdiri atas warna abu-abu, bervariasi pada warna hitam pada bagian yang intensitas terlemah dan warna putih pada intensitas terkuat. Citra grayscale berbeda dengan citra ”hitam-putih”, dimana pada konteks komputer, citra hitam putih hanya terdiri atas 2 warna saja yaitu ”hitam” dan ”putih” saja. Pada citra grayscale warna bervariasi antara hitam dan putih, tetapi variasi warna diantaranya sangat banyak. Citra grayscale seringkali merupakan perhitungan dari intensitas cahaya pada setiap piksel pada spektrum elektromagnetik single band

Citra grayscale disimpan dalam format 8 bit untuk setiap sample piksel, yang memungkinkan sebanyak 256 intensitas. Untuk mengubah citra berwarna yang mempunyai nilai matrik masing-masing R, G dan B menjadi citra grayscale dengan nilai X, maka konversi dapat dilakukan dengan mengambil rata-rata dari nilai R, G dan B sehingga dapat dituliskan menjadi:

X = (R+G+B)/3

Warna = RGB(X, X, X)

grey
Gambar Visualisasi 256 Aras Keabuan
Citra Biner

 Citra biner (binary image) adalah citra digital yang hanya memiliki 2 kemungkinan warna, yaitu hitam dan putih. Citra biner disebut juga dengan citra W&B (White&Black) atau citra monokrom. Hanya dibutuhkan 1 bit untuk mewakili nilai setiap piksel dari citra biner.

Pembentukan citra biner memerlukan nilai batas keabuan yang akan digunakan sebagai nilai patokan. Piksel dengan derajat keabuan lebih besar dari nilai batas akan diberi nilai 1 dan sebaliknya piksel dengan derajat keabuan lebih kecil dari nilai batas akan diberi nilai 0.

Citra biner sering sekali muncul sebagai hasil dari proses pengolahan, seperti segmentasi, pengambangan, morfologi ataupun dithering. Fungsi dari binerisasi sendiri adalah untuk mempermudah proses pengenalan pola, karena pola akan lebih mudah terdeteksi pada citra yang mengandung lebih sedikit warna.

Persamaan untuk binerisasi dapat dilihat pada rumus di bawah ini :

persamaannilai a1 biasanya 0 dan nilai a2 = 1




Print Screen dari aplikasi pengolahan citra dengan matlab (GUI)


1. rancangan GUI MATLAB yang terdiri dari 2 axes, 3 pushbutton, 1 slider, dan 1 edit text



2. Ketika di Run dan sudah memasukan Listing program pada 2 axes dan buton-button maka hasilnya seperti dibawah ini



3. Hasil ketika klik open image, untuk proses pengambilan gambar



4. Hasil dari pengubahan gambar ke Grascale



5. Hasil gambar ketika nilai slider di ubah.







Daftar Pustaka

https://pemrogramanmatlab.wordpress.com/2016/09/30/thresholding_citra/#more-17

http://achmadrizal.staff.telkomuniversity.ac.id/pengolahan-citra/