Anda di halaman 1dari 12

PENGOLAHAN CITRA DIGITAL (METODE MEDIAN FILTER)

NAMA GEORGE Y.A RIWU TANU (0706083029) SEPRI Y. OBIJE(1006082014)

ILMU KOMPUTER UNIVERSITAS NUSA CENDANA KUPANG

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

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.

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 M = jumlah kolom L = derajat keabuan 0<yN1 0xM1 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).

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. 2. 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. Filter Linier menyediakan kesederhanaan, kecepatan, dan sangat membantu dalam Filter Median adalah filter yang paling efektif untuk menghilangkan derau salt dan proses pengurangan derau jika informasi tenta ng band frekuensinya sangat terbatas.

Cara kerja dari Median filter adalah mengambil area tertentu pada citra sesuai dengan ukuran mask yang telah ditentukan (umumnya berukuran 33), 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 33 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

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

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 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 } } 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

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. 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. 2. 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 33), 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. Filter Linier menyediakan kesederhanaan, kecepatan, dan sangat membantu dalam Filter Median adalah filter yang paling efektif untuk menghilangkan derau salt dan proses pengurangan derau jika informasi tenta ng band frekuensinya sangat terbatas.

Anda mungkin juga menyukai