19
LAPORAN PENGOLAHAN CITRA Diajukan dalam rangka menyelesaikan mata kuliah pengolahan citra Oleh : Nama : Ahmad Juheri Nim : 4211410021 Jurusan : Fisika Fakultas : FMIPA JURUSAN FISIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

ujian pengolahan citra

Embed Size (px)

DESCRIPTION

praktikum

Citation preview

Page 1: ujian pengolahan citra

LAPORAN PENGOLAHAN CITRA

Diajukan dalam rangka menyelesaikan mata kuliah pengolahan citra

Oleh :

Nama : Ahmad Juheri

Nim : 4211410021

Jurusan : Fisika

Fakultas : FMIPA

JURUSAN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS NEGERI SEMARANG

2013/2014

Page 2: ujian pengolahan citra

1. Menambahkan salt and pepper noise (10%) pada foto pribadi, lalu menghilangkannya

dengan metode average filtering, median filtering, the outlier method dan pseudo median

filtering

CITRA AWAL

SOURCE CODE

%membaca citra

juheri=imread('juheri.jpg');

% Mengubah citra ke tipe gray image

j=rgb2gray(juheri);

%menambahkan salt & pepper noise sebesar 10%

j_sp=imnoise(j,'salt & pepper',0.1);

%membuat dan menambahkan filter rata-rata pada citra

fa=fspecial('average');

jfa=filter2(fa,j_sp);

%filter median

jme=medfilt2(j_sp);

%The outlier method

d=0.2;

f=[0.125 0.125 0.125; 0.125 0 0.125; 0.125 0.125 0.125];

imd=im2double(j_sp);

imf=filter2(f,imd);

Page 3: ujian pengolahan citra

r=abs(imd-imf)-d>0;

res=im2uint8(r.*imf+(1-r).*imd);

%Pseudo Median Filter

max=ordfilt2(j_sp,9,ones(3,3));

min=ordfilt2(j_sp,1,ones(3,3));

psmed=1/2*(ordfilt2(min,9,ones(3,3)))

+1/2*(ordfilt2(max,1,ones(3,3)));

%menampilkan Hasil

subplot(2,3,1)

imshow(juheri)

title('asli')

subplot(2,3,2)

imshow(j_sp)

title ('salt & pepper 10%')

subplot(2,3,3)

imshow(jfa/255)

title ('average filter')

subplot(2,3,4)

imshow(jme)

title('median filter')

subplot(2,3,5)

imshow(res)

title('The Outlier Method')

subplot(2,3,6)

imshow(psmed)

title('Pseudo Median')

Page 4: ujian pengolahan citra

CITRA AKHIR

PEMBAHASAN

Derau salt and pepper juga sering disebut derau impuls (impulse noise), shot noise, atau

derau biner (binary noise). Degradasi oleh derau ini disebabkan oleh gangguan yang tajam

dan tiba-tiba (sharp and sudden) pada sinyal citra. Derau salt and pepper pada citra akan

berupa titik-titik (piksel) hitam atau putih (atau kedua-duanya) yang tersebar pada citra.

Untuk menambahkan derau salt and pepper pada citra cukup dengan menggunakan perintah

IMNOISE(I,salt&pepper,D) dengan I adalah citra dan D adalah densitas atau kepekatan

derau pada citra.

Filter pererata dapat digunakan untuk menghilangkan derau salt & pepper. Untuk

membuat filter pererata dalam matlab dapat menggunakan sintak fspecial (‘average’). Dan

untuk melakukan linier filtering pada citra dapat menggunakan sintak filter2(filter,image).

Dari hasil yang diperoleh dapat dilihat untuk filter pererata hasil yang diperoleh tidak terlalu

baik masih terdapat derau pada citra. Semakin besar filter pererata yang digunakan maka

Page 5: ujian pengolahan citra

semakin besar pula derau yang dihilangkan namun dapat mengakibatkan citra menjadi

kabur.

Outlier metode pertama kali diperkenalkan oleh Pratt dengan menganggap bahwa piksel-

piksel derau sebagai piksel yang salah tempat (outlier), yaitu piksel yang nilai aras

keabuannya jauh berbeda dengan piksel-piksel disekitarnya. Dengan anggapan ini, maka

dapat dilakukan pendekatan untuk menghilangkan derau sebagai berikut.

1. Pilih sebuah nilai ambang D

2. Untuk sebuah piksel tertentu p, bandingkan nilai p tersebut dengan nilai rerata m dari

8 piksel tetangganya.

3. Jika |p – m| > D, maka klasifikasikan piksel tersebut sebagai piksel derau. Jika tidak

maka piksel tersebut bukan piksel derau.

4. Jika piksel tsb adalah derau maka ganti nilainya dengan m, jika bukan derau maka

nilainya tidak diubah.

Hasil yang diperoleh dengan menggunakan metode ini lebih baik dari hasil ketika

menggunakan filter pererata.

Dari beberapa metode filter yang digunakan untuk menghilangkan derau salt & pepper

diperoleh hasil bahwa median filter paling cocok untuk menghilangkan atau mengurangi

derau ini. Median adalah nilai tengah dari serangkaian nilai yang telah diurutkan, jika ada

sejumlah genap nilai maka median adalah rerata dari dua nilai yang berada pada urutan

tengah. Filter median merupakan salah satu contoh filter spasial non linear. Operasi untuk

memperoleh nilai median akan menempatkan nilai yang sangat besar atau sangat kecil

berada pada ujung atas atau ujung bawah urutan. Dengan demikian filter median secara

umum akan mengganti piksel-piksel yang berderau dengan suatu nilai yang dekat dengan

piksel-piksel disekitarnya.

2. Menambahkan Gaussian noise pada foto pribadi, lalu menghilangkannya dengan metode

average filtering dan adaptive filtering

CITRA AWAL

Page 6: ujian pengolahan citra

SOURCE CODE

%membaca citra

juheri=imread('juheri.jpg');

% Mengubah citra ke tipe gray image

j=rgb2gray(juheri);

%menambahkan gaussian noise

j_g=imnoise(j,'gaussian');

%membuat dan menambahkan filter rata-rata pada citra

fa=fspecial('average');

jfa=filter2(fa,j_g);

%adaptive filtering

jad=wiener2(j_g);

%menampilkan hasil

subplot(2,2,1)

imshow(juheri)

title('asli')

subplot(2,2,2)

imshow(j_g)

title('gaussian')

subplot(2,2,3)

imshow(jfa/255)

title('average')

subplot(2,2,4)

imshow(jad)

title('adaptive')

Page 7: ujian pengolahan citra

CITRA HASIL

PEMBAHASAN

Derau Gaussian adalah derau putih yang mempunyai distribusi normal. Jika citra dinyatakan

dengan I dan derau Gaussian dinyatakan dengan N, maka citra yang memiliki derau

Gaussian dinyatakan dengan cara menambahkan keduanya yaitu I + N. Matlab mempunyai

fungsi untuk membuat simulasi derau jenis Gaussian, yaitu fungsi

J = IMNOISE (I, 'gaussian')

Untuk menghilangkan derau Gaussian dapat menggunakan pendekatan sederhana, yaitu

dengan mengambil rerata dari seluruh citra yang ada. Oleh karena itu kita dapat

menggunakan filter pererata. Dari hasil yang diperoleh, dapat kita lihat filter pererata dapat

menghilangkan derau Gaussian meskipun tidak semuanya. Semakin besar ukuran filter

pererata maka akan diperoleh gambar yang lebih bersih namun juga mengakibatkan gambar

menjadi kabur. Selain filter pererata kita juga menggunakan filter adaptif meskipun hasil

Page 8: ujian pengolahan citra

yang diperoleh tidak sebaik filter pererata. Filter adaptif merupakan jenis filter yang

mengubah karakteristiknya sesuai dengan nilai-nilai aras keabuan yang berada dalam mask,

akan berlaku seperti filter median atau berlaku seperti filter average, bergantung pada

posisinya pada citra. Salah satu filter jenis ini adalah filter wiener. Biasanya filter wiener

diterapkan dalam domain frekuensi. Sintaks dalam Matlab adalah sbb.

[J, NOISE] = WIENER2 (I)

3. Menambahkan periodic noise pada foto pribadi, lalu menghilangkannya dengan metode

band reject filtering dan notch filtering

CITRA AWAL

SOURCE CODE

%membaca citra

j=imread('juheri.jpg');

% Mengubah citra ke tipe gray image

j=rgb2gray(j);

%membuat dan menambahkan noise periodic

s=size(j);

[x,y]=meshgrid(1:s(2),1:s(1));

p=sin(x/3+y/5)+1;

j_pn=(double(j)/128+p)/4;

%melakukan tranformasi fourier dan menggeser koefisien DC ke

pusat matrik

jf1=fft2(j_pn);

jf=fftshift(jf1);

%menampilkan DFT citra sebelum filtering

Page 9: ujian pengolahan citra

subplot(2,3,1)

fftshow(jf)

title('DFT citra dengan derau periodic')

%membuat band reject filter

s=size(j_pn);

z=sqrt((x-241).^2+(y-322).^2);

br=(z<28|z>35);

%melakukan filtering dengan band reject filter

jbr=jf.*br;

%IDFT hasil filter

jbr_inv=ifft2(jbr);

%membuat notch filtering

jf(341,:)=0; jf(300,:)=0;

jf(:,267)=0; jf(:,217)=0;

%IDFT hasil filtering dengan notch filter

jf_inv=ifft2(jf);

%menampilkan hasil

subplot(2,3,2)

fftshow(jbr,'log')

title('DFT Band Reject')

subplot(2,3,3)

fftshow(jf,'log')

title('DFT Notch Filtering')

subplot(2,3,4)

imshow(j_pn)

title('Derau Periodik')

subplot(2,3,5)

fftshow(jbr_inv,'abs')

title('Hasil Band Reject')

subplot(2,3,6)

fftshow(jf_inv,'abs')

title('Hasil Notch Filtering')

Page 10: ujian pengolahan citra

CITRA HASIL

PEMBAHASAN

Derau yang sifatnya periodik (bukan acak atau random) akan menghasilkan derau

periodik. Citra yang terkorupsi oleh derau periodik secara visual akan tampak terdapat garis-

garis (bars) pada citra. Setelah dilakukan penambahan pada citra, terdapat dua”spike” yang

muncul pada komponen dc citra. Semakin tinggi frekuensi derau yang mengganggu citra

maka letaknya akan semakin jauh dari titik pusat citra hasil DFT. Derau periodic

memerlukan filtering pada domain frekuensi untuk menghilangkannya. Oleh karena derau

periodik bersesuaian dengan dua “spike” tsb, maka artinya derau periodik pada citra dapat

dihilangkan atau dikurangi dengan cara menghilangkan kedua “spike” tsb. Salah satunya

adalah dengan cara band reject filtering dan notch filtering

Band reject filter dapat dibangun dengan membuat cincin bernilai nol, untuk citra di atas

maka cincin bernilai nol ini berada pada radius kira-kira 32 dari pusat citra.Citra hasil

filtering dengan band reject filter menunjukkan bahwa tidak semua derau dapat dihilangkan

namun telah cukup mengurangi pengaruh derau tersebut terutama di bagian tengah citra.

Page 11: ujian pengolahan citra

Notch filter membuat nilai piksel pada kolom dan baris pada “spike” menjadi nol. Hasil

dari notch filtering tidak sebaik dengan hasil dari band reject filtering.

4. melakukan operasi single thresholding, double thresholding dan adaptive thresholding pada

foto pribadi

CITRA AWAL

SOURCE CODE

%membaca citra

juheri=imread('juheri.jpg');

% Mengubah citra ke tipe gray image

j=rgb2gray(juheri);

%adaptive threshold

jat=adaptivethreshold(j,20,0.04,1);

subplot(2,2,1)

imshow(j)

title('asli')

subplot(2,2,2)

%hasil dengan single threshold

imshow(j>45)

title('single threshold')

%hasil dengan double threshold

subplot(2,2,3)

imshow(j>45 & j<100)

title('double threshold')

%hasil dari adaptive threshold

Page 12: ujian pengolahan citra

subplot(2,2,4)

imshow(jat)

title('adaptive threshold')

CITRA HASIL

PEMBAHASAN

Threshold digunakan untuk mengubah gray image menjadi citra biner (hitam putih)

dengan terlebih dahulu memilih suatu nilai aras keabuan T (dari citra asli) dan kemudian

mengubah setiap piksel menjadi hitam atau putih bergantung apakah nilai piksel asli tersebut

lebih besar atau lebih kecil dari nilai T. Piksel akan diubah menjadi putih jika nilai aras

keabuannya lebih besar daripada T, dan akan diubah menjadi hitam jika nilai aras

keabuannya lebih kecil atau sama dengan T.

Single thresholding dapat dilakukan dalam bahasa Matlab dengan sederhana. Jika

terdapat citra 8 bit yang tersimpan dalam variabel x, maka thresholding dapat dilakukan

dengan perintah x > T dengan T adalah nilai ambang yang dikehendaki. Pada soal ini di

pilih nilai ambang sebesar 45.

Page 13: ujian pengolahan citra

Operasi double thresholding diimplementasikan dengan cara

Y= putih jika nilai x berada diantara T1 dan T2

Dan Y= hitam untuk nilai – nilai x yang lain

Dengan x adalah nilai aras keabuan dari citra input (asli), T1 dan T2 adalah nilai ambang

yang dipilih, dan y adalah keluaran. Implementasi dalam bahasa Matlab dapat dilakukan

dengan sintaks

x > T1 & x < T2

Adaptive threshold adalah algoritma yang memisahkan latar belakang dan objek dengan

iluminasi yang tidak seragam.

5. melakukan operasi edge detection pada foto pribadi menggunakan teknik Prewit, Sobel,

Robert dan Laplacian

CITRA AWAL

SOURCE CODE

%membaca citra

juheri=imread('juheri.jpg');

% Mengubah citra ke tipe gray image

j=rgb2gray(juheri);

%operasi edge pada citra

jp=edge(j,'prewitt');

jr=edge(j,'roberts');

js=edge(j,'sobel');

l=fspecial('laplacian',0);

jl=filter2(l,j);

%menampilkan hasil

Page 14: ujian pengolahan citra

subplot(2,3,1)

imshow(j)

title('asli')

subplot(2,3,2)

imshow(jp)

title('prewitt')

subplot(2,3,3)

imshow(jr)

title('roberts')

subplot(2,3,4)

imshow(js)

title('sobel')

subplot(2,3,5)

imshow(mat2gray(jl))

title('laplacian')

CITRA HASIL

Page 15: ujian pengolahan citra

PEMBAHASAN

Tebing (edge) dapat didefinisikan sebagai suatu diskontinuitas lokal dalam nilai

pikselnya, yaitu bahwa nilai pikselnya dapat dengan jelas ‘terlihat’ berubah. Tebing (edge)

citra dapat digunakan untuk memperoleh informasi dari citra seperti halnya pada

threshloding. Tebing citra juga dapat digunakan untuk mengetahui ukuran objek,

mengisolasi objek tertentu pada citra, atau untuk mengenali dan mengklasifikasikan objek

(misalnya berdasarkan bentuknya).

Untuk menggunakan filter pendeteksi tebing pada matlab dapat menggunakan sintak

Edge(image,’filter’)

Dari hasil yang diperoleh, diketahui bahwa teknik sobel yang paling baik digunakan dalam

operasi edge detection pada citra ini.