1 / 19

Praktikum Pengolahan Citra

Praktikum Pengolahan Citra. Pertemuan 8 – Konvolusi dan Image Filtering. Frekwensi Tinggi. Frekwensi rendah. Prinsip Filter Dalam Image Processing.

Télécharger la présentation

Praktikum Pengolahan Citra

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Praktikum Pengolahan Citra Pertemuan 8 – Konvolusi dan Image Filtering

  2. Frekwensi Tinggi Frekwensi rendah Prinsip Filter Dalam Image Processing • Gambarselaluberadapadafrekwensirendah, halinikarenasetiaptitikpadagambarmempunyaibanyakkemiripanwarnadengantitik-titiktetangganya. • Bilasuatugambarmenunjukkanfrekwensitinggimakapadagambartersebutbanyaktitik yang nilai gray-scalenya (warna) yang berbedajauhdengantitik-titiktetangganya.

  3. Prinsip Filter Dalam Image Processing • Untukmembuangtitik yang berbedadengantitik-titiktetangganya (proses reduksi noise) makadilakukan Low-Pass Filter (LPF), suatubentuk filter yang mengambil data padafrekwensirendahdanmembuang data padafrekwensitinggi • Untukmempertahankantitik yang berbedadengantitik-titiktetangganya (proses deteksitepi) makadilakukan High-Pass Filter (HPF), suatubentuk filter yang mengambil data padafrekwensitinggidanmembuang data padafrekwensirendah. • Untukmempertahankantitik yang dekatdengantitik-titiktetangganya, dantitik yang berbedadengantitik-titiktetangganya (sharperness) makadilakukan Band Pass Filter, yang bergunamempertahankanfrekwensirendahdantinggi yang tidakterlalurendahdantinggi.

  4. Prinsip Filter Dalam Image Processing Hasilgambar yang difilter Y darigambarasal X dan filter dengan kernel H dapatdihitungdengan: Konvolusi

  5. Konvolusi Konvolusidari H dan X didefinisikandengan: Dimana (x,y) adalah posisi filter dan (Tx,Ty) adalah titik yang difilter

  6. Proses Konvolusi H = X =

  7. ContohKonvolusi

  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=

  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=

  15. Petunjuk Praktikum 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++) { • Double klik pada button3 dan tambahkan program berikut.

  16. Petunjuk Praktikum 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; • Lanjutan program pada button3.

  17. Petunjuk Praktikum 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; • Lanjutan program pada button3.

  18. Capture Program

  19. Tugas • Ubah matrik kernel 4 node dengan matrik berikut • H= • H= • Ubah matrik kernel 8 node dengan matrik berikut • H= • H=

More Related