Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Praktikum Pengolahan Citra
Pertemuan 8 – Konvolusi dan Image Filtering
2
Prinsip Filter Dalam Image Processing
Gambar selalu berada pada frekwensi rendah, hal ini karena setiap titik pada gambar mempunyai banyak kemiripan warna dengan titik-titik tetangganya. Bila suatu gambar menunjukkan frekwensi tinggi maka pada gambar tersebut banyak titik yang nilai gray-scalenya (warna) yang berbeda jauh dengan titik-titik tetangganya. Frekwensi rendah Frekwensi Tinggi
3
Prinsip Filter Dalam Image Processing
Untuk membuang titik yang berbeda dengan titik-titik tetangganya (proses reduksi noise) maka dilakukan Low- Pass Filter (LPF), suatu bentuk filter yang mengambil data pada frekwensi rendah dan membuang data pada frekwensi tinggi Untuk mempertahankan titik yang berbeda dengan titik-titik tetangganya (proses deteksi tepi) maka dilakukan High-Pass Filter (HPF), suatu bentuk filter yang mengambil data pada frekwensi tinggi dan membuang data pada frekwensi rendah. Untuk mempertahankan titik yang dekat dengan titik- titik tetangganya, dan titik yang berbeda dengan titik- titik tetangganya (sharperness) maka dilakukan Band Pass Filter, yang berguna mempertahankan frekwensi rendah dan tinggi yang tidak terlalu rendah dan tinggi.
4
Prinsip Filter Dalam Image Processing
Hasil gambar yang difilter Y dari gambar asal X dan filter dengan kernel H dapat dihitung dengan: Konvolusi
5
Konvolusi Konvolusi dari H dan X didefinisikan dengan:
Dimana (x,y) adalah posisi filter dan (Tx,Ty) adalah titik yang difilter
6
Proses Konvolusi H = X =
7
Contoh Konvolusi
8
Petunjuk Praktikum Buatlah form dengan tiga buah button, dua buah pictureBox dan sebuah OpenFileDialog. Aturlah form seperti gambar berikut.
9
Petunjuk Praktikum Ubah text pada Button1 menjadi “Load”, Button2 menjadi “GrayScale”, Button3 menjadi “Histogram Equalization”. Aturlah picture box dengan mode StretchImage. Kemudian tambahkan dua object bitmap. Bitmap objBitmap1; Bitmap objBitmap2;
10
Petunjuk Praktikum Double klik pada button1 dan tambahkan program berikut. Program tersebut bertujuan untuk melakukan load file image dari komputer. DialogResult d = openFileDialog1.ShowDialog(); if(d == DialogResult.OK) { objBitmap1 = new Bitmap(openFileDialog1.FileName); pictureBox1.Image = objBitmap1; }
11
Petunjuk Praktikum Pada button2 kita tambahkan code untuk konvolusi dengan kernel 4 node. Dengan matrix sebagai berikut: H= 0 0,2 0 0,2 0,2 0,2 0 0,2 0
12
Petunjuk Praktikum Double klik pada button2 dan tambahkan program berikut. float[] a=new float[5]; a[0] = (float)0.2; a[1] = (float)0.2; a[2] = (float)0.2; a[3] = (float)0.2; a[4] = (float)0.2; objBitmap2 = new Bitmap(objBitmap1); for(int x=1;x<objBitmap1.Width-1;x++) for (int y = 1; y < objBitmap1.Height - 1; y++) { Color w1 = objBitmap1.GetPixel(x-1,y); Color w2 = objBitmap1.GetPixel(x+1, y); Color w3 = objBitmap1.GetPixel(x, y-1); Color w4 = objBitmap1.GetPixel(x, y+1); Color w = objBitmap1.GetPixel(x, y);
13
Petunjuk Praktikum Lanjutan dari program pada button 2
int x1 = (w1.R + w1.G + w1.B) / 3; int x2 = (w2.R + w2.G + w2.B) / 3; int x3 = (w3.R + w3.G + w3.B) / 3; int x4 = (w4.R + w4.G + w4.B) / 3; int xg = (w.R + w.G + w.B) / 3; int xb = (int)(a[0] * xg); xb = (int)(xb + a[1] * x1 + a[2] * x2 + a[3] * x3 + a[4] * x4); if (xb < 0) xb = 0; if (xb > 255) xb = 255; Color wb = Color.FromArgb(xb,xb,xb); objBitmap2.SetPixel(x,y,wb); } pictureBox2.Image = objBitmap2;
14
Petunjuk Praktikum Pada button3 kita tambahkan code untuk konvolusi dengan kernel 8 node. Dengan matrix sebagai berikut: H= 0,1 0,1 0,1 0,1 0,2 0,1 0,1 0,1 0,1
15
Petunjuk Praktikum Double klik pada button3 dan tambahkan program berikut. float[] a = new float[10]; a[1] = (float)0.1; a[2] = (float)0.1; a[3] = (float)0.1; a[4] = (float)0.1; a[5] = (float)0.2; a[6] = (float)0.1; a[7] = (float)0.1; a[8] = (float)0.1; a[9] = (float)0.1; objBitmap2 = new Bitmap(objBitmap1); for (int x = 1; x < objBitmap1.Width - 1; x++) for (int y = 1; y < objBitmap1.Height - 1; y++) {
16
Petunjuk Praktikum Lanjutan program pada button3.
Color w1 = objBitmap1.GetPixel(x - 1, y-1); Color w2 = objBitmap1.GetPixel(x - 1, y); Color w3 = objBitmap1.GetPixel(x-1, y + 1); Color w4 = objBitmap1.GetPixel(x, y - 1); Color w5 = objBitmap1.GetPixel(x, y); Color w6 = objBitmap1.GetPixel(x, y + 1); Color w7 = objBitmap1.GetPixel(x+1, y - 1); Color w8 = objBitmap1.GetPixel(x+1, y ); Color w9 = objBitmap1.GetPixel(x+1, y + 1); int x1 = (w1.R + w1.G + w1.B) / 3; int x2 = (w2.R + w2.G + w2.B) / 3; int x3 = (w3.R + w3.G + w3.B) / 3; int x4 = (w4.R + w4.G + w4.B) / 3;
17
Petunjuk Praktikum Lanjutan program pada button3.
int x5 = (w5.R + w5.G + w5.B) / 3; int x6 = (w6.R + w6.G + w6.B) / 3; int x7 = (w7.R + w7.G + w7.B) / 3; int x8 = (w8.R + w8.G + w8.B) / 3; int x9 = (w9.R + w9.G + w9.B) / 3; int xb = (int)(a[1] * x1 + a[2] * x2 + a[3] * x3); xb = (int)(xb + a[4] * x4 + a[5] * x5 + a[6] * x6); xb = (int)(xb + a[7] * x7 + a[8] * x8 + a[9] * x9); if (xb < 0) xb = 0; if (xb > 255) xb = 255; Color wb = Color.FromArgb(xb, xb, xb); objBitmap2.SetPixel(x, y, wb); } pictureBox2.Image = objBitmap2;
18
Capture Program
19
Tugas Ubah matrik kernel 4 node dengan matrik berikut
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.