Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Praktikum Pengolahan Citra

Presentasi serupa


Presentasi berjudul: "Praktikum Pengolahan Citra"— Transcript presentasi:

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


Download ppt "Praktikum Pengolahan Citra"

Presentasi serupa


Iklan oleh Google