Pengolahan Citra Digital(Tgs 1)

16
PENGOLAHAN CITRA DIGITAL (METODE MEDIAN FILTER) NAMA GEORGE Y.A RIWU TANU (0706083029) SEPRI Y. OBIJE(1006082014)

description

PCD kuliah

Transcript of Pengolahan Citra Digital(Tgs 1)

Page 1: Pengolahan Citra Digital(Tgs 1)

PENGOLAHAN CITRA DIGITAL

(METODE MEDIAN FILTER)

NAMA

GEORGE Y.A RIWU TANU (0706083029)

SEPRI Y. OBIJE(1006082014)

ILMU KOMPUTER

UNIVERSITAS NUSA CENDANA KUPANG

Page 2: Pengolahan Citra Digital(Tgs 1)

KATA PENGANTAR

           Dengan memanjatkan puji syukur ke hadirat Tuhan Yang Maha Esa, atas segala

limpahan rahmat dan karunia-Nya kepada kami sehingga dapat menyelesaikan makalah yang

membahas mengenai “Median Filter”

          Kami menyadari bahwa dalam proses penulisan makalah ini masih dari jauh dari

kesempurnaan baik materi maupun cara penulisannya. Namun demikian, kami telah berupaya

dengan segala kemampuan dan pengetahuan yang dimiliki sehingga dapat selesai dengan

baik dan oleh karenanya, kami dengan rendah hati dan dengan tangan terbuka menerima

masukan,saran dan usul guna penyempurnaan makalah ini.

            Akhirnya kami berharap semoga makalah ini dapat bermanfaat bagi seluruh pembaca.

Kupang, 2013

Penulis

Page 3: Pengolahan Citra Digital(Tgs 1)

BAB I

PENDAHULUAN

i. Latar Belakang

Data atau informasi tidak hanya disajikan dalam bentuk data teks tetapi juga dapat

berupa gambar, audio, dan video. Informasi pada saat ini sangat penting dan sangat

diperlukan, begitu pula informasi yang terdapat pada sebuah citra. Citra mempunyai

karakteristik yang tidak dimiliki data teks yaitu citra kaya dengan informasi, namun

seringkali citra yang kita miliki mengalami penurunan mutu atau pada umunya

mengandung derau (noise). Derau pada umumnya berupa variasi intensitas (derajat

keabuan) suatu pixel yang tidak bekaitan dengan titik-titik tetangganya. Derau ini mudah

dilihat oleh mata, karena tampak sangat berbeda dengan titik-titik tetangganya, seperti

citra yang mengalami gangguan berupa bercak-bercak putih atau hitam. Gangguan

tersebut biasanya muncul sebagai akibat pencuplikan (Image Sampling) yang tidak bagus

atau akibat saluran transmisi (pada pengiriman data). Oleh sebab itu perbaikan citra

dibutuhkan, dengan meningkatkan kualitas suatu citra dapat lebih mudah

diinterpretasikan oleh mata manusia.

Dalam sebuah citra, peningkatan kualitas dapat dilakukan dengan banyak metode

untuk mendapatkan sebuah gambar yang memberikan informasi. Salah satu metode yang

digunakan adalah Median filter. Melalui metode ini kualitas citra masukan dapat diperbaiki

dan diharapkan dapat lebih mudah mendekati bentuk aslinya sehingga informasi yang diberikan

jelas.

ii. Tujuan

Tujuan penulisan makalah ini adalah untuk menjelaskan bagaimana cara kerja dari

metode Median filter dalam memperbaiki citra yang belum sempurna(mendapatkan

noise) sehingga menghilangkan informasi yang ada.

iii. Rumusan Masalah

Bagaimana mendapatkan hasil citra yang sebelumnya memiliki noise,menjadi lebih baik

dengan menggunakan median filter.

Page 4: Pengolahan Citra Digital(Tgs 1)

BAB II

PEMBAHASAN

1. Teori Median Filter

Citra merupakan nama lain dari gambar, istilah citra biasanya digunakan dalam

bidang pengolahan citra. Dalam bidang pengolahan citra, citra diartikan sebagai fungsi dua

variabel f(x,y), x dan y adalah koordinat spasial dan nilai f(x,y) adalah intensitas citra pada

koordinat tersebut. Sedangkan citra digital adalah citra yang telah mengalami proses

digitalisasi yang digunakan sebagai masukan pada proses pengolahan citra menggunakan

komputer.

Dalam format digital, citra direpresentasikan sebagai sebuah matriks dengan baris dan

kolom yang dibentuk dari piksel-piksel. Semakin banyak jumlah piksel dan variasi nilai

piksel dari suatu citra, maka semakin tinggi nilai resolusinya. Resolusi merupakan ukuran

dari banyaknya titik untuk setiap satuan panjang. Resolusi citra menggambarkan kedetailan

dari sebuah citra, semakin tinggi resolusi citra maka semakin tinggi kedetailan atau

ketajamannya. Dengan penjelasan tersebut, maka dapat disimpulkan bahwa citra resolusi

rendah (LR) adalah citra dengan jumlah piksel dan variasi nilai piksel rendah dan citra

resolusi tinggi (HR) adalah citra dengan jumlah piksel dan variasi nilai piksel tinggi.

Citra digital adalah sebuah fungsi 2D, f(x,y), yang merupakan fungsi intensitas

cahaya, dimana nilai x dan y merupakan koordinat spasial dan nilai fungsi di setiap titik (x,y)

merupakan tingkat keabuan citra pada titik tersebut. Citra digital dinyatakan dengan sebuah

matriks dimana baris dan kolomnya menyatakan suatu titik pada citra tersebut dan elemen

matriksnya (yang disebut sebagai elemen gambar atau piksel) menyatakan tingkat keabuan

pada titik tersebut. Matriks dari citra digital berukuran NxM (tinggi x lebar), dimana:

N  = jumlah baris         0 < y ≤ N – 1

M = jumlah kolom       0 ≤ x ≤ M – 1

L  = derajat keabuan    0 ≤ f(x,y) ≤ L – 1

Dimana indeks baris (x) dan indeks kolom (y) menyatakan suatu koordinat titik pada citra,

sedangkan f(x,y) merupakan intensitas (derajat keabuan) pada titik (x,y).

Page 5: Pengolahan Citra Digital(Tgs 1)

Pada pengolahan citra, ada beberapa cara untuk mendapatkan informasi yang baik

dari citra yaitu dengan melakukan penyaringan(filter). Filter merupakan proses preprocessing

awal yang digunakan untuk menghilangkan bagian-bagian yang tidak diperlukan (noise) pada

citra untuk proses selanjutnya. Metode filter atau filtering yang terbaik tergantung dengan

situasi dari citra dan jenis derau atau degradasi yang terdapat pada citra. Beberapa jenis filter

tersebut adalah :

1. Filter Linier menyediakan kesederhanaan, kecepatan, dan sangat membantu dalam

proses pengurangan derau jika informasi tenta ng band frekuensinya sangat terbatas.

2. Filter Median adalah filter yang paling efektif untuk menghilangkan derau salt dan

pepper.

3. Filter Wiener merupakan filter linier adaptif yang berdasarkan karakteristik varian

local dari citra. Filter wiener memperhalus daerah citra yang berubah pada citra dengan noise

yang paling kelihatan, tetapi mempertahankan daerah dimana detail sangat terlihat dan noise

tidak terlalu kelihatan.

Filter Median sering dikenal dengan filter spasial non-linier atau disebut juga dengan

filter statistik berdasar urutan (order-statistic filter) merupakan filter yang respon nya

didasarkan pada urutan atau rangking piksel yang ada dalam citra yang dicakup oleh area

filter dan menggantikan nilai dari piksel yang berada di tengah digantikan dengan nilai hasil

pengurutan atau perangkingan tersebut. Filter ini bekerja dengan menggantikan nilai tengah

dari piksel yang dicakup oleh area filter dengan sebuah nilai tengah (median) setelah

diurutkan terlebih dahulu dari yang terkecil ke yang terbesar. Biasanya ukuran filter adalah

ganjil karena akan memberikan poros tengah, sehingga akan lebih mudah dalam mengolah

citra.

Kelebihan dari filter median adalah kemampuannya dalam mengurangi derau yang

diakibatkan oleh derau acak misalnya jenis salt and pepper noise atau bisa disebut sebagai

derau impulse. Dibandingkan dengan jenis filter spasial (ruang) non-linier lainnya, filter

median merupakan filter yang paling cocok untuk kasus tersebut. Sehingga filter ini

dinobatkan menjadi filter yang paling ampuh dalam mengolah citra berderau sejenis.

Selain digunakan untuk menghilangkan derau, filter-filter ini juga digunakan untuk

menghaluskan citra digital. Filter non-linier lebih unggul dibanding dengan filter linier

dengan ukuran jendela filter yang sama. Selain itu, filter non-linier tidak memerlukan operasi

konvolusi terhadap citra original, yang berbeda dengan operasi dari filter linier.

Median filtering merupakan order-statistics filter yang paling dikenal. Cara kerja filter ini

dirumuskan sebagai berikut.

Page 6: Pengolahan Citra Digital(Tgs 1)

Cara kerja dari Median filter adalah mengambil area tertentu pada citra sesuai dengan

ukuran mask yang telah ditentukan (umumnya berukuran 3×3), kemudian dilihat setiap nilai

piksel pada area tersebut, dan nilai tengah pada area diganti dengan nilai median. Cara

memperoleh nilai median, yaitu nilai keabuan dari titik-titik pada matriks diurutkan dari nilai

terkecil hingga yang terbesar, kemudian ditentukan nilai yang berada paling tengah dari

urutan.

Untuk tipe-tipe noise tertentu, filter ini memberikan kemampuan reduksi noise yang

sangat baik, dengan blurring yang lebih sedikit daripada linear smoothing filter untuk ukuran

citra yang sama. Median filtering memberikan hasil yang sangat bagus untuk citra yang

terkena noise impulse bipolar dan unipolar.

Pengoperasian matriks pada meidan filter dapat dijelaskan sebagai berikut.

Misalkan pada sebuah citra yang telah memiliki citra grayscale dengan matriks

Misal untuk mask 3×3 yang pertama, yaitu matriks yang meliputi koordinat (0,0); (0,1); (0,2);

(1,0); (1,1); (1,2); (2,0); (2,1); (2,2), yang nilai-nilainya adalah:

Kemudian, dari matriks yang telah ada, kita urutkan nilai-nilainya dari yang terkecil hingga

terbesar: 29,40,40,42,44,62,184,186,191. Setelah data terurut, kita mengambil data yang

Page 7: Pengolahan Citra Digital(Tgs 1)

tengah(dari data yang terurut) dan menggantikan nilai yang berada pada tengah

matriks(dengan koordinat 2,1).

Jadi nilai tengah dari matriks yang sebelumnya adalah 42, diganti dengan nilai tengah dari

data yang terurut,yaitu 44.

Proses ini akan terus berulang hingga 1pixel ke sebelah kanan dan bawah.

Hasil terakhir yang didapat dari matriks setelah melakukan proses median filter adalah

sebagai berikut

2. Implementasi

Berikut adalah salah satu contoh program(source code) Median Filter yang

mengurangi noise pada sebuah gambar.

Program ini menggunakan C# sebagai bahasa pemrogramannya.

Cara kerja program ini adalah picturebox1 akan menampilkan gambar yang memiliki

noise kemudian picturebox2 akan menampilkan gambar yang memiliki noise dalam

bentuk grayscale kemudian gambar tersebut akan diolah kemudian akan ditampilkan

Page 8: Pengolahan Citra Digital(Tgs 1)

gambar tersebut dalam keadaan grayscale namun noise yang berada pada gambar

tersebut sudah berkurang pada picturebox3.

Berikut source codenya

namespace WindowsFormsApplication4{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } //Pendeklarasian variabel secara global. gambar yang bertipe bitmap dan nilai_pixel yang bertipe integer yang berada pada array 1dimensi Bitmap gambar; int[,] nilai_pixel;

//Procedure untuk mengurutkan data yang telah diambil pada kernel 3x3 private void MengurutData(ref int[] nilai) // ref sama dngn var dalam pascal, jadi membuat nilai dengan array 1 dimensi yang bernilai integer { int jumlahData = nilai.Length-1; //pada variabel nilai,nilai berisi 9, jadi untuk membuat nilainya 8(karena menghitung nilai dari 0-8) maka harus dikurangi 1 for(int i=0;i<jumlahData-1;i++) //untuk membuat nilainya jadi 7 sehingga dapat dibandingkan dengan nilai selanjutnya hingga nilai yang terakhir(mengetahui kondisi dimana harus berpindah posisi) for (int j = 0; j < jumlahData; j++) { //pengurutan data dengan metode bubble sort if (nilai[j] > nilai[i])//ketika nilai j(nilai kebawah) lebih besar dari nilai i(nilai ke kiri) maka lakukan prosdur berikut { int temp = nilai[j]; nilai[j] = nilai[i]; nilai[i] = temp; } } }

//procedure dalam menampilkan data/gambar private void button1_Click(object sender, EventArgs e) { if (DialogResult.OK == openFileDialog1.ShowDialog()) { pictureBox1.Image = new Bitmap(openFileDialog1.FileName); gambar = new Bitmap(openFileDialog1.FileName); } }

//procedure dalam mengkonvert nilai RGB ke grayscale private void button2_Click(object sender, EventArgs e) { //nilai_pixel yang sebelumnya telah dideklarasikan kemudian diisi dengan array 1dimensi. isinya nilai tinggi dan lebar gambar nilai_pixel=new int[gambar.Width,gambar.Height]; //mengambil gambar yang telah dikonver ke grayscale dan disimpan pada sebuah variabel temp dengan tipe bitmap

Page 9: Pengolahan Citra Digital(Tgs 1)

Bitmap temp = new Bitmap(gambar.Width, gambar.Height); Color lama,baru;//deklarasi variabel lama dan baru dalam tipe color int nilai;//untuk menyimpan hasil convert nilai RGB ke GrayScale //perulangan untuk mendapatkan nilai grayscale pada tiap-tiap pixel gambar for (int i = 0; i < gambar.Width; i++) { for (int j = 0; j < gambar.Height; j++) { lama = gambar.GetPixel(i, j); nilai = Convert.ToInt32((lama.R + lama.G + lama.B)/3);//mengconvert nilai RGB ke grayscale kemudian disimpan pada var. nilai //nilai grayscale yang didapat,simpan pada pixel yang ada dimulai dari pixel dengan alamat 0,0 nilai_pixel[i,j]=nilai; baru = Color.FromArgb(nilai, nilai, nilai); temp.SetPixel(i, j, baru); } } pictureBox2.Image = temp;//menampilkan hasil convert grayscale ke picturebox2 }

//procedure untuk menghapus noise yang ada pada gambar GrayScale private void button4_Click(object sender, EventArgs e) { //mengambil gambar yang telah dikonver ke grayscale dan disimpan pada sebuah variabel temp dengan tipe bitmap Bitmap temp = new Bitmap(gambar,gambar.Width, gambar.Height); //pendeklarasian variabel a,b,x,y int a,b; //nilai a dan b yang ditetapkan 3 sesuai dengan kernel yang di inginkan a=3; b=3; int x,y; //nilai x dan y untuk menempatkan nilai pixel pada kernel yang telah dibagi x=0; // nilai x ke daerah bawah y=0; // nilai y ke daerah kiri //pendeklarasian var nilai yang berisi array 1dimensi dengan nilainya terisi hasil perkalian dari a*b int[] nilai=new int[a*b]; //proses looping untuk menghilangkan noise do { do{ int q=0;//nilai q set 0,bertujuan agar ketika melakukan perulangan pindah baris,maka nilai matriks dimulai dengan titik 0 for(int i=x;i<x+a;i++) //untuk bergerak ke bawah dan ke kanan { for(int j=y;j<y+b;j++) //untuk bergerak ke bawah dan ke kanan { nilai[q]=temp.GetPixel(j,i).R; // simpan matriks kernel 3x3 q++; //nilai q hanya untuk memindahkan nomor data } }

Page 10: Pengolahan Citra Digital(Tgs 1)

MengurutData(ref nilai);//pemanggilan procedure mengurutkan data int NT=nilai[((a*b)/2)-1]; // membuat matriks fleksibel bisa 3x3 atau 3x7 dll sudah dapat nilai tengah //mengkonversi nilai dari double ke integer double v, w; w = (Convert.ToDouble(a) / 2)-1; v = (Convert.ToDouble(b) / 2)-1; int z = Convert.ToInt32(v); int o = Convert.ToInt32(w); temp.SetPixel (y+z ,x+o,Color.FromArgb(NT,NT,NT)); // untuk mendapatkan nilai tengah nilai x=bisa berubah dan kita tempatkan nilainya y++; }while(y+b<=temp.Width); //syarat untuk melakukan perulangan ketika nilai paling kanan paling terakhir lebih kecil dari besar citra y=0; x++; } while ((y + b <= temp.Width) && (x + a <= temp.Height)); // ketika nilai paling bawah atau paling terakhir lebih kecil dari lebar dan tinggi citra pictureBox3.Image = new Bitmap(temp); //menampilkan hasil median filter ke picturebox3 }

//procedure untuk menghapus gambar pada tiap-tiap picturebox private void button3_Click(object sender, EventArgs e) { pictureBox1.Image = null; pictureBox2.Image = null; pictureBox3.Image = null; } }}

Hasil dari implmentasi program adalah

Pengambilan gambar yang memiliki noise

Page 11: Pengolahan Citra Digital(Tgs 1)

Penconversian citra ke GrayScale

Hasil pengolahan citra yang sebelumnya memiliki noise,tetapi telah di proses

sehingga noisenya berkurang

3. Hasil dan Pembahasan

Dari pengolahan citra dengan menggunakan median filter,didapat citra yang

sebelumnya memilki noise tetapi setelah di lakukan proses, maka noise dari citra tersebut

berkurang.

Page 12: Pengolahan Citra Digital(Tgs 1)

Pengurangan noise pada program ini, tidaklah sempuran karena masih terdapat

beberapa noise yang ada. Citra yang tercipta ketika noise dihilangkan juga terlihat lebih

terang.

BAB III

PENUTUP

Kesimpulan

Pada pengolahan citra, ada beberapa cara untuk mendapatkan informasi yang baik dari citra

yaitu dengan melakukan penyaringan(filter).

Beberapa jenis filter tersebut adalah :

1. Filter Linier menyediakan kesederhanaan, kecepatan, dan sangat membantu dalam

proses pengurangan derau jika informasi tenta ng band frekuensinya sangat terbatas.

2. Filter Median adalah filter yang paling efektif untuk menghilangkan derau salt dan

pepper.

3. Filter Wiener merupakan filter linier adaptif yang berdasarkan karakteristik varian

local dari citra. Filter wiener memperhalus daerah citra yang berubah pada citra dengan noise

yang paling kelihatan, tetapi mempertahankan daerah dimana detail sangat terlihat dan noise

tidak terlalu kelihatan.

Untuk menghilangkan noise pada citra, menggunakan metodeMedian Filter. Dimana cara

kerja dari Median filter adalah mengambil area tertentu pada citra sesuai dengan ukuran mask

yang telah ditentukan (umumnya berukuran 3×3), kemudian dilihat setiap nilai piksel pada

area tersebut, dan nilai tengah pada area diganti dengan nilai median. Cara memperoleh nilai

median, yaitu nilai keabuan dari titik-titik pada matriks diurutkan dari nilai terkecil hingga

yang terbesar, kemudian ditentukan nilai yang berada paling tengah dari urutan.

Hasil yang didapat setelah pemrosesan citra menggunakan median filter adalah berkurangnya noise.