THOUSANDS OF FREE BLOGGER TEMPLATES

Sabtu, 10 Desember 2011

Tugas Pengantar Pengolahan Citra - Pemberian Efek Noise Untuk Smoothing


Nama Kelompok : 1. Adityo Eko Wibowo  (50408036)
                           2. Alfian Nur Romadhon (50408085)
Kelas                  : 4A11
UNIVERSITAS GUNADARMA

Penggunaan citra digital pada saat ini telah menjadi trend tersendiri. Namun, ketika dilakukan proses pengambilan gambar, seringkali terdapat noise yang masuk ke dalam citra, sehingga menyebabkan timbulnya bercak-bercak yang tidak beraturan. Jika hal ini terjadi, maka proses pengolahan citra yang akan memberikan hasil yang optimal. Oleh karena itu, diperlukan suatu proses noise filtering untuk mengurangi noise yang terdapat padanya. Pada kasus noise seperti ini, kita gunakan SVD (Singular Value Decomposition) dengan bantuan DFT (Discrete Fourier Transform) untuk mengurangi noise yang terdapat pada citra digital. Noise yang dibangkitkan untuk simulasi adalah Additive Gaussian Noise dan Additive Laplacia Noise. Dengan metode ini, matriks yang merepresentasikan citra ter-noise akan diuraikan, sehingga penelitian dapat diketahui komponen-komponen matriks ang terpengaruh oleh noise tersebut. Dari hasil penelitian, dapat diketahui bahwa SVD dengan bantuan DFT dapat digunakan untuk mengurangi noise pada citra digital, dan ketika parameter input yang diberikan pun lebih baik dibandingkan dengan tanpa bantuan DFT.
Pada pembuatan program ini, kami menggunakan Matlab sebagai bahasa pemprograman  untuk membuat noise filtering dan smoothing. Berikut penjelasan logikanya :

Mengubah warna asli ke citra keabuan (Grayscale)
Pada program ini, gambar yang bisa di konversikan ke derajat pengabuan hanya berektensi *.bmp karena batas resolusi gambar yang mempunyai format tersebut tidak terlalu tinggi dibandigkan dengan yang berekstensi *.jpg sehingga mudah di konversikan ke derajat pengabuan.

[namafile,direktori]=uigetfile('*.bmp','Buka file');
gbr1 = imread([direktori,namafile],'bmp');

Lalu di konversikan ke derajat pengabuan, menggunakan citra true color yaitu RGB dengan warna gray (abu-abu) dari colormap.

colormap(gray);
gbr1 = rgb2gray(gbr1);

Setelah semua dipindahkan menjadi keabuan, akan ditampilkan pada axes yang menjadi tempat untuk penampilan objek sesuai dengan ukuran yang telah diatur sebelumnya sesuai dengan luas axes [lbr_im,pjg_im].

ori_image=imagesc(gbr1, ...
    'parent',axes1);
set(win1,'CurrentAxes',axes1);
[lbr_im,pjg_im]=size(gbr1)
    gbr1 = double(gbr1);
set(axes1,'visible','off');%

Memberikan efek noise sesuai metode Gaussian dan metode Laplacian
Level noise menentukan kepekatan keabuan dari gambar yang akan diberi noise. Semakin tinggi nilainya, semakin pekat keabuan di gambar tersebut. Pada level noise mempunyai empat tingkatan yaitu 10, 20, 30, dan 50.

pop_ind = get(popup4,'Value');
switch pop_ind
case 1
   v = 10;
case 2
   v = 20;
case 3
   v = 30;
case 4
   v = 40;
end

epsilon = 1e-5;
infinity = 255;
gbr2 = gbr1;

Memilih metode Gaussian atau metode Laplacian
Suatu citra dapat dipresentasikan secara numeric maka citra tersebut harus digital, baik terhadap ruang koordinat (x,y) maupun terhadap skala keabuannya f(x,y). Proses digitalisasi koordinat (x,y) dikenal sebagai Pencuplikan Citra (Image Sampling), sedangkan proses digitalisasi skala keabuan f(x,y)  disebut sebagai Kuantisasi Derajat Keabuan (Gray Level Quantization).
Sebuah citra kontinu f(x,y) akan didekati oleh cuplikan-cuplikan yang seragam jaraknya dalam bentuk matrik N x N. Nilai elemen-elemen matriks menyatakan derajat keabuan citra, sedangkan posisi elemen tersebut (dalam baris dan kolom) menyatakan koordinat titik-titik (x,y) dari citra tersebut. Pada metode ini yang digunakan adalah metode Gaussian dan Laplacian. Metode ini berpengaruh pada kualitas citra pengabuan suatu gambar.

case 1
  gbr2 = gbr1 + v*randn(size(gbr1));
case2
  u = rand(size(gbr1));
  ul = u;
  [he,we]=size(gbr1);
  for i=1:we-1,
      for j=1:he-1,
          if(u(i,j) <= 0.5),
             if(u(i,j) <=epsilon)
                gbr2(i,j) = gbr1(i,j) - infinity;
             else
                gbr2(i,j) = round(gbr1(i,j) + v*log2(2.0 * u(i,j)));
             end;
          else
             u1(i,j) = 1 - u(i,j);
             if(ul(i,j) <= (0.5 * epsilon))
                gbr2(i,j) = gbr(i,j) - infinity;
          else
               gbr2(i,j) = round(gbr1(i,j) + v*log2(2.0 * u1(i,j)));
         end;
        end;
        if(gbr2(i,j) < 0 )
           gbr2(i,j) = 0;
        end;
        if(gbr2(i,j) > 255 )
           gbr2(i,j) = 255;
     end;

Disini kami tidak membahas untuk membuat program ini secara keseluruhan dimula dari penginstalan MatLab, Pembuatan GUI (Graphic User Interface) untuk membuat program ini, dan penjelasan lengkap tentang kode program dari awal sampai akhir. Karena terlalu panjang dan membosankan untuk dibaca, maka dari itu disini kami hanya mengambil poin-poin terpentingnya saja yang terdapat pada program ini.
Untuk tampilan dan proses apa saja yang dapat terjadi pada program ini, kami memberikan screenshot dari program ini. Aplikasi ini menyediakan beberapa tombol menu pada sebuah form utama. Menu tersbut digunakan untuk mengakses :
* Browsing gambar
* Tambahkan noise
* Hilangankan noise
* Keluar


Pada bagian browsing gambar untuk mengambil file gambar yang formatnya berbentuk *.bmp dan mengubahnya ke dalam efek noising agar terlihat lebih bagus.



Aplikasi melakukan perubahan pada gambar setelah dihilangkan noise-nya dengan pilihan metode yang ditentukan. Hasil pengolahan ditampilkan pada bagian gambar setelah dihilangkan noise-nya, sebagai berikut :


Dari gambar diatas bisa dilihat perbedaannya antara gambar awal, lalu gambar yang diberi noise, dan proses terakhir yaitu gambar yang dihilangkan noise-nya terlihat lebih sedikit terdapat bercak-bercak dibandingkan dengan gambar yang diberi noise.

Demikian sedikit penjelasan dari kami mengenai pemberian efek noise untuk smoothing ini. Semoga bermanfaat bagi yang sudah membaca postingan ini. Dan disini kami masih belajar, mungkin teman-teman punya pendapat lain silakan di share kami akan menerima nya dengan senang hati :D.

Readmore