TK Jl Srijaya Negara Bukit Besar Palembang 30139, Telpon : +62711 353414 PROGRAM STUDI TEKNIK KOMPUTER JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG Praktikum Pengolahan Citra Digital Hand On Lab 3 Mengurai Warna RGB pada Citra Digital 100 menit (2 jam) Lecturer : M. Miftakul Amin, S. Kom., M. Eng. Website : http://mafisamin.blog.ugm.ac.id Tujuan : 1. Mahasiswa dapat menjelaskan fungsi-fungsi untuk memperoleh bagian citra RGB. 2. Mahasiswa dapat membuat program untuk mendapatkan komponen RGB citra menggunakan perangkat lunak visual basic 6.0. Perlengkapan : MS. Visual Basic 6.0 1. Mendapatkan Nilai Pixel dari Citra Dalam mengolah image menggunakan picture box, diperlukan fungsi PSET() untuk menggambar atau menyimpan sebuah nilai intensitas cahaya ke dalam pixel citra digital. Sedangkan untuk mendapatkan nilai intensitas cahaya dalam sebuah pixel citra digital dapat digunakan fungsi POINT(x,y). Perlu diperhatikan bahwa posisi koordinat pixel dalam citra digital dalam perangkat lunak visual basic 6 berbeda dengan menggunakan octave maupun matlab. Dalam visual basic 6 posisi kolom (x) disebutkan pertama baru posisi baris (y). Untuk menyimpan nilai intensitas cahaya sebuah pixel dapat digunakan tipe data long yang memiliki space penyimpanan di memori komputer sebesar 4 bytes (32 bit). Elemen warna RGB di dalam citra digital secara ilustrasi di dalam memori komputer disimpan tersusun dengan posisi nilai R, G dan B seperti pada gambar 3.1. Terdapat 1 alpha channel yang tidak digunakan di dalam sistem, yang biasanya digunakan sebagai efek transparansi pada citra digital. Gambar 3.1 susunan channel warna Untuk mendapatkan nilai dari pola pada Gambar 3.1 diasumsikan setiap channel warna terdiri dari 8 bit (1 bytes). Sebagai contoh jika sebuah channel warna memiliki nilai 1, pada bilangan biner akan bernilai 00000001. Representasi nilai 1 pada setiap posisi bit menunjukkan sebuah nilai pangkat 2 seperti dapat dilihat pada Gambar 3.2. 1 H alaman
Gambar 3.2 posisi bit 1 dan nilainya. Dengan melihat pada Gambar 3.2 maka dapat dilihat dengan menggeser nilai 1 pada setiap posisi bit, akan menghasilkan nilai yang berbeda. Dan nilai maksimal dari sebuah pixel adalah 255. Untuk mendapatkan nilai intensitas cahaya yang dimiliki sebuah pixel pada citra digital dapat digunakan operasi logika AND. Sehingga jika terdapat sebuah nilai dalam pixel, 00110011 And 00001111 = 00000011 Bagaimana elemen warna RGB disimpan dalam memori komputer? Gambar 3.3 Elemen Warna dalam Memori Komputer Deretan nilai channel warna sebanyak 32 bit, terlalu panjang untuk dioperasikan, sehingga diperlukan penyederhanaan menggunakan bilangan hexa decimal menjadi Dengan struktur R = Red G = Green B = Blue 0 = tidak digunakan Di dalam visual basic 6 penulisan Binary 00000000 == Hex 00 dan Binary 11111111 == Hex FF. sehingga untuk mendapatkan bagian channel warna merah cukup dilakukan dengan mengambil 8 bit nilai pada posisi bit bawah (lihat posisi gambar 3.3) menjadi 000000FF (biasa disebut dengan mask). Bagaimana dengan Green? Cukup menggunakan mask 0000FF00 2 H alaman
Pada kasus channel warna Green diperoleh nilai 00 (trailing zero), sehingga untuk menghilangkannya diperlukan pergeseran sebanyak 8 bit ke kanan sebelum dilakukan proses masking, sehingga diperoleh: Kasus yang sama juga dialami pada saat akan mengambil channel warna Blue, diperlukan pergeseran ke kanan sebanyak 16 bit sebelum dilakukan mask. Proses pengambilan channel warna RGB tersebut diadopsi pada perangkat lunak visual basic 6 sehingga dalam kode program nantinya menjadi: Red = Colour And &HFF Green = (Colour \ (2 ^ 8)) And &HFF Blue = (Colour \ (2 ^ 16)) And &HFF Penggunaan operasi pangkat ^ memakan waktu yang cukup lama sehingga diperlukan penulisan kode yang lebih sederhana untuk mempercepat proses komputasi. Red = Colour And &HFF Green = (Colour \ &H100) And &HFF Blue = (Colour \ &H10000) And &HFF Proses yang cukup panjang pada penjabaran sebelumnya untuk mendapatkan channel warna RGB selanjutnya dapat diwakili dengan 3 baris kode visual basic 6. Walaupun pemahaman terhadap proses sebenarnya harus juga dikuasai menggunakan operasi logika dan pergeseran bit. 2. Mendesain Form Mengurai Warna RGB Percobaan pada bagian ini akan menggunakan beberapa fungsi dan control-kontrol tertentu untuk membaca dan menampilkan image. 1) Buka program visual basic 6.0, dari menu Start Programs Microsoft Visual Studio6.0 Microsoft Visual Basic 6.0. 2) Dari window New Project pilih Standard EXE klik tombol Open. 3 H alaman
3) Desain form dan tambahkan beberapa control ke dalam form dengan seperti gambar berikut. Beri nama masing-masing kontrol yang ada dalam form seperti berikut. No. Kontrol Property Value 1 Project Name getrgb 2 Form Name frmrgb Membaca Channel Warna RGB 3 DriveListBox Name Drive1 4 DirListBox Name Dir1 5 FileListBox Name File1 6 PictureBox Name Picture1 7 PictureBox Name Picture2 4 H alaman
8 Command Name 9 Command Name 10 Command Name 11 Command Name Command1 Duplikasi Command2 Red Command3 Green Command4 Blue 3. Menulis Kode Program Tulis kode program sebagai berikut. Kode program Option Explicit Private Sub Dir1_Change() File1.Path = Dir1.Path Private Sub Drive1_Change() Dir1.Path = Drive1.Drive Private Sub File1_Click() Picture1.Picture = LoadPicture(File1.Path + "\" + File1.FileName) Picture1.AutoSize = True Picture1.AutoRedraw = True Private Sub Form_Load() File1.Pattern = "*.bmp;*.jpg;*.jpeg" Private Sub Command1_Click() Dim ScanX As Long, ScanY As Long Dim TempCol As Long Dim cred As Integer, cgreen As Integer, cblue As Integer Picture1.ScaleMode = vbpixels Picture1.AutoRedraw = True For ScanX = 0 To Picture1.ScaleWidth - 1 For ScanY = 0 To Picture1.ScaleHeight - 1 Next ScanY Next ScanX TempCol = Picture1.Point(ScanX, ScanY) cred = TempCol And &HFF cgreen = (TempCol \ &H100) And &HFF cblue = (TempCol \ &H10000) And &HFF TempCol = RGB(cRed, cgreen, cblue) Picture2.PSet (ScanX, ScanY), TempCol Picture2.ScaleMode = vbpixels Picture2.AutoRedraw = True Picture2.AutoSize = True Picture2.Refresh 5 H alaman
4. Menjalankan Program Untuk menjalankan program dari menu bar Run pilih Start (F5). Kemudian akan ditampilkan form yang telah dibuat programnya. Pilih pada bagian drive C kemudian pada daftar folder c:\bahan-gambar kemudian pilih pada daftar file beberapa gambar. Selanjutnya lihat bahwa semua file yang dipilih akan ditampilkan pada bagian gambar sebalah kanan. 1) Pada saat memilih file polsri1d.jpg 2) Pada saat tombol duplikasi diklik 6 H alaman
Tugas Praktikum : 1) Untuk mendapatkan nilai R, G, dan B. Masing-masing anda cukup mengubah pada bagian baris program TempCol = RGB(cRed, cgreen, cblue) Menjadi seperti berikut berikut - Untuk Red TempCol = RGB(cRed, 0, 0) - Untuk Green TempCol = RGB(0, cgreen, 0) - Untuk Blue - TempCol = RGB(0, 0, cblue) 2) Cobalah anda jalankan setelah proses pada bagian 1) diatas anda selesaikan. Ditekan tombol Red Ditekan tombol Green Ditekan tombol Blue Diperiksa tanggal : Dosen Pengampu: Nama Laboratorium : Nomor Komputer : (M. Miftakul Amin, S. Kom., M. Eng.) NIP. 197912172012121001 Sumber referensi: 1. Gonzales, R.C.; Woods, R.E. 2002. Digital Image Processing. Prentice Hall. 2. Kadir, Abdul. 2013. Teori dan Aplikasi Pengolahan Citra. Yogyakarta: Penerbit Andi Offset Yogyakarta 7 H alaman