Jl Srijaya Negara Bukit Besar Palembang 30139, Telpon : +62711‐353414
PROGRAM STUDI TEKNIK KOMPUTER JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG TK
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 a l a m a n
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 a l a m a n
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) 2)
Buka program visual basic 6.0, dari menu Start Æ Programs Æ Microsoft Visual Studio6.0 Æ Microsoft Visual Basic 6.0. Dari window New Project Æ pilih Standard EXEÆ klik tombol Open.
3 | H a l a m a n
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. 1 2
Kontrol Project Form
3 4 5 6 7
DriveListBox DirListBox FileListBox PictureBox PictureBox
4 | H a l a m a n
Property Name Name Caption Name Name Name Name Name
Value getRGB frmRGB Membaca Channel Warna RGB Drive1 Dir1 File1 Picture1 Picture2
8
Command
9
Command
10
Command
11
Command
Name Caption Name Caption Name Caption Name Caption
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 End Sub Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub Private Sub File1_Click() Picture1.Picture = LoadPicture(File1.Path + "\" + File1.FileName) Picture1.AutoSize = True Picture1.AutoRedraw = True End Sub Private Sub Form_Load() File1.Pattern = "*.bmp;*.jpg;*.jpeg" End Sub 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 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 Next ScanY Next ScanX Picture2.ScaleMode = vbPixels Picture2.AutoRedraw = True Picture2.AutoSize = True Picture2.Refresh End Sub
5 | H a l a m a n
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 a l a m a n
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
Diperiksa tanggal :_____________ Dosen Pengampu:
(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 a l a m a n
Ditekan tombol Blue
Nama Laboratorium :
Nomor Komputer :