Praktikum Pengolahan Citra Pertemuan 4 – Kuantisasi Data Citra
Citra Derajat Keabuan Ciri dari gambar derajat keabuan adalah memiliki nilai R, G dan B yang sama. Sehingga dapat dituliskan dengan format warna (x,x,x). Gambar derajat keabuan ini hanya berisi terang dan gelap tanpa menggunakan warna. Semakin besar nilai x maka gambar akan terlihat semakin terang. Semakin kecil nilai x maka gambar akan terlihat semakin gelap. (r,r,r) menunjukkan gambar derajat keabuan dengan mengambil nilai dari layer R. Terang atau gelap sebuah titik tergantung pada nilai layer R yang dimiliki. Semakin besar nilai layer R dari sebuah titik maka semakin terang titik itu. Sebaliknya jika nilai semakin kecil maka akan tampak semakin gelap.
Citra Derajat Keabuan r=𝑤.𝑅 g=𝑤.𝐺 b=𝑤.𝐵 𝑥= 𝑟+𝑔+𝑏 3 Untuk menghasilkan sebuah gambar derajat keabuan yang menggunakan semua komponen warna bisa menggunakan rata-rata dari nilai semua layer. Nilai x menggunakan nilai dari semua layer R, G dan B secara seimbang, dan nilai x harus berada pada 0 s/d 255. r=𝑤.𝑅 g=𝑤.𝐺 b=𝑤.𝐵 𝑥= 𝑟+𝑔+𝑏 3
Citra Hitam Putih 𝑥𝑏𝑤= 0, 𝑥<128 &255, 𝑥≥128 Citra hitam putih adalah gambar yang hanya berisi warna hitam atau putih. Hitam bernilai 0 dan putih bernilai 255. Untuk menjadikan gambar derajat keabuan menjadi gambar hitam putih dapat menggunakan rumus sebagai berikut: Rumus tersebut disebut rumus tresholding, dimana nilai tresholdnya adalah 128. Nilai yang kurang dari 128 diubah menjadi 0 (hitam), dan yang lebih dari atau sama dengan 128 diubah menjadi 255 (putih). 𝑥𝑏𝑤= 0, 𝑥<128 &255, 𝑥≥128
Kuantisasi Citra 𝑥𝑘=𝑛∗𝑖𝑛𝑡 𝑥 𝑛 Proses kuantisasi citra adalah proses mengubah jumlah nilai keabuan, misal menjadi 8 atau 16 nilai derajat keabuan. Untuk melakukan kuantisasi n step nilai dapat menggunakan rumus kuantisasi berikut: Sehingga jika digunakan 8, 16 atau 64 step nilai akan ada range nilai seperti berikut: 𝑥𝑘=𝑛∗𝑖𝑛𝑡 𝑥 𝑛 16 𝑠𝑡𝑒𝑝 𝑛𝑖𝑙𝑎𝑖: 0 16 32 48 64 80 . . . 240 64 𝑠𝑡𝑒𝑝 𝑛𝑖𝑙𝑎𝑖: 0 4 8 12 16 20 24 . . . 252 128 𝑠𝑡𝑒𝑝 𝑛𝑖𝑙𝑎𝑖: 0 2 4 6 8 10 12 14 . . . 254
Kuantisasi Citra
Petunjuk Praktikum Buatlah form dengan empat buah button, empat buah pictureBox dan sebuah OpenFileDialog. Aturlah form seperti gambar berikut.
Petunjuk Praktikum Tambahkan empat buah object Bitmap. Object Bitmap pertama berfungsi untuk menampung gambar asli. Bitmap kedua untuk gambar GrayScale. Bitmap ketiga untuk gambar BlackWhite. Bitmap keempat untuk gambar Kuantisasi 16. Bitmap objBitmap1; Bitmap objBitmap2; Bitmap objBitmap3;
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; }
Petunjuk Praktikum Double klik pada button2 dan tambahkan program berikut. Program tersebut bertujuan untuk menampilkan Gambar GrayScale. objBitmap2 = new Bitmap(objBitmap1); for (int x = 0; x < objBitmap1.Width; x++) for (int y = 0; y < objBitmap1.Height; y++) { Color w = objBitmap1.GetPixel(x, y); int r = w.R; int g = w.G; int b = w.B; int xg = (int)((r + g + b) / 3); Color new_w = Color.FromArgb(xg, xg, xg); objBitmap2.SetPixel(x, y, new_w); } pictureBox2.Image = objBitmap2;
Petunjuk Praktikum Double klik pada button3 dan tambahkan program berikut. Program tersebut bertujuan untuk menampilkan Gambar BlackWhite objBitmap2 = new Bitmap(objBitmap1); for (int x = 0; x < objBitmap1.Width; x++) for (int y = 0; y < objBitmap1.Height; y++) { Color w = objBitmap1.GetPixel(x, y); int r = w.R; int g = w.G; int b = w.B; int xg = (int)((r + g + b) / 3); int xbw = 0; if(xg >= 128) xbw = 255; Color new_w = Color.FromArgb(xbw, xbw, xbw); objBitmap2.SetPixel(x, y, new_w); } pictureBox2.Image = objBitmap2;
Petunjuk Praktikum Double klik pada button4 dan tambahkan program berikut. Program tersebut bertujuan untuk menampilkan Gambar Kuantisasi 16 objBitmap2 = new Bitmap(objBitmap1); for (int x = 0; x < objBitmap1.Width; x++) for (int y = 0; y < objBitmap1.Height; y++) { Color w = objBitmap1.GetPixel(x, y); int r = w.R; int g = w.G; int b = w.B; int xg = (int)((r + g + b) / 3); int xk = 16*(int)(xg/16); Color new_w = Color.FromArgb(xk, xk, xk); objBitmap2.SetPixel(x, y, new_w); } pictureBox2.Image = objBitmap2;
Capture Program
Tugas Tambahkan program untuk mengubah nilai threshold dari hitam putih dengan nilai rata-rata dari derajat keabuan semua titik. Dan tambahkan textBox agar user dapat merubah nilai threshold sesuai keinginan user. Tambahkan textBox untuk input nilai kuantisasi. Sehingga user dapat mengganti kuantisasi sesuai keinginan.
Laporan Praktikum Tuliskan kode program yang anda anggap penting beserta penjelasannya. Jelaskan perbedaan GrayScale menggunakan nilai rata-rata RGB dan GrayScale yang menggunakan satu layer R, G atau B saja. Jelaskan perbedaan gambar hitam putih dari beberapa nilai trhreshold yang sudah anda coba. Jelaskan perbedaan dari hasil kuantisasi yang telah anda lakukan.